Full-Stack AI Agent
KitchenLab is a full-stack cooking agent built on a strict trust split: the model phrases and personalizes, but temperatures, gram conversions, and safety facts always come from Python calculators, USDA tables, and retrieved passages with claim-level citations.

Most cooking assistants hallucinate measurements. KitchenLab doesn't. Facts flow through code first — brine math, baker's percentages, internal temps, allergen checks — and OpenAI only turns those results into clear teaching, recipes, diagnoses, and substitution advice.
The app is live at kitchen-lab-tau.vercel.app. Production runs on Vercel (Next.js frontend), Render (FastAPI backend in Docker), and Neon Postgres with pgvector for relational data and semantic retrieval. Recipe covers use the Unsplash API with attribution; experiment photos use a storage layer that works locally or on S3. Locally, the same roles map to Docker Compose on ports 3001 and 8000.
Six agent modes span the workflow: learn (grounded Q&A and techniques), cook (annotated recipes with USDA floors enforced after generation), adapt (standardized measures in Python), diagnose (symptom taxonomy with evidence-ranked causes), substitute (function-aware swaps), and experiment (controlled trials with notebook entries and photos). Signed-in users get a kitchen profile — oven offset, elevation, equipment, allergies — that personalizes cook, adapt, and substitute.
An eval harness encodes trust contracts as pytest scenarios (e.g. chicken below 74°C is raised to the USDA floor; teaspoon salt isn't scaled to cup grams). Diagnosis scoring is deterministic; the LLM only maps free-text to supports or contradicts. The repo also ships an optional AWS/Terraform reference architecture under infra/.