Custom Otto agents
Model for a custom Otto agent.
Examplesโ
- sql_expert.md
---
otto:
agent:
name: SQL Expert
extends: otto
model_settings:
temperature: 0.1
---
You are a SQL expert. When users ask questions, prefer writing SQL queries to answer them.
Always use CTEs instead of nested subqueries. Explain your query logic step by step.
OttoAgentโ
Below are the properties for the OttoAgent. Each property links to the specific details section further down in this page.
| Property | Default | Type | Required | Description |
|---|---|---|---|---|
| id | string | No | Unique identifier for the agent | |
| name | string | Yes | The name of the agent | |
| extends | string | No | Agent ID or name to inherit from | |
| instructions | string | Yes | The instructions for the agent | |
| mcp_servers | array[string] | No | The MCP servers to use for the agent | |
| model | Any of: ย ย string ย ย ProviderModel | No | The model to use for the agent | |
| model_settings | OttoModelSettings | No | The model settings for the agent | |
| tools | array[string] | No | The tools to use for the agent | |
| max_turns | integer | No | Maximum number of turns for the agent | |
| jinja | False | boolean | No | Whether to render with Jinja templating |
Property Detailsโ
OttoModelSettingsโ
Model for the model settings for an Otto agent.
| Property | Default | Type | Required | Description |
|---|---|---|---|---|
| reasoning | string | No | Reasoning effort level for reasoning models (e.g., o1, o3). For OpenAI models: 'minimal', 'low', 'medium', 'high'. For Anthropic models via LiteLLM, this enables extended thinking and sets thinking budget tokens. 'low', 'medium', 'high' maps to budget tokens: low=1024, medium=2048, high=4096. Note: Starting from Claude Opus 4.5, reasoning_effort is separate from thinking.budget_tokens. Both can be used together - reasoning_effort affects all tokens (text, tools, thinking), while thinking.budget_tokens sets a specific maximum for extended thinking tokens. | |
| thinking | ThinkingSettings | No | Extended thinking settings for Anthropic models. Configures the thinking.type and thinking.budget_tokens parameters. Only applicable to Anthropic models. | |
| temperature | number | No | Model temperature setting. For Anthropic models, must be set to either None or 1. |
ProviderModelโ
Model specification with provider and model IDs.
| Property | Default | Type | Required | Description |
|---|---|---|---|---|
| provider_id | string | Yes | Provider ID | |
| model_id | string | Yes | Model ID |
ThinkingSettingsโ
Settings for extended thinking in Anthropic models. See: - https://docs.aws.amazon.com/bedrock/latest/userguide/claude-messages-extended-thinking.html - https://docs.litellm.ai/docs/providers/anthropic_effort - https://docs.litellm.ai/docs/providers/anthropic#usage---thinking--reasoning_content
| Property | Default | Type | Required | Description |
|---|---|---|---|---|
| enabled | True | boolean | No | Whether to enable extended thinking |
| budget_tokens | integer | Yes | Maximum number of tokens to allocate for thinking (minimum: 1024) |