Agents

What Is Agent Status?

The current operational state of an agent — for AI agents, fields like Idle, Planning, Tool-Calling, Awaiting-Tool, Failed, Completed exposed by the runtime.

What Is Agent Status?

Agent status is the current operational state of an agent. In a contact center it is the human rep’s state code — Available, On Call, After-Call Work, Break, Offline. For an AI agent it is a runtime field — Idle, Planning, Tool-Calling, Awaiting-Tool, Awaiting-User, Failed, Completed — that the runtime exposes for routing, observability, and cost accounting. Agent status is the ground truth a dashboard joins against to compute occupancy, queue depth, handoff timing, and stuck-agent alerts. FutureAGI treats it as the AI equivalent of a process state: a queryable trace signal for routing, dashboards, and regression checks.

Why agent status matters in production LLM and agent systems

Without status, you cannot tell a stuck agent from a slow one. A trace span that says “agent has been running for 47 seconds” could mean the model is producing a long answer, the agent is waiting on a tool that already returned, or the loop is wedged in a planner step that never finishes. Each case has a different fix and a different alert; without a status field, the dashboard cannot distinguish them.

Different roles see different status pains. A backend engineer sees a queue of Awaiting-Tool agents because a downstream API throttled. An SRE wants to alert on Planning time exceeding a threshold — that is the canonical “model is stuck thinking” symptom. A product reviewer wants Awaiting-User to time out gracefully so abandoned conversations close. A finance partner wants to slice cost by Tool-Calling time vs Planning time to know whether the regression is in tool latency or model spend.

In 2026 the status surface has begun to converge across frameworks. The OpenAI Agents SDK exposes step lifecycle events; LangGraph emits state-machine transitions; CrewAI surfaces task status; Google ADK ships status hooks. The A2A protocol defines status enumerations on agent cards. Unlike a raw OpenTelemetry span, which tells you duration but not intent, normalized agent status tells you why the runtime is waiting. That convergence makes cross-framework dashboards possible — provided your tracing layer captures status as a first-class attribute, not just a free-text log line.

How FutureAGI handles agent status

FutureAGI’s approach is to capture status transitions as OpenTelemetry span events through traceAI. Integrations for openai-agents, crewai, google-adk, and a2a instrument the agent runtime so that every state change becomes an event tagged with the active agent name, step index (agent.trajectory.step), and status code. That gives the dashboard layer a queryable time series — duration in Planning, count of transitions to Awaiting-Tool, stuck-time in Failed — without grep on application logs.

Concrete example: a multi-agent crew on CrewAI shows a 9-second p95 step time after a model swap. Filtering by status reveals the regression is concentrated in Planning (jumped from 2.1s to 7.8s p95) while Tool-Calling time held steady. The fix is a planner-prompt simplification, not a tool-API rollback. Without status segmentation, the team would have spent a day suspecting the tool layer.

For evaluation, status pairs with trajectory analysis. TrajectoryScore and StepEfficiency use the status timeline to compute wasted-step ratios and time-to-first-action. Loop-detection logic — important for infinite-loop-agent mitigation — uses repeated Planning → Tool-Calling → Planning cycles on the same arguments as a heuristic.

How to measure or detect agent status

Status is best instrumented as a span event with a small enum:

  • status enum (span attribute): Idle, Planning, Tool-Calling, Awaiting-Tool, Awaiting-User, Failed, Completed — the canonical set traceAI captures.
  • agent.trajectory.step (OTel attribute): paired with status so each transition is anchored to a step index.
  • time-in-status p95 (dashboard signal): the canonical stuck-agent alert; threshold per status type.
  • status-transition graph (FutureAGI dashboard): the state machine view that makes anomalous transitions visible — e.g., direct Planning → Failed without a Tool-Calling step.
  • TrajectoryScore: uses the status timeline to score trajectory soundness end-to-end.
  • TaskCompletion: lagging outcome metric tied to status == Completed.
from fi.evals import TaskCompletion, TrajectoryScore

t = TaskCompletion().evaluate(input=goal, trajectory=trace_spans)
s = TrajectoryScore().evaluate(input=goal, trajectory=trace_spans)
print(t.score, s.score)

Common mistakes

  • Treating status as a free-text log line. Free-text statuses cannot be aggregated; commit to a small enum and stick to it across runtimes.
  • Conflating status with trajectory. Status is instantaneous; trajectory is the sequence. Both are needed; neither replaces the other.
  • No timeout on Awaiting-User. Conversations that abandon mid-turn leak runtime resources; expire abandoned states and close traces.
  • Skipping Failed instrumentation. A silent failure that closes the trace as Completed poisons your TaskCompletion rate.
  • Per-framework status fields with no normalization. Three runtimes with three status enums become three dashboards; normalize at the traceAI layer.

Frequently Asked Questions

What is agent status?

Agent status is the current operational state of an agent. For AI agents, common values are Idle, Planning, Tool-Calling, Awaiting-Tool, Awaiting-User, Failed, and Completed — exposed by the runtime as a span attribute or state-machine field.

How is agent status different from agent trajectory?

Status is the instantaneous state at one point in time. Trajectory is the ordered sequence of states and steps over the full run. Status answers 'what is the agent doing now'; trajectory answers 'what did the agent do.'

How do you observe agent status in production?

FutureAGI's traceAI integrations emit OpenTelemetry span events on every state transition, tagged with the active agent, status code, and step index. Dashboard the time-in-status to detect stuck agents.