Agent run monitoring
What you’ll build: a control room for the agents you run — every run logged, the success rate trending, and failures surfaced immediately. This is the core PulseDeck use case: your Hermes / CrewAI / LangGraph / n8n agents reporting on themselves.
Finished agent dashboard: a runs-over-time chart, a success-rate metric, and a feed of failed runs.
Drop an image into public/shots/ and pass src.
What you’ll need
Section titled “What you’ll need”- PulseDeck running (Quickstart).
- A registered source and its
pd_…API key. - An agent or pipeline whose runs you want to track. Post once at the end of each run.
1. Plan the structure
Section titled “1. Plan the structure”- Category:
agents - Stream: one per agent, e.g.
research-bot
2. Send the report
Section titled “2. Send the report”At the end of every run, the agent posts a report describing how it went: a metric for the success rate, a status block for the steps, an alert if the run failed, and an artifact linking to the full output or logs.
curl -X POST http://localhost:3001/api/v1/reports \ -H "Authorization: Bearer pd_xxxxx" \ -H "Idempotency-Key: research-bot-run-8412" \ -H "Content-Type: application/json" \ -d @run.json{ "version": "1.0", "source": { "id": "src_…" }, "category": { "slug": "agents" }, "stream": { "slug": "research-bot" }, "report": { "title": "research-bot — run #8412", "summary": "Completed with 1 step retried.", "severity": "warning", "occurred_at": "2026-06-23T12:30:00Z", "tags": ["research-bot", "run"] }, "blocks": [ { "id": "rate", "type": "metric", "key": "success_rate", "label": "Step success rate", "value": 92.3, "unit": "%", "format": "percent", "precision": 1, "trend": "down", "sentiment": "negative", "delta": -3.1, "comparison_label": "vs last run" }, { "id": "steps", "type": "status", "items": [ { "key": "fetch", "label": "Fetch sources", "status": "healthy" }, { "key": "summarize", "label": "Summarize", "status": "degraded" }, { "key": "publish", "label": "Publish", "status": "healthy" } ] }, { "id": "warn", "type": "alert", "title": "Summarize step retried", "severity": "warning", "message": "Rate-limited by the model API; succeeded on retry 2." }, { "id": "output", "type": "artifact", "label": "Full run log", "url": "https://logs.example.com/runs/8412", "mime_type": "text/plain" } ]}Set severity to critical when the run fails outright, warning on retries,
info on a clean run — so the failure feed only shows what needs attention.
3. Build the dashboard
Section titled “3. Build the dashboard”- A report_count widget — runs over time (cadence and gaps at a glance).
- A metric widget — the latest success rate.
- An alert_feed scoped to the
agentscategory — failed and degraded runs surface here first.
{ "version": 1, "widgets": [ { "id": "cnt", "type": "report_count", "span": "half", "row": 0, "config": { "scope": "category", "targetId": "cat_agents", "bucket": "day", "range": "30d" } }, { "id": "rate", "type": "metric", "span": "half", "row": 0, "config": { "streamId": "str_research_bot", "metricKey": "success_rate", "label": "Success rate" } }, { "id": "fails", "type": "alert_feed", "span": "full", "row": 1, "config": { "categoryId": "cat_agents", "limit": 15 } } ]}Builder with a runs-over-time count, a success-rate metric, and a full-width failure feed.
Drop an image into public/shots/ and pass src.
Make it your own
Section titled “Make it your own”- Many agents — one stream per agent under
agents; the count widget can scope to the whole category or a single stream. - One workspace per client (agencies) — each client’s agents report into their own workspace; you get a portfolio view per client.
- Link everything — the artifact block turns each run into one click to the full logs or output.