Skip to main content

Python Functions

Create tools from any async function using the @tool decorator:
Or pass functions directly to Agent (auto-converted to tools):
Supports primitive and complex return types (Pydantic models, lists, dicts).

Descriptions

Add descriptions to help LLMs understand tools:
Note: The name parameter sets the tool name (defaults to the function name), and the description parameter sets the tool description (defaults to the function’s docstring).

OpenAPI

Create tools from OpenAPI 3.0 specifications:
Auto-detects spec at /openapi.json, /openapi.yaml, /swagger.json, or /swagger.yaml.

Model Context Protocol (MCP)

Create tools from MCP servers:

LLM

LLMs are tools that call language models with structured output and retry logic:
Supported providers: OpenAI, Anthropic, Google, Groq (via groq:model-name) Use LLM tools like any other tool in agents.

EM

EMs are tools that call embedding models for semantic similarity. The use-case for this is classification. If any enum in your agent/tool schemas (input/output) has >100 values, the compiler translates all relevant LLM calls into a fused EM-LLM pipeline that first filters to semantically relevant enum options and then invokes the LLM with its output constrained to be one of the filtered options. A1 statically detects enums that are too large and will require an EM tool if detected. A1 transparently owns adaptive rate limit handling, chunk-parallelism, and caching vectors within the current Runtime. Semantic classification example:

RAG

RAG provides readonly or full access to databases and filesystems:
Readonly tools: sql (SELECT), ls (list), grep (search), cat (read) For full read/write access, use Database or FileSystem directly:
Supported databases: PostgreSQL, MySQL, SQLite, DuckDB, SQL Server, Oracle Supported paths: Local filesystems, S3, Google Cloud Storage, Azure Blob Storage

ToolSet

Group related tools together to organize hierarchically:

Done

Built-in is_terminal=True tool for marking workflow completion: