Tools & Capabilities Overview

April 10, 2026 · View on GitHub

The tool system provides a rich capability model that goes beyond simple function registration. Each tool carries metadata about its risk level, applicable profiles, prompt guidance, and more — enabling intelligent filtering and compilation.

Components

ModulePurpose
Tool CapabilityToolCapability dataclass and ToolRisk enum
Tool RegistryRegistration, filtering, compilation
Memory ToolsAgent-callable CRUD tools for memory
Deferred ToolsLazy tool discovery and registration

Risk Taxonomy

Every tool has a risk level that controls filtering and HITL behavior:

Risk LevelDescriptionExample
READ_ONLYNo side effectssearch_memories, list_tools
MUTATINGModifies statesave_memory, update_memory
DESTRUCTIVEHard to reversedelete_memory, file deletion

Tool Lifecycle

1. Define ToolCapability


2. Register in ToolRegistry


3. Filter by profile/worker/tags/risk


4. Compile to callable functions


5. Bind to LLM as tools

Filtering Dimensions

Tools can be filtered by:

  • Profile — e.g., "coding", "research", "general"
  • Worker type — e.g., "researcher", "implementer", "verifier"
  • Tags — arbitrary string labels
  • Max risk — e.g., only READ_ONLY for coordinator mode

Prompt Fragments

Tools can carry prompt_guidance — a text fragment that gets injected into the system prompt to help the agent use the tool effectively. The registry's collect_prompt_fragments() method gathers these for prompt assembly.