Skip to main content

Module tools

Module tools 

Source
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::SharedProgressSink;
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
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 Tool so 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 Tool so 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_search tool 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§

ArcToolRef
Thin wrapper that makes an Arc<dyn Tool> usable as Box<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§

DelegateParentToolsHandle
Shared handle to the delegate tool’s parent-tools list. Callers can push additional tools (e.g. MCP wrappers) after construction.