Skip to main content
Five providers: Anthropic (direct API), AWS Bedrock, OpenAI, Azure OpenAI, and GitHub Models. The model factory auto-detects the provider from the model name, or you can set LLM_PROVIDER explicitly.
Yes. Different model tiers can use different providers. For example, you could use Bedrock Opus for high-tier tasks and Anthropic Haiku for low-tier summarization.
Two ways:
  1. Wizard: Run /create-agent in chat for an interactive, AI-assisted flow
  2. Manual: Create .octo/agents/<name>/AGENT.md with YAML frontmatter
See Creating Agents for details.
Yes. Telegram is optional. If TELEGRAM_BOT_TOKEN is not set, Octo runs as a CLI-only tool.
Use /clear to start a fresh thread, or octo --resume to go back to the last session.
Three automatic layers handle this:
  1. Tool result truncation (40K char limit)
  2. Worker summarization middleware (70% threshold)
  3. Supervisor auto-trim in pre-model hook
You can also run /compact manually or check usage with /context.
A timer fires every N minutes (default 30m). Phase 1 uses a cheap model to check if action is needed. Phase 2 invokes the full graph only when there’s something to say. Configure via .octo/persona/HEARTBEAT.md.
Yes. The schedule_task tool lets agents create cron jobs. For example, a research agent can schedule a follow-up check in 2 hours.
Define them in .mcp.json at your workspace root, or use /mcp add for an interactive wizard. See MCP Servers.
Octo itself is open-source (MIT license). You pay for the LLM API usage with your chosen provider.

Troubleshooting

Run octo doctor --fix to re-run the setup wizard for failing checks. Common issues:
  • Missing or invalid API key
  • .octo/ directory not scaffolded (run octo init)
  • MCP server not reachable
Check that:
  • The AGENT.md file has valid YAML frontmatter with name and description
  • The agent directory is included in AGENT_DIRS or is under .octo/agents/
  • There are no YAML parsing errors (check Octo startup logs)
Bedrock has a read_timeout=300 by default. For very long operations, this may not be enough. Octo’s retry module handles transient timeouts with exponential backoff.