Expand description
Tool subsystem for agent-callable capabilities.
This module implements the tool execution surface exposed to the LLM during
agentic loops. Each tool implements the Tool trait defined in traits,
which requires a name, description, JSON parameter schema, and an async
execute method returning a structured ToolResult.
Tools are assembled into registries by default_tools (shell, file read/write)
and all_tools (full set including memory, browser, cron, HTTP, delegation,
and optional integrations). Security policy enforcement is injected via
SecurityPolicy at construction time.
§Extension
To add a new tool, implement Tool in a new submodule and register it in
all_tools_with_runtime. See AGENTS.md §7.3 for the full change playbook.
Re-exports§
pub use ask_user::AskUserTool;pub use backup_tool::BackupTool;pub use browser::BrowserTool;pub use browser::ComputerUseConfig;pub use browser_delegate::BrowserDelegateConfig;pub use browser_delegate::BrowserDelegateTool;pub use browser_open::BrowserOpenTool;pub use calculator::CalculatorTool;pub use canvas::CanvasStore;pub use canvas::CanvasTool;pub use claude_code::ClaudeCodeTool;pub use claude_code_runner::ClaudeCodeRunnerTool;pub use cloud_ops::CloudOpsTool;pub use cloud_patterns::CloudPatternsTool;pub use codex_cli::CodexCliTool;pub use composio::ComposioTool;pub use content_search::ContentSearchTool;pub use cron_add::CronAddTool;pub use cron_list::CronListTool;pub use cron_remove::CronRemoveTool;pub use cron_run::CronRunTool;pub use cron_runs::CronRunsTool;pub use cron_update::CronUpdateTool;pub use data_management::DataManagementTool;pub use delegate::DelegateTool;pub use delegate::BackgroundDelegateResult;pub use delegate::BackgroundTaskStatus;pub use discord_search::DiscordSearchTool;pub use escalate::EscalateToHumanTool;pub use file_edit::FileEditTool;pub use file_read::FileReadTool;pub use file_write::FileWriteTool;pub use gemini_cli::GeminiCliTool;pub use git_operations::GitOperationsTool;pub use glob_search::GlobSearchTool;pub use google_workspace::GoogleWorkspaceTool;pub use http_request::HttpRequestTool;pub use image_gen::ImageGenTool;pub use image_info::ImageInfoTool;pub use jira_tool::JiraTool;pub use linkedin::LinkedInTool;pub use llm_task::LlmTaskTool;pub use mcp_client::McpRegistry;pub use mcp_deferred::ActivatedToolSet;pub use mcp_deferred::DeferredMcpToolSet;pub use mcp_tool::McpToolWrapper;pub use microsoft365::Microsoft365Tool;pub use model_routing_config::ModelRoutingConfigTool;pub use model_switch::ModelSwitchTool;pub use node_tool::NodeTool;pub use notion_tool::NotionTool;pub use opencode_cli::OpenCodeCliTool;pub use pdf_read::PdfReadTool;pub use poll::ChannelMapHandle;pub use poll::PollTool;pub use progress::NoopProgressSink;pub use progress::ProgressHandle;pub use progress::ProgressSink;pub use progress::ProgressToken;pub use progress::noop_sink;pub use project_intel::ProjectIntelTool;pub use proxy_config::ProxyConfigTool;pub use pushover::PushoverTool;pub use reaction::ReactionTool;pub use read_skill::ReadSkillTool;pub use report_template_tool::ReportTemplateTool;pub use schedule::ScheduleTool;pub use schema::CleaningStrategy;pub use schema::SchemaCleanr;pub use screenshot::ScreenshotTool;pub use security_ops::SecurityOpsTool;pub use sessions::SessionsHistoryTool;pub use sessions::SessionsListTool;pub use sessions::SessionsSendTool;pub use shell::ShellTool;pub use skill_http::SkillHttpTool;pub use skill_tool::SkillShellTool;pub use sop_advance::SopAdvanceTool;pub use sop_approve::SopApproveTool;pub use sop_execute::SopExecuteTool;pub use sop_list::SopListTool;pub use sop_status::SopStatusTool;pub use swarm::SwarmTool;pub use text_browser::TextBrowserTool;pub use tool_search::ToolSearchTool;pub use traits::Tool;pub use traits::ToolResult;pub use traits::ToolSpec;pub use verifiable_intent::VerifiableIntentTool;pub use weather_tool::WeatherTool;pub use web_fetch::WebFetchTool;pub use web_search_tool::WebSearchTool;pub use workspace_tool::WorkspaceTool;
Modules§
- ask_
user - Interactive user prompting tool for cross-channel confirmations.
- backup_
tool - browser
- Browser automation tool with pluggable backends.
- browser_
delegate - Browser delegation tool.
- browser_
open - calculator
- canvas
- Live Canvas (A2UI) tool — push rendered content to a web canvas in real time.
- claude_
code - claude_
code_ runner - cli_
discovery - CLI tool auto-discovery — scans PATH for known CLI tools.
Zero external dependencies (uses
std::process::Command+std::env). - cloud_
ops - Cloud operations advisory tool for cloud transformation analysis.
- cloud_
patterns - Cloud pattern library for recommending cloud-native architectural patterns.
- codex_
cli - composio
- content_
search - cron_
add - cron_
list - cron_
remove - cron_
run - cron_
runs - cron_
update - data_
management - delegate
- discord_
search - escalate
- Human escalation tool with urgency-aware routing.
- file_
edit - file_
read - file_
write - gemini_
cli - git_
operations - glob_
search - google_
workspace - http_
request - image_
gen - image_
info - jira_
tool - linkedin_
client - llm_
task - Lightweight LLM task tool for structured JSON-only sub-calls.
- mcp_
client - MCP (Model Context Protocol) client — connects to external tool servers.
- mcp_
deferred - Deferred MCP tool loading — stubs and activated-tool tracking.
- mcp_
protocol - MCP (Model Context Protocol) JSON-RPC 2.0 protocol types. Protocol version: 2024-11-05 Adapted from ops-mcp-server/src/protocol.rs for client use. Both Serialize and Deserialize are derived — the client both sends (Serialize) and receives (Deserialize) JSON-RPC messages.
- mcp_
tool - Wraps a discovered MCP tool as a construct
Toolso it is dispatched through the existing tool registry and agent loop without modification. - mcp_
transport - MCP transport abstraction — supports stdio, SSE, and HTTP transports.
- microsoft365
- Microsoft 365 integration tool — Graph API access for Mail, Teams, Calendar, OneDrive, and SharePoint via a single action-dispatched tool surface.
- model_
routing_ config - model_
switch - node_
capabilities - Standard node capability definitions for device nodes.
- node_
tool - Wraps a node capability as a construct
Toolso it can be dispatched through the existing tool registry and agent loop. - notion_
tool - opencode_
cli - pdf_
read - pipeline
- poll
- progress
- Progress-notification hook for long-running tools.
- project_
intel - Project delivery intelligence tool.
- proxy_
config - pushover
- reaction
- Emoji reaction tool for cross-channel message reactions.
- read_
skill - report_
template_ tool - Report template tool — standalone access to template engine.
- report_
templates - Report template engine for project delivery intelligence.
- schedule
- schema
- JSON Schema cleaning and validation for LLM tool-calling compatibility.
- screenshot
- security_
ops - Security operations tool for managed cybersecurity service (MCSS) workflows.
- sessions
- Session-to-session messaging tools for inter-agent communication.
- shell
- skill_
http - HTTP-based tool derived from a skill’s
[[tools]]section. - skill_
tool - Shell-based tool derived from a skill’s
[[tools]]section. - sop_
advance - sop_
approve - sop_
execute - sop_
list - sop_
status - swarm
- text_
browser - tool_
search - Built-in
tool_searchtool for on-demand MCP tool schema loading. - traits
- verifiable_
intent - Verifiable Intent tool — exposes VI verification and constraint evaluation to the agent orchestration loop.
- weather_
tool - Weather tool — fetches current conditions and forecast via wttr.in.
- web_
fetch - web_
search_ tool - workspace_
tool - Tool for managing multi-client workspaces.
Structs§
- ArcTool
Ref - Thin wrapper that makes an
Arc<dyn Tool>usable asBox<dyn Tool>.
Functions§
- all_
tools - Create full tool registry including memory tools and optional Composio
- all_
tools_ with_ runtime - Create full tool registry including memory tools and optional Composio.
- default_
tools - Create the default tool registry
- default_
tools_ with_ runtime - Create the default tool registry with explicit runtime adapter.
- register_
skill_ tools - Register skill-defined tools into an existing tool registry.
Type Aliases§
- Delegate
Parent Tools Handle - Shared handle to the delegate tool’s parent-tools list. Callers can push additional tools (e.g. MCP wrappers) after construction.