Use Observability — the critical importance of LLM observability in enterprise AI agents

A claims system three AI agents actually run, traced end to end

Meridian Claims is a real, running health-insurance claims-adjudication demo — not slides pretending to be a product. Three CrewAI agents check policy coverage, medical history, and fraud signals through MCP tools; a deterministic gate makes the final call; and every LLM call, every tool call, every score is traced live in Langfuse Cloud.

Meridian Claims system architecture: portal to FastAPI backend to the CrewAI agent pipeline (Policy Verification, Medical History, Fraud/Exception, Decision Gate), MCP server, Ollama/OpenRouter, and Langfuse Cloud
System architecture — generated and validated from the actual codebase, not hand-drawn. Open the interactive version →

What it actually does

A filed claim moves through three specialist agents in sequence. Each one calls exactly one tool through MCP, and none of them makes the final decision.

  1. 1

    Policy Verification

    Calls check_coverage — is the billed procedure covered, is the deductible met, are there exclusions.

  2. 2

    Medical History

    Calls lookup_medical_history — checks the claim against the patient's prior diagnoses and procedures for consistency.

  3. 3

    Fraud / Exception

    Calls fraud_score — billed-vs-typical cost ratio, prior claim flags.

  4. →

    Decision gate — deterministic, not an LLM

    Combines the three findings with plain code, not model phrasing, and approves, denies, or routes the claim to a human adjuster.

Where Langfuse actually earns its place

Not just tracing — the parts of Langfuse most demos skip.

Sessions, not scattered traces

All three agents' spans for one claim are grouped into a single Session, so one claim reads as one timeline instead of three disconnected traces.

Users tagged by patient

Every trace carries the patient ID, so you can filter "show me every AI interaction for this person" — the way healthcare actually needs to audit.

Groundedness scoring

An app-managed LLM judge scores whether each agent's finding actually matches what its tool returned, or whether it drifted — recorded as a Langfuse Score.

A real regression caught in development

A seeded claim once approved when it should have gone to human review. The trace showed exactly which signal was missing; one line fixed it, and it's now a permanent eval case.

Stack

Agents
CrewAI, sequential process — src/agents.py
Tools
A local MCP server (stdio) exposing check_coverage, lookup_medical_history, fraud_score
LLM
Ollama (qwen2.5:7b, local, primary) — OpenRouter free tier as fallback
Observability
Langfuse Cloud via OpenInference/OTel — Tracing, Sessions, Users, Datasets, Scores
Backend
FastAPI + SQLite, Server-Sent Events for live agent activity
Frontend
Next.js + shadcn/ui — a claims-ops portal, not a chat window