The diagnosis & self-heal system for RAG Agents

Built for trace-level supervision of your agents at scale.

Try Self-heal via MCP →
Veralith project overview — RAG health, latency, knowledge-gap topics Veralith analytics — trace volume, failure-cell distribution, hallucination trend
Works with your stack
OpenAI Anthropic Google Gemini LangChain Cursor Codex
Why it matters

A pass/fail score tells you something broke. Veralith tells you what broke, where, and exactly how to fix it — for every trace your RAG agent serves.

FIG 0.1

Decompose every trace

Each query splits into atomic sub-questions and each answer into atomic claims — layer by layer.

FIG 0.2

Six failure cells

Completeness × Faithfulness sorts every trace into one named, colour-coded cell.

FIG 0.3

The heal loop closes

Recurring failures cycle into heal cards, into your agent's PR, back to healthy — and around again.

The loop

From a silent failure to a merged fix.

01
Instrument

One line in your pipeline — a call, a decorator, or the zero-change LangChain adapter.

02
Diagnose

Server-side, every trace is decomposed, judged on three metrics, and sorted into a failure cell.

03
Heal

Recurring failures become heal cards your coding agent turns into a reviewed pull request.

04
Monitor

Watch healthy-rate climb — and see what it would be if every open heal were merged.

pipeline.py
1import veralith
2from rag import retrieve, generate
3
4def answer(query):
5 chunks = retrieve(query) # your retriever
6 reply = generate(query, chunks) # your generator
7
8 veralith.log(query=query, context=chunks, response=reply) # ← the one line you add
9
10 return reply
Veralith trace diagnosis — grounded vs ungrounded claims with suggested actions
rag/generate.py heal · grounding-constraints
def generate(query, chunks):
ctx = format_chunks(chunks)
prompt = build_prompt(query, ctx)
- reply = llm.invoke(prompt)
+ prompt += GROUNDING_RULE
+ reply = llm.invoke(prompt, temperature=0.1)
+ reply = drop_ungrounded(reply, chunks)
return reply
# PR #318 · opened by Claude Code via MCP
Veralith failure-cell analytics — per-cell bars and break-out cards

Name the failure, not just flag it

Different bugs need different fixes — bump retrieval-K, tighten the prompt, fix a chunk boundary. Veralith's six cells tell them apart.

2.0 Explore cells →
Grounded
complete_grounded
Answers everything, every claim supported. The healthy trace.
⚠︎
Hallucinated
complete_ungrounded
Full answer, but invented a claim. Classic hallucination.
Retrieval gap
incomplete_grounded
Grounded, but skipped part of the query.
⚠︎
Missing + made-up
incomplete_ungrounded
Missed part of the query and invented a claim. Worst case.
Over-answered
extra_grounded
Grounded, but padded with unrequested content.
Fabricated extras
extra_ungrounded
Padded with unsupported extra content. Scope creep.

Start free. Scale when it ships.

Provisional pricing — current plans always live on your dashboard. Every tier includes the full diagnosis engine.

Hobby

$0
For prototypes and side projects finding their footing.
  • 10,000 traces / month
  • Full diagnosis & failure cells
  • Trace explorer & dashboard
  • Community support
Start free
Most popular

Team

$79 / mo
For teams running RAG in production and tuning it weekly.
  • 1,000,000 traces / month
  • Self-heal via MCP + auto PRs
  • Observability dashboards & insights
  • Email & Slack support
Start 14-day trial

Enterprise

Custom
For regulated, high-volume, or self-hosted deployments.
  • Unlimited traces
  • In-VPC / on-prem deployment
  • SSO, audit logs, SLAs
  • Dedicated solutions engineer
Talk to us

Stop shipping hallucinations.

Make ’em grounded!