Observability
Agent Dashboard
The Agent Dashboard is the registry and health monitor for every AI agent in your organisation. Each distinct agent_id you use in your sessions becomes a card here — with live session counts, cost totals, error rates, and a lifecycle status that tells you at a glance whether the agent is healthy.
What is an agent ID?
An agent ID is the string you pass as agent_id in start_session(). It is the primary identifier that ties sessions, policies, experiments, and signals to a specific piece of agent logic. You define it — it can be any stable slug likereport-summariser or support-classifier-v2.
# Agents are created automatically on the first start_session() call.
# No explicit registration needed — just use the agent_id you want:
import niitaka
with niitaka.start_session(
goal="Generate executive summary",
agent_id="report-summariser", # creates the agent if it doesn't exist yet
) as session:
...
# The display name and description can be edited from the Agents dashboard.Lifecycle statuses
Every agent has a computed status derived from recent session activity. You can override it manually for lifecycle milestones like shipping or deprecating an agent.
| Status | Source | Meaning |
|---|---|---|
| active | auto | A session is currently running for this agent. |
| idle | auto | Last session ended cleanly; no activity in the past hour. |
| error | auto | One or more recent sessions had error_count > 0. |
| stale | auto | A running session timed out with no heartbeat (> 5 min). |
| new | auto | Registered but no sessions have run yet. |
| shipped | manual | Manually marked as promoted to production. |
| deprecated | manual | Manually marked as no longer in active use. |
| archived | manual | Hidden from default views; retained for history. |
# Override status manually via the API (or the Dashboard UI):
import requests
requests.patch(
f"https://api.niitaka.ai/agents/{agent_id}",
json={"status_override": "shipped"},
headers={"Authorization": f"Bearer {JWT}"},
)shipped to mark an agent as promoted to production after a successful experiment. Use deprecated to signal to your team that it should not be used in new work. Both are manual overrides — they do not affect runtime behaviour.Tile and list views
Toggle between Tile and List view using the icons in the top bar.
- Tile view — colour-coded cards (colour is deterministic from the agent ID hash) showing status, session count, total cost, and last-seen time. Best for a quick visual health scan.
- List view — tabular layout with sortable columns for sessions, cost, error count, last seen, and experiment count. Best for comparing many agents at once.
Folder organisation
Agents can be organised into folders via drag-and-drop. Folders support three visibility levels:
Agents without a folder belong to the org root — the top-level folder visible to all organisation members. You can move them into a sub-folder at any time via drag-and-drop.
Assigning folders from the SDK
Pass folder_path to start_session() to place an agent in a folder programmatically. Sub-folders are separated by /. Folders that don't exist yet are created automatically.
import niitaka
# The folder hierarchy is created automatically if it doesn't exist yet.
with niitaka.start_session(
goal="Generate competitive analysis",
agent_id="market-analyst",
folder_path="research/competitive", # places agent in research → competitive
) as session_id:
...
# Paths resolve from the org root. Maximum depth: 5 sub-folders.
# If the agent already lives in a different folder, this moves it.folder_path assigns the agent, not the session, to the folder. If the agent already lives in a different folder, this moves it. A maximum depth of 5 sub-folders is enforced.Version tracking
Each time an agent's Runtime Config is updated (model, system prompt, guardrail thresholds), a new AgentVersion is recorded automatically. The version number is displayed on the agent card and in the detail view. You can roll back to any prior version from the Agents dashboard.
Experiment count badge
The badge on each agent card shows how many experiments have been run for that agent. Click through to the agent detail page to see the full experiment history and the active Runtime Config.
Filtering by status
Use the status tabs at the top of the dashboard to filter agents:All, Active, Idle, Error, New,Shipped, Deprecated, Archived. Agents with at least one error in recent sessions appear under Error regardless of their override status.
Next steps
- Signals & Alerts — see policy signals and configure email or webhook alerts per agent.
- Policies — attach cost limits, step limits, retry, and fallback rules to an agent.
- Experiments — run A/B tests across agent configurations.