Skip to content

FAQ

agent-os is a hosted observability dashboard for autonomous AI agents. You instrument your agent with the Python or JavaScript SDK (3 lines of code), and from that point on you see every run, every node execution, every tool call, and every error in a central dashboard — in real time.

Individual developers and small teams (2–10 people) who run LangGraph, CrewAI, or custom agents in production and don’t want to build their own observability infrastructure.

Do I need to change my existing agent code?

Section titled “Do I need to change my existing agent code?”

Minimal changes. You wrap your compiled LangGraph graph with aos.instrument(graph) or use aos.trace() in JavaScript. Your existing logic, tools, and state stay untouched.


  • LangGraph — full support via aos.instrument() and callback handler
  • CrewAI — supported via agent_os_sdk.crewai adapter
  • Custom agents — use send_event() / sendEvent() to send events manually from any framework

Both Python and JavaScript/TypeScript SDKs are available.

Yes. Both the Python SDK and the JavaScript SDK are open source.

What happens if the agent-os API is unreachable?

Section titled “What happens if the agent-os API is unreachable?”

Both SDKs retry failed requests up to 2 times with exponential backoff. Your agent continues running normally — observability is best-effort and never blocks execution.

Does the SDK send my agent’s data to a third party?

Section titled “Does the SDK send my agent’s data to a third party?”

Events are sent to the agent-os API (your own account). agent-os does not share data with third parties. See the Privacy Policy for details.


Go to Settings > API Keys and click Create key. The key value is shown once — store it securely.

  • Real-time run monitoring with status filtering
  • Agent registry with config versioning and budget management
  • Alert rules for errors, cost thresholds, and HITL timeouts
  • Cost tracking with per-agent and per-model breakdowns
  • Run replay and run comparison for debugging
  • Human-in-the-Loop status with waiting timer

Yes. The dashboard uses WebSocket connections (Laravel Reverb) to push events as they happen. When your SDK sends an event to /api/ingest, it is immediately broadcast to your private channel — typical latency is under 100ms.


  • 3 agents
  • 1,000 events per month
  • 7-day run history
  • Unlimited agents
  • Unlimited events
  • 90-day run history
  • Priority support
  • 50 CHF / month

All data is stored in a managed Postgres database. Event payloads, run metadata, and user accounts are encrypted at rest.

The dashboard uses WebSocket connections via Laravel Reverb. When your SDK sends an event to POST /api/ingest, the event is persisted, then immediately broadcast to your private WebSocket channel (user.{userId}). The dashboard’s JavaScript client listens on this channel and updates the UI in real time.

What is the maximum payload size per event?

Section titled “What is the maximum payload size per event?”

Each event payload is limited to 64 KB of JSON. For most use cases (tool inputs, node outputs, error traces), this is more than sufficient.

Yes. Create as many API keys as you need under Settings > API Keys. Each key is scoped to your user account. Useful for separating production vs. staging environments.

200 requests per minute per API key. This is sufficient for most agent workloads. If you need higher limits, contact support.


Not in the current version. The project runs via Docker Compose for local development. Self-hosted deployment for production will be considered for enterprise customers.

Yes. All run and event data is accessible via the API. Full data portability is a core principle.