Skip to main content

Introduction

Building agents is easy. Running them in production is hard. Polos handles sandboxes, durability, approvals, triggers, and observability - so you can focus on writing the agent. No DAGs. No graph syntax. Just Python or TypeScript.
from polos import Agent, sandbox_tools, SandboxToolsConfig, DockerConfig

# Create a sandboxed environment - agents get exec, read, write,
# edit, glob, and grep tools automatically.
sandbox = sandbox_tools(SandboxToolsConfig(
    env="docker",
    docker=DockerConfig(image="node:20-slim", memory="2g"),
))

# Give the agent sandbox tools - it can now run commands,
# read/write files, and explore the codebase autonomously.
coding_agent = Agent(
    id="coding_agent",
    provider="anthropic",
    model="claude-sonnet-4-5",
    system_prompt="You are a coding assistant. The repo is at /workspace.",
    tools=sandbox,  # exec, read, write, edit, glob, grep
)

Polos vs. Typical Agent Frameworks

ChallengeTypical agent frameworkWith Polos
SandboxingNone - DIY or run unsandboxedDocker, E2B + built-in tools (exec, files, search)
DurabilityAgent crashes, start overAuto-retry, resume from exact step
ApprovalsBuild it yourselfSlack, UI, terminal - one tap
SlackBuild a bot from scratch@mention an agent, get responses in-thread
TriggersGlue code for every webhookBuilt-in: HTTP, webhooks, cron, events
ObservabilityGrep through logsFull tracing, every tool call, every decision
CostRe-run failed LLM calls from scratchDurable execution, prompt caching, 60-80% savings

What You Get With Polos

  • Sandboxed Execution - Isolated Docker and E2B environments. Built-in tools: exec, read, write, edit, glob, grep, web_search. No tool code to write, no sandbox lifecycle to manage.
  • Human-in-the-Loop - Approval flows for any tool call. Reach your team via Slack, Discord, email. Paused agents consume zero compute.
  • Durable Workflows - Auto-retry, log-replay, concurrency control. Resume from the exact step that failed. 60-80% cost savings via prompt caching.
  • Slack Integration - @mention your bot to trigger any agent. Responses stream back to the thread. Tool approvals show up as Approve/Reject buttons in Slack.
  • Triggers - Webhook URLs, HTTP API, cron schedules, event-driven.
  • Observability - OpenTelemetry tracing for every step, tool call, and approval. Full execution history. Visual dashboard for monitoring and debugging.
  • Bring Your Stack - Any LLM via Vercel AI SDK and LiteLLM. CrewAI, LangGraph, and Mastra compatible. Python or TypeScript. Open source - run anywhere.

CLI and UI to monitor and run your agents

polos dev                    # Start server + worker with hot reload
polos run <agent>            # Start an interactive session with an agent
polos agent list             # List available agents
polos tool list              # List available tools
polos logs <agent>           # Stream logs from agent runs
Polos observability dashboard showing agent traces

See It in Action

Watch a coding agent built with Polos - sandboxed execution, tool approvals, and real-time observability.

What Can You Build?

  • Coding Agent - Clones repos, writes code, runs tests, and opens PRs - all inside a Docker sandbox with human approval before anything ships.
  • Data Analyst - Connects to data warehouses, executes SQL in sandboxed environments, builds charts, sends approval pages before sharing with stakeholders.
  • Research Agent - Crawls multiple sources, extracts findings, builds knowledge bases. Durable execution checkpoints after each source. Notifies via Slack or Discord.
  • Order Processing - Handles incoming orders, runs fraud checks, suspends for human review on flagged transactions. Exactly-once execution guarantees no double charges.
  • Scheduled Workflows - Cron-triggered agents that run nightly data syncs, generate reports, or clean up stale resources. Durable state means missed runs pick up where they left off.

Next Steps

Polos is 100% open source. Star us on GitHub if you find it useful, and join our Discord to connect with the community.