It is well known that the more tools an agent has, the broader its capability boundary becomes. However, as the number of tools increases, so do the challenges: the model must simultaneously understand the purpose, parameters, and invocation methods of hundreds of tools, which not only consumes context but also reduces the probability of selecting the correct tool. covo-agent comes with over 100 built-in tools. To address this issue, it does not treat tool quantity as capability per se; instead, it employs two independent mechanisms to deliver the right tools to the model at the right time.
Tiered Tool Registration
Tool registration in covo-agent is centralized within the extension initialization of the internal/tools package. Tools are organized into approximately 29 batches by function, covering a wide range of capabilities:
- Coding & File Operations: Patch application, file editing, diff viewing, unified file search, test generation, code graph analysis.
- Planning & Goal Management: To-do lists, plan updates, goal creation/query/update.
- Memory & Conversation: Memory recall/storage/forgetting, semantic vector memory, conversation retrieval and derivation.
- Media & Creation: Text-to-speech, image/video/music generation, transcription, voice interaction, canvas visualization.
- Communication & Collaboration: Feishu Docs/Base/Drive, sub-agent spawning and orchestration, Kanban boards, swarm collaboration.
- Execution & Isolation: Process management, sandboxing, remote execution, deployment, tmux.
- Hardware & Desktop: I2C, SPI, serial ports, macOS desktop control (computer use).
Profile Pruning Determines Tool Ownership
The first mechanism operates during the tool registration phase. covo-agent defines four tool profiles: minimal, coding, messaging, and full. After registration, the tool list is pruned according to the active profile.
This layer semantically defines "which tools this Agent possesses," determining the Agent's overall capability boundary rather than what is visible in a single conversation. The distinctions among the four profiles are as follows:
- minimal: Retains only a few core tools: conversation retrieval, message sending, to-do, plan update, exit planning mode, clarification, and structured output (7 tools in total).
- coding: Covers coding, execution, debugging, memory, and goal management, targeting programming-centric use cases.
- messaging: Targets communication and channel-oriented scenarios, retaining message sending, scheduled tasks, swarm collaboration, Kanban, voice, and media generation.
- full: No pruning; all tools are available.
Pruning uses a whitelist approach. Each profile corresponds to a mapping table of "tool name → allowed profiles." If a tool is not listed in this table, it is skipped entirely under restricted profiles rather than being allowed by default. This ensures that expanding the toolset does not automatically pollute restricted scenarios; newly added tools will not appear in minimal or coding unless explicitly assigned to them.
Toolset Filtering Determines Per-Turn Visibility
The second mechanism activates before each model invocation. covo-agent implements a toolset system comprising approximately 20 basic toolsets (file system, search, shell, Git, patch, documentation, code execution, media, memory, skills, delegation, etc.) and 3 composite toolsets (coding, creative, full).
Composite toolsets reference other toolsets via Includes, which are recursively expanded and deduplicated during resolution. For example, when expanded, the coding toolset actually covers 25 tools across file system, search, shell, Git, patch, documentation, and code execution.
This system is driven by ToolsetFilter, a lifecycle hook that filters out tool definitions irrelevant to the current request based on the platform-specific toolset before each model call. Different deployment platforms have their own default toolsets: the code platform defaults to coding plus web, memory, skills, and productivity; the minimal platform provides only file system, search, and shell; other platforms default to full.
Consequently, in any given conversation turn, the model sees not the entire set of tools the Agent possesses, but a pruned subset tailored to the current scenario.
Differences and Synergy Between Profile Pruning and Toolset Filtering
These two mechanisms are often confused, yet their responsibilities are orthogonal. It is important to note that while the term "coding" appears in both contexts, it refers to two distinct concepts: "coding" in profiles is a tier, whereas "coding" in toolsets is a toolset; they belong to different dimensions.
- Profile pruning answers "which tools this Agent possesses." It occurs during registration and establishes the capability boundary.
- Toolset filtering answers "which tools to send to the model in this turn." It occurs before each invocation and adapts dynamically to the scenario.
The former represents convergence of the "capability surface," while the latter represents convergence of the "attention surface." Together, they ensure that even an Agent with hundreds of tools exposes only task-relevant tool definitions to the model in any specific conversation turn.
Tool Bootstrapping: No Need to See All Tools at Once
In addition, covo-agent provides a set of "discovery" tools: tool_search, tool_describe, and tool_call. The model does not need to receive all tool definitions upfront; instead, it can retrieve and review a tool’s description on demand, then invoke it by name when needed.
This further alleviates the burden of having too many tools: the model can focus on the current task and dynamically discover required capabilities as needed, rather than passively digesting all tools at once.
Summary
The versatility of covo-agent stems not from indiscriminately enabling all tools, but from layered convergence: defining capability boundaries via profiles during registration, scoping attention via toolsets during invocation, and supplementing these with on-demand discovery. The value of a tool system lies not in quantity, but in delivering the right tools to the model at the right time.

Top comments (0)