AURIGA, Formula Student AI assistant
A hackathon team's four-agent assistant for race strategy, rules, telemetry and memory; my part: design and strategy.
- Python
- OpenAI API
- ChromaDB
- BM25
- DuckDB
- Telegram bot
- HTML/CSS
- 4specialist agents behind one orchestrator, built by my teammate
- ~250rulebook pages the Rules agent answers from, always citing the section
One orchestrator, four specialists
Tap a block to see what it does.
- Input
- Data
- Logic
- AI
- Output
The heart of the system
Orchestrator
A GPT supervisor that calls the specialist agents as tools and can chain them agent to agent; built by my teammate (OpenAI API, agentkit).
Connected to Strategy agent, Rules agent, Telemetry agent, Team questions, Team memory
Input
Team questions
The team asks in a terminal chat, on Telegram or by voice: how much fuel, which driver plan, is this part legal.
- Typer CLI
- Telegram
- Whisper
Hands to Orchestrator
Data
Team memory
Past design decisions and lessons in a Chroma collection, deduplicated by fact hash and injected into every run, so knowledge survives graduation.
- ChromaDB
Hands to Orchestrator
Logic
Strategy agent
Vectorised Monte Carlo of the endurance with the current FSAE scoring and real driver-change times; the model only narrates the result.
- numpy
Gets from OrchestratorHands to Quality hooks
AI
Rules agent
Hybrid search on the rulebook, vectors plus BM25 merged with RRF, and a validator that rejects any answer without the exact section cited.
- ChromaDB
- BM25
- OpenAI embeddings
Gets from OrchestratorHands to Quality hooks
Logic
Quality hooks
Hooks log every call, check citations and roll up the cost of each agent chain into one total.
- OpenTelemetry
Gets from Strategy agent, Rules agent, Telemetry agentHands to Cited answer
Output
Cited answer
A reply in Italian with the rulebook section, the simulated odds of finishing or the telemetry anomaly behind it.
Gets from Quality hooks
Logic
Telemetry agent
DuckDB runs straight on CAN-bus CSV logs and flags physical limits, such as brakes over 400 °C or coolant over 105 °C, corner by corner.
- DuckDB
Gets from OrchestratorHands to Quality hooks
The problem
In Formula Student, endurance calls on fuel, driver changes and pace are made on gut feel, under pressure, by students who have barely slept. The rulebook is about 250 pages of technical English, CAN-bus telemetry produces more data than the team can read, and every year graduates leave with what they learned.
What I built
- Wrote the product README: four team pains, one specialist agent for each, the design patterns behind them and the team roles.
- Put the key design idea into plain words for the pitch: a deterministic simulator produces the numbers and the language model only explains them.
- Designed the AURIGA identity and a link-in-bio page for the project resources: near-black and signal red, Space Mono and DM Sans, an ASCII logo.
- Set up the GitHub organisation, and corrected my own credit in the README from AI architecture to Design · Strategy, crediting backend and agents to my teammate.
The hard part
Explaining a multi-agent system I did not code. The pitch had to make four agents and their trade-offs clear to people who are not engineers, while every technical line stayed one I can defend at design level: why the rules agent refuses to answer without a citation, and why race numbers come from a Monte Carlo simulator rather than from the model.
Result
A presentation repository with the README, a resource page and the link-in-bio page; slides, demo and video were still marked 'coming soon' when it was closed. The agent code lives in my teammate's repository, so the README's performance figures are not repeated here.
My role
Team of two, built for a Formula Student hackathon. My part was product design and strategy: the README, the pitch framing, the visual identity and the GitHub organisation. My teammate designed and built the backend and the four agents on OpenAI models.