{
  "id": 5970926,
  "title": "Declare `tools` Only When Narrowing an APX Agent",
  "url": "https://urgent.news/2026/09/06/declare-tools-only-when-narrowing-an-apx-agent",
  "topic": "ai",
  "section": "AI",
  "published": "2026-09-06T12:02:35.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/agentprojectcontext/declare-tools-only-when-narrowing-an-apx-agent-5fik"
  },
  "original_language": "en",
  "account": "APX treats a missing tools field differently from a declared list of tools in an agent definition. The omission preserves the agent's broad default tool allowlist from the runtime, while a declared list acts as a narrowed allowlist. This distinction connects the portable context layer (APC) and the daily-use runtime and tooling layer (APX). Omitting tools avoids coupling the agent to specific runtime capabilities, allowing new runtime capabilities to become available without modifying the agent definition. Declaration is useful for agents with genuinely constrained jobs, such as read-only reviewers or documentation inspectors. However, a narrow list should not stay narrow when APX adds capabilities; copying every currently available tool creates maintenance cost without adding meaningful boundaries. Capability is not determined by prompt size, as APX separates these concerns. The allowlist answers which tools the runtime may permit, while lightweight channels can start with a small base set and discover additional tools when needed. When reviewing .apc/agents/*.md, ask why each tools list exists. If the answer names a boundary, keep it. If the answer is that the tools were available when the agent was created, remove the field and let APX resolve the default. Runtime-specific overrides can be stricter for a particular run, including running with no tools. The APC file should state constraints that should survive across machines, while a declared list says this boundary must not.",
  "summary": "Declare tools Only When Narrowing an APX Agent An agent definition should describe a durable role without freezing a temporary snapshot of the runtime around it. That is why APX treats an omitted tools field differently from a declared list. The rule is small: omit tools when the agent should inherit APX's broad project-agent default. Declare a non-empty list only when you intentionally want a…",
  "key_points": [
    "Omitting \"tools\" field preserves broad default allowlist from runtime.",
    "Declared \"tools\" list acts as narrowed allowlist for constrained agents.",
    "Remove \"tools\" field if it's just available tools at agent creation."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}