Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dallay/corvus/llms.txt

Use this file to discover all available pages before exploring further.

Tools Overview

Corvus ships with a powerful set of built-in tools that enable the AI agent to interact with the system, files, memory, and the web. Every tool is sandboxed and validated through the SecurityPolicy.

Architecture

All tools implement the Tool trait from src/tools/traits.rs:
#[async_trait]
pub trait Tool: Send + Sync {
    fn name(&self) -> &str;
    fn description(&self) -> &str;
    fn parameters_schema(&self) -> serde_json::Value;
    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult>;
    fn spec(&self) -> ToolSpec { /* ... */ }
}
Each tool returns a ToolResult:
pub struct ToolResult {
    pub success: bool,
    pub output: String,
    pub error: Option<String>,
}

Built-in Tools

Core Tools

ToolDescriptionSecurity
shellExecute shell commandsSandboxed, command allowlist, timeout
file_readRead file contentsPath validation, size limits
file_writeWrite file contentsPath validation, workspace-only
memory_storeSave long-term memoriesCategory-based organization
memory_recallSearch and retrieve memoriesHybrid vector + keyword search
memory_forgetDelete specific memoriesKey-based deletion

Optional Tools

ToolDescriptionConfig Flag
browser_openOpen URLs in Brave browserbrowser.enabled = true
composioAccess 1000+ OAuth appscomposio.enabled = true

Tool Execution Flow

  1. LLM Request: Model requests tool via function calling or text tags
  2. Parameter Validation: JSON schema validation via parameters_schema()
  3. Security Check: SecurityPolicy validates action (rate limits, allowlists, autonomy level)
  4. Execution: Tool runs in sandboxed context
  5. Result: ToolResult returned to LLM for next reasoning step

Rate Limiting

All tools respect max_actions_per_hour from config:
if self.security.is_rate_limited() {
    return Ok(ToolResult {
        success: false,
        error: Some("Rate limit exceeded".into()),
        ..Default::default()
    });
}

Tool Discovery

The agent automatically registers all tools at startup. Tools are presented to the LLM via:
  • Native tool calling (OpenAI, Anthropic, Gemini formats)
  • Prompt-guided fallback (XML-style <tool_call> tags)
See Custom Tool Guide to add your own tools.

Next Steps

Shell Tool

Execute commands safely

File Operations

Read and write files

Memory Tools

Store and recall context

Browser Tool

Web automation with Brave

Build docs developers (and LLMs) love