> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# tools • Rust AI Agent SDK

> Tool system for PraisonAI

# tools

<Badge color="orange">Rust AI Agent SDK</Badge>

Tool system for PraisonAI

This module provides the tool abstraction for agents.
Tools are functions that agents can call to perform actions.

# Example

```rust,ignore theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai_core::{tool, Tool};

#[tool(description = "Search the web")]
async fn search(query: String) -> String {
format!("Results for: {}", query)
}
```

## Import

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::tools::*;
```

## Classes

<CardGroup cols={2}>
  <Card title="ToolResult" icon="brackets-curly" href="../classes/ToolResult">
    Result of a tool execution
  </Card>

  <Card title="ToolDefinition" icon="brackets-curly" href="../classes/ToolDefinition">
    Tool definition for LLM function calling
  </Card>

  <Card title="ToolRegistry" icon="brackets-curly" href="../classes/ToolRegistry">
    Registry for managing tools
  </Card>

  <Card title="Tool" icon="brackets-curly" href="../classes/Tool">
    Trait for tools that can be used by agents This trait defines the interface for tools. Tools can be created using the `#[tool]` macro or by...
  </Card>
</CardGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust Tools" icon="wrench" href="/docs/rust/tools" />

  <Card title="Rust Code Execution" icon="terminal" href="/docs/rust/code-execution" />

  <Card title="Rust Web Search" icon="search" href="/docs/rust/web-search" />
</CardGroup>
