Inspiration

Around the world, one of the most persistent inequalities is related to education: access to higher education often depends on whether someone’s parents went to university. Germany is often cited as a system where education is open to everyone. University tuition is free and admission is formally merit-based. Yet the numbers tell a different story: 78 out of 100 children from academic families enroll in university, compared to only 25 out of 100 from non-academic families. One major barrier is simply information. Students who are the first in their family to consider university often face a system full of unfamiliar terms and unwritten rules. Questions that seem trivial to others can become real obstacles: how applications work, what degree programs exist, or how studying can be financed. Today, students navigate this through four channels, each with critical limitations:

  • Family knowledge: only available if parents already went to university
  • School counseling: limited hours, uneven quality, appointment-gated
  • Official websites: accurate but fragmented, jargon-heavy, and hard to compare
  • Forums and social media: accessible but unreliable

KODA was created to address exactly this gap: making knowledge about higher education accessible to everyone, regardless of background. The goal was not to build a generic chatbot, but a digital guide that helps students understand the system and make informed decisions about their future.

What We Built

KODA is a multi-agent AI companion for first-generation students, built on Amazon Nova 2 Lite via Amazon Bedrock. It provides 24/7, anonymous, empathetic guidance about higher education — in German or English, from any device.

KODA has five core capabilities:

1. Conversational University Guidance

Instead of navigating dozens of fragmented websites, users ask questions in a conversational format. KODA responds in plain language, explains concepts step by step, and never assumes prior knowledge.

2. Study Choice Support

Many students struggle because degree programs are abstract and institutions are hard to compare. KODA includes a Degree Explorer, University Finder, and Application Guide that help users explore options, compare universities, understand application pathways, and evaluate whether university or an apprenticeship is the better fit.

3. Financing Guidance with Tool Support

Uncertainty about money is one of the biggest barriers. KODA includes dedicated agents for student aid (BAföG), scholarships, and cost of living. This is backed by Amazon Nova's Code Interpreter for personalized calculations and Web Grounding for current scholarship deadlines.

4. Hidden Curriculum Decoder

KODA's signature feature: a dedicated agent that explains the unwritten rules of higher education. For technical terms, it provides simple explanations, context and practical implications.

5. Safety, Belonging, and Confidence Support

KODA includes Role Model Matching (20 curated first-gen role models), Anti-Impostor support, a Compass **agent for first orientation, and a **Crisis Radar running in parallel on every single message. This matters because many educational questions are not purely informational. They are shaped by uncertainty, self-doubt, and lack of belonging. KODA detects sensitive situations early and responds supportively.

How We Built It

KODA is a custom multi-agent orchestration system in Python, running on Amazon Nova 2 Lite via Amazon Bedrock.

Architecture

