Expand description
The tool registry: one registry serving the root agent,
workflow steps and subagents, with three tiers and dispatch precedence
internal > code > MCP. Every tool carries JSON Schemas for input and
output and a grant (who may call it). Internal tools are contracts with
a built-in implementation by default, overridable by a mapped MCP tool
(tools.overrides) and disable-able (tools.disabled); mapping-only
contracts (code.run, knowledge.*, search.*) are unavailable until
mapped (or until a server advertises the profile’s tool names).
The registry knows what a tool is and where it goes (Route); the
runtime executes built-ins (they mutate runtime state), the turn worker
calls MCP tools itself, and mapped tools are executed by whoever holds the
server connection (Registry::map_args / Registry::map_result).
Modules§
- internal
- The internal tool contracts: name, description, input and output JSON
Schemas, whether a built-in implementation exists (mapping-only contracts
are
code.run,knowledge.*,search.*), and the default grants.
Structs§
- Grant
- Who may call a tool. These flags gate the INTERNAL tools — the ones that
reach agentd’s own state — so a caller they do not name is refused. Code
and MCP tools are not gated by them: an operator who wired a server in has
already made that decision, and a subagent narrowed by an explicit
allowlist is held to that list instead. - Mapping
- An override mapping: which server’s tool stands in for an internal contract, plus the optional argument and result transforms that reconcile the two shapes. Both transforms are compiled at startup, so a mapping that cannot be applied is a config error rather than a call-time surprise.
- Registry
- The registry.
- Server
Tools - A connected MCP server’s advertised tools (input to
Registry::build). - Tool
Spec - One registered tool.
Enums§
- Caller
- The caller asking for definitions / permission.
- Impl
- How a tool is implemented.
- Route
- Where a call goes.
- Tool
Class - The tier a tool belongs to.
Functions§
- pattern_
matches memory.*/workflow.run/*style pattern match.