LLM agent observability borrowed from microservices — latency percentiles, error rates, request volume — and discovered those metrics lie. HTTP 200 on every step while customers receive wrong answers. Retry storms that look like traffic growth. Quality drift invisible until finance or compliance notices.
Traditional APM answers "did the service respond?" Production AI needs "did the response pass the rules that matter?" ValGuard captures step-level validation metrics, violation taxonomy, and audit logs compliance can read — without exporting everything to a third-party stack.
For the full engineering guide, see the observability pillar. For integration paths including streaming, read quickstart documentation.
The dashboard that showed success while agents failed
Green dashboards measure availability, not correctness. An agent that returns polite wrong answers has excellent uptime.
Symptoms:
- Customer complaints rise; error rate flat
- Support escalations increase; p99 latency normal
- Model spend stable; outcome quality collapses
What to instrument instead:
- Validation pass rate per step, per playbook version
- Violation rate by rule ID — not one blob "validation failed"
- Escalation rate — human queue depth as quality signal
- Grounding score for RAG steps — retrieval confidence × citation overlap
A step that returns HTTP 200 but validation_passed: false is a failed step. Chart it that way.
Violation taxonomy beats grep
Without aggregation, violations are needles in a haystack. "We had some validation errors" is not actionable.
Validation pattern:
- Taxonomy buckets:
enum_mismatch,policy_phrase,pii_detected,grounding_fail,tool_denied - Dashboards by taxonomy — pie chart of blocks beats log grep
- Sample payload store — hashed or redacted exemplars per rule ID for prompt tuning
- Anomaly detection on rule rates —
pii_detected10× baseline triggers review even if absolute volume is low
Drill from dashboard trends to per-request verdicts, block rates, and token burn. Request detail groups validations by orchestration step key so you see which handoff failed, not just that something failed.
See a sample audit report for the shape of exportable evidence compliance teams expect.
Latency spikes that are really retry loops
Latency alerts fire. On-call checks CPU; everything normal. The spike was 3× model retries after schema validation failures — each retry a full completion billed and slow.
Validation pattern:
- Span per attempt —
llm.attempt=1,validation.result=fail,llm.attempt=2 - Alert on retry ratio, not just p99 latency
- Cap retries — second deterministic failure escalates
Pair with structured output validation when violation types cluster on the same rule.
Drift you only notice on Monday
Prompt v3 shipped Friday. Monday refund rate changes. Nobody correlates — no version tag on logs, no canary comparison.
Drift sources:
- Prompt and schema version changes
- Retrieval index updates
- Model provider silent upgrades
- Validator rule edits
Validation pattern:
- Attach
prompt_hash,schema_version,validator_versionto every log line - Shadow mode — run new validator rules on production traffic without blocking; compare violation delta before enforce (shadow mode rollout)
- Weekly violation report — top 10 rule IDs week over week
LangSmith and similar tools trace LLM calls; extend traces with validation spans so debugging is one timeline.
Agent loops that burn budget invisibly
An agent retries tool calls, re-queries retrieval, re-invokes the model — each loop confident it is fixing the problem. Token meter runs. User waits. Outcome unchanged.
Validation pattern:
- Hard loop cap — e.g. five steps, then escalate
- Progress validator — each loop must change state (new chunk, different tool, narrower args)
- Cost attribution per session — finance sees which playbooks burn budget
Connect loop metrics to cost control budgets so runaway sessions hit caps before invoices spike.
Audit logs that survive review
Regulated teams need immutable evidence: what model, what prompt version, what validator fired, what was blocked, what shipped.
ValGuard records structured validation logs with org RBAC, retention tiers by plan, and webhook events for validation.failed and orchestration.step_completed. Playbook analytics panels link blocked request counts to filtered log views — no copy-paste of request IDs across tools.
For operational checklists, see immutable audit trails for AI decisions and explainability: why a validator blocked this output.
Orchestration-aware observability
Multi-step flows need step attribution. A failure in "compliance_guard" means something different than a failure in "draft_reply."
Playbook editor simulate mode shows validation outcomes per node before publish. After go-live, orchestration analytics compare pass rates across playbook versions — so deploys are experiments with measurable quality deltas.
Tutorials: validate LLM output and monitor flows walk through validation logs, playbook analytics, and drill-down URLs.
Start measuring what you would argue in court
If you cannot explain why an output shipped, you cannot defend it in a compliance review or a post-incident write-up.
Turn on validation logging on day one — even in shadow mode. Tag versions. Classify violations. Tie spend to sessions. Observability for AI is not another dashboard; it is the record of which rules held when the model tried to improvise.