Quickstart (5 Minutes)
Get agent-os running with your LangGraph agent in under 5 minutes. This guide takes you from zero to seeing live events in the dashboard.
Prerequisites
Section titled “Prerequisites”- Python 3.10+ (or Node.js 18+ for the JS SDK)
- A LangGraph, CrewAI, or custom AI agent
Step 1: Create your account
Section titled “Step 1: Create your account”- Go to agent-os.dev/register and create a free account
- After registration, you’ll see the onboarding wizard — it auto-creates your first API key
- Copy your API key — you’ll need it in the next step
Step 2: Install the SDK
Section titled “Step 2: Install the SDK”pip install agent-os-sdknpm install agent-os-sdkStep 3: Instrument your agent
Section titled “Step 3: Instrument your agent”from agent_os_sdk import AgentOS
# Initialize with your API keyaos = AgentOS( api_key="your-api-key-here", base_url="https://app.agent-os.dev")
# Wrap your compiled LangGraph graph — that's it!graph = aos.instrument(compiled_graph, agent_name="my-agent")
# Run as usual — events are sent automaticallyresult = graph.invoke({"messages": ["Hello, agent!"]})from agent_os_sdk import AgentOS, instrument_crew
aos = AgentOS( api_key="your-api-key-here", base_url="https://app.agent-os.dev")
# Wrap your CrewAI crewinstrumented = instrument_crew(aos, crew, agent_name="my-crew")result = instrumented.kickoff()import { AgentOS } from "agent-os-sdk";
const aos = new AgentOS({ apiKey: "your-api-key-here", baseUrl: "https://app.agent-os.dev",});
// Wrap your agent functionconst result = await aos.trace("my-agent", async (runId) => { // Your agent logic here return await yourAgentFunction();});# Send a test event without any SDKcurl -X POST https://app.agent-os.dev/api/ingest \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "event_type": "run_start", "sdk_run_id": "test-run-1", "agent_name": "test-agent", "payload": {} }'Step 4: Check the dashboard
Section titled “Step 4: Check the dashboard”- Open your dashboard
- Your agent run should appear in real-time
- Click on a run to see the full event timeline
You should see:
- run_start — when your agent started
- step — each LangGraph node execution
- tool_call — any tool invocations
- run_end — when the run completed (with cost and token info)
What happens behind the scenes
Section titled “What happens behind the scenes”Your Agent │ aos.instrument(graph) │ ├─► run_start event → Dashboard shows "running" ├─► step events → Timeline fills up ├─► tool_call events → Tool usage tracked └─► run_end event → Status becomes "success", cost calculatedThe SDK automatically captures:
- Run lifecycle (start, end, errors)
- Each graph node execution with timing
- Tool calls with input preview
- Token usage and cost (if your LLM returns it)
- Errors with stack traces (truncated to 1000 chars)
Next steps
Section titled “Next steps”- Dashboard Guide — Learn about filters, real-time updates, and run details
- Alerts — Set up email or webhook notifications for errors
- Cost Tracking — Monitor token usage and spending
- Human-in-the-Loop — Track when agents wait for human input
- API Reference — Direct API access without the SDK
Troubleshooting
Section titled “Troubleshooting”401 Unauthorized
Section titled “401 Unauthorized”Your API key is invalid or missing. Check:
- The key is correct (copy it again from Settings > API Keys)
- The
Authorization: Bearer <key>header is set - The key hasn’t been deleted
429 Too Many Requests
Section titled “429 Too Many Requests”You’ve either:
- Hit the rate limit (200 requests/minute) — wait a moment and retry
- Hit your plan event limit (1,000/month on Free) — check Settings > Plan & Usage
Connection refused / timeout
Section titled “Connection refused / timeout”- Check
base_urlis correct - Ensure you can reach the API from your network
- The SDK retries automatically (2 retries with backoff)
Events not appearing in dashboard
Section titled “Events not appearing in dashboard”- Make sure you’re logged in with the same account that owns the API key
- Check that the run completed (run_end event was sent)
- Hard-refresh the dashboard page (Ctrl+Shift+R)
- Events appear in real-time via WebSocket — if WebSocket is blocked, refresh the page