Problem and goal
Insurance knowledge is often spread across Confluence, Jira, and operational systems. SupportOne brings those sources into one traceable workspace. It answers only when evidence is sufficient and returns a controlled refusal instead of hallucinating.
My contribution
I am building the system end to end: product flow, Next.js operations UI, FastAPI backend, LangGraph workflow, retrieval, model abstraction, MCP policy gateway, audit trail, testing, and evaluation.
System architecture
- Next.js operations workspace with authentication and persistent conversations
- FastAPI boundary separating HTTP, domain logic, and agent workflows
- LangGraph for routing, query rewriting, retrieval, evidence checks, and controlled refusal
- PostgreSQL and pgvector for documents, memory, claims, and audit data
- Provider registry for Qwen, Kimi, and Claude with normalized tool and token telemetry
Key engineering decisions
- Write-capable MCP actions require explicit confirmation and server-side idempotency.
- LLMs assist with claim review but never make the final approve-or-reject decision.
- Offline evaluation, online benchmarks, trace IDs, and optional Langfuse traces expose quality and cost.
What this project demonstrates
- Production-oriented agent architecture rather than a chatbot demo
- Safe tool use and human oversight
- Multilingual, source-grounded answers
- AI engineering combined with backend design and product UX