List Agent Observations
Query Parameters
Response
Get Agent Observation
Response
Audit telemetry completeness
privacy_posture object reports privacy-mode coverage plus the count
and percentage of content-bearing, reasoning-bearing, and tool-payload-bearing
observations. It never returns the captured content. Use this endpoint as an
instrumentation and privacy-policy release gate without exporting prompts,
responses, reasoning, or tool payloads.
The default window is the last 24 hours. Windows are capped at 31 days and can
be filtered by agent_id, workflow_id, model, provider, release, or
environment. Pass include_missing_examples=true to return up to 20
observation IDs for each incomplete field without returning prompt or response
content.
coverage includes captured, eligible, missing, and
percent. Output, token, and cost coverage use successful generations as the
denominator. Generation input, model, and provider coverage use all generations.
System-prompt coverage uses chat/system-capable generations, so prompt-only
requests are not incorrectly reported as missing a separate system message.
For CI and release gates, --fail-under <percent> exits non-zero when any
applicable coverage dimension falls below the threshold. It also rejects
invalid token totals and, by default, an empty window. Add
--min-observations <count> to require enough live evidence before a release
can pass. The JSON report is printed before the failure so CI artifacts retain
the exact coverage and denominators. Use --min-scored-observations and
--min-scores to require enough human-feedback or evaluation evidence for an
engagement, experiment, or training-data workflow.
Use --require-privacy-mode to require every observation in the selected
window to declare privacy mode. Use --max-content-bearing-percent <percent>
to bound the percentage of observations whose stored payload shape indicates
prompt, response, reasoning, message, or tool content. The posture report is a
metadata-only policy signal: it checks content presence and known privacy-mode
attributes, not the meaning of captured text.
Export an evaluation or training dataset
ai:export scope or *; read, write, and errors:read do not
grant access. MCP intentionally does not expose this bulk operation.
Identifiers and arbitrary metadata are opt-in so a normal training export does
not accidentally carry customer identity or unrelated telemetry. When enabled,
each score includes its own
metadata.attributes and metadata.tags,
preserving feedback reasons, experiment assignments, evaluator context, and
other training signals. Prompt and output content is never reconstructed:
privacy-mode or upstream-redacted fields remain absent/redacted in the export.
Common Workflows
- Find all expensive generations by filtering
observation_type=generationand sorting bycost_usdin your client. - Search prompt text, tool payloads, or model output by passing
qwith a phrase frominput_jsonoroutput_json. - Debug one agent run by filtering
trace_idorsession_id. - Investigate a user’s failures by filtering
user_idandstatus=error. - Isolate tool performance by filtering
observation_type=tool_callortool_name. - Export positively scored generations with
agent-observations exportfor an eval, SFT, or preference dataset. - Gate instrumentation releases with
agent-observations qualityand compare coverage by agent, workflow, release, environment, model, or provider. Add--include-missing-examplesto jump directly from a failed coverage gate to the incomplete observations, then enforce the release with--fail-under 100 --min-observations <expected-volume>.
Agent handoff
Use this API when an assistant needs row-level AI workflow evidence:squasher agent-observations .... For MCP, call search("agentObservations"), inspect the schema, then execute the exact request.
Related dashboard endpoints
Squasher’s AI dashboard also uses these project-scoped endpoints:GET /v1/projects/{project_id}/ai/statsfor summary metrics, top models, top providers, sessions, and usersGET /v1/projects/{project_id}/ai/histogramfor daily request/cost/latency/token chartsGET /v1/projects/{project_id}/ai/sessions/{session_id}for session drill-downGET /v1/projects/{project_id}/ai/users/{user_id}for user drill-down; accepts optionalfromandtoISO timestamp query parameters to keep high-volume users windowedGET /v1/projects/{project_id}/ai/fixes/statsfor hosted fixer dispatch counts by source, requester, status, and webhook deliveryGET /v1/projects/{project_id}/ai/fixes/timelinefor hosted fixer dispatch and completion counts over time