Non-empty. Must match the requested agent name when loaded by name.
Agent identity and discovery key.
provider
string
[defaults].provider
Built-in provider key or custom provider key.
Provider used to resolve command, model, auth mode, and runtime metadata.
command
string
Provider command
Non-empty when overriding.
Agent-specific ACP launch command.
model
string
Provider models.default
Any string.
Agent-specific model metadata.
tools
string array
empty
Exact canonical ToolIDs or namespace-prefix wildcards.
Additional agent tool allowlist grammar.
toolsets
string array
empty
Canonical ToolsetIDs.
Additional named tool bundles allowed for the agent.
deny_tools
string array
empty
Exact canonical ToolIDs or namespace-prefix wildcards.
Tool denies that always narrow the agent grants.
permissions
string
[permissions].mode, default approve-all
deny-all, approve-reads, approve-all
Agent-specific permission mode.
skills
object
empty
Currently only disabled is accepted.
Agent-scoped logical skill tombstones and agent-local overlay policy.
category_path
string array
empty
Non-empty path segments without ., .., /, or \.
Display-only hierarchy used by CLI/API/Web views.
mcp_servers
array of MCP server objects
empty
Each object requires name and command.
Agent-local MCP servers.
hooks
array of hook declarations
empty
Same declaration shape as config hooks.
Agent-scoped hook declarations.
Markdown body
Markdown text
required
Non-empty after trimming.
Agent-owned role prompt included in the assembled startup prompt.
Even when tools and toolsets are empty, AGH adds the discovery toolsets agh__bootstrap and
agh__catalog at runtime unless effective policy denies them. Agents should discover AGH-native
runtime capabilities with agh__tool_search, inspect descriptors with agh__tool_info, and invoke
dedicated tools before shelling out to equivalent agh ... commands. Operator-only management
flows — daemon lifecycle, MCP OAuth login/logout, raw secret writes, and trust-root config —
remain CLI/HTTP/UDS by design and are not promoted into the tool surface.
AGH also adds a daemon-owned runtime envelope around the agent body at session startup. The envelope
states that the session is running inside AGH, carries session/workspace facts, and is not something
agent authors need to repeat in every AGENT.md.
---# Required. This must match the directory name when loaded by name.name: reviewer# Optional if [defaults].provider is set in config.toml.provider: claude# Optional. Defaults to the provider models.default.model: claude-sonnet-4-6# Optional. Add only extra ToolIDs beyond default discovery.tools: - "mcp__github__*"# Optional. Add only extra toolsets beyond agh__bootstrap + agh__catalog defaults.toolsets: - "agh__coordination"# Optional. Denies always narrow the allowed set.deny_tools: - "agh__network_send"# Optional. Defaults to [permissions].mode.permissions: approve-reads# Optional. Display-only UI/CLI/API organization path.category_path: - Engineering - Review# Optional. Merged after top-level and provider MCP servers.mcp_servers: - name: github command: npx args: ["-y", "@modelcontextprotocol/server-github"] secret_env: GITHUB_TOKEN: "env:GITHUB_TOKEN"# Optional. Agent-scoped hooks automatically match this agent name.hooks: - name: reviewer-started event: session.post_create mode: async command: printf args: ["reviewer ready\n"]---You are a senior code reviewer.Review code for correctness, security boundaries, data loss, races, and missing tests.Put blocking findings first and cite the relevant file or symbol.
Exact canonical ToolIDs such as agh__skill_view, or namespace-prefix wildcards such as agh__skill_* and mcp__github__*. *, dotted names, hyphens, uppercase, suffix wildcards, and mid-segment wildcards are rejected.
Description
Additional agent tool allowlist grammar consumed by the registry policy layer. It does not raise authority above [permissions].mode; default discovery still comes from the runtime overlay unless denied.
Canonical ToolsetIDs such as agh__catalog or linear__read.
Description
Additional named tool bundles allowed for the agent. Toolsets are separate from tools; do not place toolset IDs in tools. AGH adds agh__bootstrap and agh__catalog at runtime by default unless denied.
Currently only disabled, a string array of logical skill names.
Description
Persists agent-scoped disabled skill tombstones in AGENT.md and applies them after skill precedence.
The current runtime supports:
skills: disabled: - review - deploy-production
skills.disabled does not add new roots and does not create an agent-only skill mode. AGH resolves
the normal bundled -> marketplace -> user -> additional -> workspace set, overlays the winning
agent's skills/ directory, then disables any logical skill names listed here for that agent.
This is separate from the global skills settings field disabled_skills; use AGENT.mdskills.disabled for one agent's tombstones and settings
for daemon-managed global defaults.
Ordered, non-empty path segments. Segments are trimmed and must not be ., .., or contain slash.
Description
Display-only hierarchy surfaced by CLI JSON, HTTP/UDS payloads, and the web UI.
Use category_path when a large agent set needs a stable visual grouping:
category_path: - Marketing - Sales
This field does not affect provider selection, permissions, tools, scheduling, skill resolution,
hooks, memory, or ACP startup. It is not a multi-tag list; it is one ordered path. Root-level agents
omit the field or use an empty array. AGH rejects categories: [...] and category_path: "Marketing/Sales" because the runtime has one canonical array shape and no compatibility aliases.
Agent hook declarations use the same fields as [[hooks.declarations]] in config.toml. When a
hook matcher includes agent_name, it must match this agent's name; AGH then scopes the hook to
this agent.
Field
Type
Default
Valid values
Description
name
string
required
Non-empty.
Hook name.
event
string
required
Current dot-form hook event.
Event that triggers the hook.
mode
string
async
sync or async; sync only for sync-eligible events.
Dispatch mode.
required
boolean
false
true or false; required hooks must be sync.
Whether hook failure blocks the source operation.
priority
integer
Agent-definition source default.
Integer.
Ordering priority.
timeout
duration
0s; subprocess executor uses 5 seconds when zero.
Non-negative Go duration.
Hook timeout.
matcher
object
scoped to this agent.
Hook matcher fields.
Narrows eligibility.
command
string
empty
Required for subprocess hooks unless nested executor fields are used.
These snippets show the minimal agent shape for the core built-in providers. API-key providers such
as OpenRouter, z.ai, Moonshot/Kimi, and Vercel AI Gateway use the same provider and model
frontmatter once their credential slots are configured in config.toml or settings.
---name: claude-reviewerprovider: claudemodel: claude-sonnet-4-6permissions: approve-reads---Review the requested change for correctness and missing tests.
The Tools and Toolsets rows describe configured agent policy. Effective runtime discovery also
adds agh__bootstrap and agh__catalog by default. Denies still win after that overlay.