Research
Notes from the lab
What we are building, what we are measuring, and what surprised us.
3 min readThe Hidden Latency Cost of Stateful Multi-Agent Loops
How context growth and sequential model calls make multi-agent systems slower—and how to decide when extra roles are worth it.
Agent ArchitecturesRead
2 min readThe 200ms Turn-Taking Problem in Streaming Voice AI
A practical latency budget for voice agents, and why endpointing—not only model speed—determines whether a conversation feels responsive.
Voice SystemsRead
3 min readWhy RAG Fails When the Chunk Score Is High
Similarity can retrieve a topically related chunk that does not support the answer. Here is how to test retrieval for evidence, not proximity.
RetrievalRead
4 min readWhat a Data Centre Actually Does With Water
Cooling is a heat transfer problem with several solutions. Which one a facility uses decides whether it consumes water, electricity, or land.
ExternalitiesRead
5 min readPrompt Injection Is Not a Filtering Problem
Published defences report low attack success rates on static benchmarks and fall over against adaptive attackers. What survives that is architecture.
AI securityRead
5 min readWhy AI Water Estimates Differ by 2000x
Published figures for water per AI prompt range from 0.26 millilitres to over 500. Both are defensible. The gap is entirely in what each one counts.
ExternalitiesRead
4 min readWe Blamed AI Overviews. It Was Our Titles.
Nine hundred impressions at positions three to ten, and zero clicks. We assumed zero-click search. The Search Console data said something duller.
AI search optimizationRead
5 min readWhy AI Security Frameworks Fail in Practice
Frameworks describe controls for a system with a boundary. LLM applications dissolve that boundary, and the checklist stays green while the gap opens.
AI securityRead
5 min readWhich Model Should You Actually Run in Production
Leaderboards rank models on a distribution your workload does not resemble. The four axes that decide it, and how to build the comparison that matters.
Language ModelsRead
5 min readWhy Voice Agents Feel Broken at 800ms
Total latency is the wrong number to optimise. What decides whether a voice agent feels alive is time to first audio, and where those milliseconds go.
Voice SystemsRead
5 min readMost Agent Failures Never Throw an Error
An agent that crashes is the cheap case. The expensive failures return a confident, well-formed, wrong answer, and nothing in the stack notices.
Autonomous AI AgentsRead
4 min readHow AI Overviews Choose What to Cite
Ranking and citation are different selections made by different systems. Why a page can sit in the top ten for a query and never once be quoted.
Generative Engine OptimizationRead