Tools
Understanding how decopilot discovers and enables capabilities to stay focused on what matters
This page documents the planned architecture for decopilot tools. The specification serves as the implementation guide for the decopilot module.
Overview
Decopilot uses two types of tools: built-in tools for discovering capabilities and managing work, and scope tools from the current scope for domain-specific actions. Tools are discovered with tool_search and activated on-demand with tool_enable , keeping execution focused and preventing tool overload.
Tool Reference
Built-in Tools
All built-in tools are available across all scopes. Availability varies between tasks and subtasks.
| Tool | Task | Subtask | Description |
|---|---|---|---|
| Discovery | |||
tool_search | ✓ | ✓ | Search for tools in current scope |
tool_enable | ✓ | ✓ | Activate a tool for use in current task |
agent_search | ✓ | ✓ | Find agents configured in the organization |
| Execution | |||
subtask_run | ✓ | ✗ | Spawn subtask with fresh context, optionally specifying an agent |
user_ask | ✓ | ✗ | Ask user for input or clarification |
| Context | |||
resource_read | ✓ | ✓ | Read documentation/guidelines from current scope (supports line ranges) |
prompt_read | ✓ | ✓ | Read prompt templates from current scope |
Scope Tools
Scope tools come from the current scope—domain-specific capabilities like Shopify, inventory systems, or shipping tools. These are discovered via tool_search and enabled via tool_enable .
Example: A project with Shopify and ShipStation connections might expose:
GET_ORDERS- Fetch customer ordersUPDATE_INVENTORY- Update product stock levelsCREATE_SHIPPING_LABEL- Generate shipping labelsGET_PRODUCTS- List product catalog
Scope tool availability in tasks vs subtasks depends on the tool’s configuration.
Tool Annotations
All tools (both built-in and scope tools) use standard MCP annotations to declare their capabilities and restrictions:
readOnlyHint- Tool does not modify its environment (default: false)destructiveHint- Tool may perform destructive updates vs. only additive updates (default: true, only meaningful whenreadOnlyHintis false)idempotentHint- Calling repeatedly with same arguments has no additional effect (default: false, only meaningful whenreadOnlyHintis false)openWorldHint- Tool may interact with external entities; false means closed domain (default: true)
These annotations allow decopilot to respect tool constraints automatically. For example, a read-only agent will only discover and enable tools marked as readOnlyHint: true , ensuring it never performs destructive actions.
Understanding Availability
Tasks vs Subtasks
Tasks are user-initiated and top-level. They have full access to all built-in tools, can spawn subtasks, and can ask user questions.
Subtasks are spawned by decopilot for parallel work, specialized execution, or isolated context. They have restricted access:
- Cannot spawn additional subtasks - Prevents infinite delegation
- Cannot ask user questions - Subtasks run autonomously without blocking
These restrictions ensure subtasks complete independently and don’t create blocking dependencies.
Tool Discovery Flow
Decopilot starts each task with only built-in tools, then discovers and enables capabilities as needed:
- Explore - Use
tool_searchto see what’s available in the current scope - Enable - Use
tool_enableto activate specific tools for the task - Execute - Use enabled tools to accomplish work
- Delegate - Spawn subtasks via
subtask_runfor parallel or specialized work
This discover-and-enable pattern ensures decopilot deliberately chooses its toolset rather than being overwhelmed by every available capability.
Common Workflows
Discover-Enable-Execute
The most common pattern for using scope tools:
- Search for capabilities with
tool_search - Enable specific tools with
tool_enable - Use enabled tools to accomplish work
Delegate to Specialists
For work requiring specialized expertise:
- Search for agents with
agent_search - Spawn a subtask with
subtask_runand specific agent - Continue main task while subtask runs in parallel
Context-Driven Execution
For tasks requiring domain knowledge:
- Read relevant resources with
resource_read - Read workflow templates with
prompt_read - Use context to inform tool selection and execution
Next steps: Learn about Tasks and Spawning to understand how decopilot manages work, or explore Context to see how resources and prompts provide guidance.
For technical tool documentation, see Built-in Tools Reference.
Found an error or want to improve this page?
Edit this page