Projects

Experiments and demos built with real technology.

Offline

Trip Planner (Chain of Agents)

Type a trip request and watch a chain of specialised agents hand the work along in real time until they deliver a day-by-day itinerary checked against your budget. A LangGraph orchestrator owns the control flow; a local Qwen 2.5 writes only the prose, while typed decisions and plain arithmetic handle the rest. When the plan goes over budget, a conflict-resolution agent renegotiates it without a human. Local LLM (Qwen 2.5 via Ollama) and no API keys; live weather, places and exchange rates come from open data sources.

PythonFastAPILangGraphOllama (Qwen 2.5 1.5B)SSE
Offline

Agentic Racing

Six identical cars race a closed circuit in the browser. Each car is a two-tier agent: a pilot that drives every frame, and an independent LLM team boss that reads live telemetry and radios back a strategy — attack, defend, conserve — F1 team-radio style, on screen. The race never waits on the model: a fixed heuristic takes over the instant it is slow, off, or replies invalid JSON. Fully self-hosted: a local llama3.2:3b behind a proxy with its own circuit breaker, rate limit and concurrency gate.

Unity WebGLPythonFastAPIOllama (Llama 3.2 3B)
Offline

RAG Chatbot over Blog Posts

An interactive retrieval-augmented generation chatbot that answers questions using my blog posts as a knowledge base. Fully self-hosted: semantic vector search (pgvector) with multilingual embeddings and a local Qwen 2.5 LLM served by Ollama — no external LLM APIs.

PythonFastAPIpgvectorsentence-transformersOllama (Qwen 2.5)
Offline

The Dreaming Agent

A conversational agent with three-level memory (short, mid and long term) and a "dream" phase that consolidates it offline, inspired by LightMem (ACL 2026). Chat with it and watch what each module decided on every turn, what lives in each memory level, and what the Dream changed — merges, updates, promotions and forgets, as a diff checked by a deterministic validator. A selector answers with LightMem, a naive RAG, or both side by side. Fully local: a small Qwen 2.5 3B and bge-m3 embeddings on Ollama, no external APIs.

PythonFastAPISQLiteOllama (Qwen 2.5 3B)bge-m3