Deco
decocms

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 orders
  • UPDATE_INVENTORY - Update product stock levels
  • CREATE_SHIPPING_LABEL - Generate shipping labels
  • GET_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 when readOnlyHint is false)
  • idempotentHint - Calling repeatedly with same arguments has no additional effect (default: false, only meaningful when readOnlyHint is 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:

  1. Explore - Use tool_search to see what’s available in the current scope
  2. Enable - Use tool_enable to activate specific tools for the task
  3. Execute - Use enabled tools to accomplish work
  4. Delegate - Spawn subtasks via subtask_run for 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:

  1. Search for capabilities with tool_search
  2. Enable specific tools with tool_enable
  3. Use enabled tools to accomplish work

Delegate to Specialists

For work requiring specialized expertise:

  1. Search for agents with agent_search
  2. Spawn a subtask with subtask_run and specific agent
  3. Continue main task while subtask runs in parallel

Context-Driven Execution

For tasks requiring domain knowledge:

  1. Read relevant resources with resource_read
  2. Read workflow templates with prompt_read
  3. 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