User Message → Router Agent + Crisis Radar (parallel) → Specialist Agent Selection → Tool Use / Web Grounding (if needed) → Anti-Shame Filter + Provenance Tracking → User Response (in user's language)

The system is not a single LLM wrapped in a chat UI. It decomposes the problem into 13 specialized agents, each with tailored reasoning depth and tools:

Component Agents Nova Features
Routing & Safety Router, Crisis Radar, Compass Extended Thinking LOW
Financing Student Aid, Scholarships, Cost of Living Extended Thinking HIGH + Code Interpreter + Web Grounding
Study Choice Degree Explorer, University Finder, Application Guide Extended Thinking HIGH + Web Grounding
Academic Basics Hidden Curriculum, Study vs. Apprenticeship Extended Thinking HIGH
Role Models Role Model Matching, Anti-Impostor Extended Thinking HIGH

Cross-Cutting Layers

Every response passes through:

  • Anti-Shame Filter: 20+ patterns in German and English rewritten to remove condescending language ("you should know" → "I'll explain it clearly")
  • Intersectionality Engine: enriches prompts with captured identity context (first-gen, working student, financial stress) without forms or self-disclosure
  • Provenance Tracker: documents where every answer comes from (trusted registry, web, document, or model knowledge)
  • Multilingual Auto-Detection: all agents respond in the user's language

Technical Stack

Layer Technology
AI Model Amazon Nova 2 Lite on Amazon Bedrock
Backend FastAPI + Uvicorn
Frontend Streamlit (token-by-token streaming)
Deployment AWS ECS Fargate behind CloudFront + WAF
Infrastructure Terraform (20+ AWS resource definitions)
CI/CD GitHub Actions with OIDC (no long-lived secrets)
Security Non-root container, read-only FS, Trivy + Bandit + CodeQL
Testing 3-tier: unit (16 modules), integration (mocked Bedrock), scenario (6 JSON cases)

Privacy by Design

  • No logins, no accounts, no persistent user profiles
  • Sessions stored only in memory, auto-expire after 30 minutes
  • No third-party analytics or tracking
  • Documents processed ephemerally — metadata stored, content discarded
  • GDPR Art. 25 compliance by architecture

Challenges

1. Routing heterogeneous questions without collapsing into a generic chatbot

KODA handles financial calculations, study-choice exploration, application procedures, hidden-curriculum explanations, and emotionally sensitive belonging questions, all in one conversation. A single-agent approach produces shallow or inconsistent answers. The core challenge was building a routing layer that classifies intent reliably enough to send each question into the right reasoning and tool path. This led to the 13-agent architecture with a dedicated Router Agent using Nova's Extended Thinking.

2. Combining tool outputs with accessible explanations

Grant calculations, cost-of-living estimates, and university comparisons require Code Interpreter and Web Grounding but tool outputs are optimized for correctness, not accessibility. Translating technical tool results into plain-language guidance for first-generation students required separating tool execution from response shaping, so structured outputs could be reframed in a supportive voice.

3. Making safety structural

Educational guidance is a sensitive domain. Students may talk about financial stress, not belonging, or crisis-adjacent situations. We did not want safety to be a final moderation pass. Instead, KODA runs a parallel Crisis Radar on every message using Nova's reasoning (not keyword matching) so safety is embedded in the interaction pipeline itself. Architecturally, this was one of the most important design decisions.

4. Web Grounding source quality

When using Web Grounding for scholarship deadlines or application procedures, the system occasionally surfaced content from unexpected or low-quality websites. Educational guidance requires high source reliability. We designed a trusted source registry with curated German government and educational sources, and implemented provenance tracking so users always know where an answer came from.

5. Privacy vs. helpfulness trade-off

We wanted KODA to feel safe enough for students to ask questions they might never ask elsewhere. But avoiding accounts and persistent storage creates constraints — the system must remain coherent within ephemeral 30-minute sessions. Designing helpful guidance without long-term memory required careful session state management with automatic topic extraction, identity detection, and exportable session bundles.

6. Handling Extended Thinking reasoning leakage

When using Amazon Nova's Extended Thinking feature, the model's internal reasoning process occasionally surfaced in user-visible output: hidden reasoning markers ([HIDDEN]) and chain-of-thought fragments appeared in responses that should have contained only the final answer. In a generic application this might go unnoticed, but for KODA, where every response must feel supportive and clear, exposing raw reasoning tokens to a first-generation student could break trust immediately. We solved this by implementing post-processing in our Bedrock client layer: strip_hidden_markers() filters all model output (both synchronous and streaming responses) to ensure only the intended conversational text reaches the user. For streaming, this required careful chunk-level filtering so that markers split across token boundaries are still caught.

Accomplishments

  • Built a 13-agent system with routing, specialization, tool use, and parallel safety logic
  • Used Amazon Nova 2 Lite as the core reasoning model across every component: fast triage (Extended Thinking LOW), deep domain reasoning (HIGH), financial calculations (Code Interpreter), and real-time information (Web Grounding)
  • Implemented an Anti-Shame Filter that rewrites condescending language in both German and English (20+ patterns, embedded in every response path)
  • Deployed as a full-stack AWS application with ECS Fargate, CloudFront, WAF, Terraform, and OIDC-based CI/CD
  • Created a 3-tier test strategy (unit, integration, scenario) with 16 unit test modules

Lessons Learned

KODA taught me that meaningful AI systems are not built by choosing a model and adding a chat box. Quality comes from the system around the model. In practice, the quality of the responses depended on how well reasoning, retrieval and orchestration worked together. To answer questions reliably, the system needs to recognize the type of question, route it to the right component, decide when external information is needed and translate that information into a clear explanation. Another important insight was the importance of matching reasoning depth to task complexity. Some questions benefit from fast, lightweight explanations. Others require deeper reasoning, comparison of options, or tool-based calculations. Designing the system so that it can dynamically adjust its reasoning effort significantly improved both responsiveness and answer quality. I also learned that education is a demanding AI domain. It is not enough to be factually correct. The system also has to be understandable, non-judgmental, and supportive for users who may already feel uncertain about whether they belong in higher education. The biggest takeaway is that AI can reduce educational inequality when it is designed not just for automation, but for access. KODA is the attempt to turn hidden academic knowledge into something anyone can ask about, understand, and act on.

What's Next for KODA

  • Scenario-based evaluation Expanding the test suite with real student journeys
  • Privacy-preserving personalization Improving within-session adaptation without storing any data
  • Vocational pathways: Extending guidance beyond university into apprenticeships, dual study, and career entry
  • Institutional partnerships: Piloting with NGOs and university student services

Built With

  • amazon-ecr
  • amazon-nova
  • application-load-balancer
  • aws-secret-manager
  • aws-waf
  • bedrock
  • boto3
  • cloudfront
  • docker
  • docker-compose
  • ecs-fargate
  • fastapi
  • github-actions
  • github-oidc
  • hadolint
  • mypy
  • pytest
  • python
  • ruff
  • streamlit
  • terraform
  • trivy
Share this project:

Updates