ThirdSlate: Agentic RAG for Course-Grounded Learning
Co-founder. I designed the product and built the AI backend, from document ingestion and retrieval to evaluation and deployment.
[1] System
Product problem, ownership & system architecture
How the student experience, identity, AI services and data fit together.
Student product loop
From uploaded course material to a grounded, reviewable answer.
System architecture
Dependency map
Ownership ledger
Problems solved
[2] Agentic RAG
Agentic RAG, grounding & memory
A state machine that handles retrieval, generation, grounding, citations, human review and resuming.
Retrieval context quality
LangGraph workflow
Parallel retrieval → generation → grounding check → citation or human review → saved state.
Memory layers
Engineering decisions
[3] Evaluation
Evaluation & ingestion engineering
Quality gates made retrieval and prompt changes repeatable, and async ingestion turned student files into searchable evidence.
Evaluation system
Every retrieval or prompt change ran through a 500+ case regression suite across 8 domains.
Quality signals
Async ingestion (Document AI)
PDF, DOCX and image/OCR content moved off the upload request, with saved progress, retries, timeouts, cleanup and bounded vector writes.
Document processing
[4] Deployment
Microservices, security & deployment
Three FastAPI services behind an authenticated FastAPI gateway, deployed to AWS EKS.
Three services plus a gateway: document processing, RAG chat and practice each had their own scope, and the signed-in identity passed from Supabase through the server and FastAPI layers.
Identity path
Identity and delivery were explicit boundaries, not trust in the client.
Delivery path
Production controls
Production delivery (AWS EKS)
The Python and FastAPI services ran in Docker containers and shipped through a GitHub Actions CI/CD pipeline. Tooling included Pytest, Pydantic, Black, Ruff and health and readiness checks.
[5] Results
Results, engineering decisions & lessons
The outcomes, architecture choices and reliability lessons from building ThirdSlate end to end.
Architecture decisions
Engineering lessons
Reliability improved once grounding was an explicit decision step, not just a prompt instruction.
A maintained benchmark made changes comparable and cut repetitive manual QA.
Good model behavior depended on ingestion, identity, memory, routing, storage and deployment all working together.
Note on scope
High-level architecture · reported metrics · no confidential data · backed by production use.
Want to talk about any of this?
Happy to go deeper on grounding, evaluation gates, or the ingestion pipeline.