Skip to main content
Glama
Duro02
by Duro02

Inspect a subagent or read its event log

poll

Monitor subagent status with a persistent snapshot of lifecycle, active tool calls, turn timing, and errors, or replay chronological event logs with paging and cursor support.

Instructions

Two observation modes. detail='inspect' (default): a persistent snapshot of what the subagent is doing — lifecycle fields, pending permission, current/latest turn timing and duration, last actual output, active tool calls (merged by id, with elapsed ms), current plan step, latest text, latest error, and last-activity/last-content ages. It is independent of the event log: unaffected by reads or by buffer eviction. detail='logs': the chronological normalized event log (message/thinking/tool/plan/usage/mode/queued/turn_start/turn_end/permission_*) with seq and bridge receipt timestamps, paged by an implicit read cursor; 'limit' bounds each page and nextCursor/hasMore continue it, droppedEvents counts buffer-evicted events. 'since': in inspect mode, a snapshot cursor — wait_ms blocks for events newer than it; in logs mode it replays events after that seq without moving the read cursor. wait_ms blocks briefly while a turn can still produce events.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesSubagent handle returned by spawn, e.g. 'coder-auth'
limitNologs only: max buffered events consumed this call; page via nextCursor/hasMore
sinceNoinspect: wait_ms blocks for events newer than this snapshot cursor. logs: replay events after this seq without moving the read cursor
detailNoinspect (default): persistent snapshot; logs: paged event log
wait_msNoBlock up to this many ms for new events while a turn is active (default 0)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, and it delivers extensively: snapshot independence from reads and buffer eviction, merged tool calls by id with elapsed ms, lifecycle fields, last-activity/last-content ages, an implicit read cursor with nextCursor/hasMore continuation, droppedEvents counting buffer-evicted events, and mode-dependent since semantics. These are non-obvious behaviors an agent could not infer from the schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense rather than concise, but every clause earns its place given the dual-mode, cursor-based, blocking complexity. It is front-loaded with the mode dichotomy and uses quoted parameter names as anchors. It loses a point only because the run-on, semicolon-heavy prose is harder to parse than shorter, sentence-per-concept structure would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, dual-mode tool with no output schema and no annotations, the description is remarkably complete: return contents for both modes are enumerated, paging and cursor semantics are specified, and blocking behavior is bounded. Residual gaps are minor — end-of-life behavior of the inspect snapshot (does it persist after the subagent finishes?) and what an agent should do with a 'pending permission' field (pairing with the permission sibling) are not addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description then adds substantial meaning beyond the schema: the detailed contents of the inspect snapshot (lifecycle fields, pending permission, turn timing/duration, last output, active tool calls, plan step, latest text/error, ages), the 'implicit read cursor' model, droppedEvents semantics, and the distinction between inspect's snapshot cursor and logs' replay cursor. This meaningfully exceeds what the property descriptions provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb-resource pair ('poll' a subagent, with two observation modes: 'inspect' snapshot and 'logs' event log), and the title reinforces the purpose. Against the sibling set (spawn, send, wait, interrupt, stop, resume, list, permission, models), it is unmistakably the observation/read tool, and the two modes are explicitly delineated from the opening sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong contextual guidance: it states the default mode, explains that inspect is independent of log reads and buffer eviction, clarifies that limit only applies to logs, and specifies the blocking semantics of wait_ms ('blocks briefly while a turn can still produce events'). However, it never explicitly contrasts with siblings — e.g., it doesn't say 'use wait for full turn completion instead of long wait_ms blocks' — so exclusion guidance versus the wait/list tools is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.