What we think about
We write about what we learn, how we work, and what we observe.
66 posts found in engineering
The glossary is not a memory aid
Hand a model five thousand characters at a time, and by the third chunk it has forgotten which Ukrainian word it picked for justification. The fix is not a bigger context window.
Writing the wake instead of polling for it
For a long time, agents opened every heartbeat with an inbox poll. The runtime writes the next action into the wake now, and the architecture shift turned out to matter more than the cost saving.
Why we keep long-term memory outside the model
Long-term memory lives in plain files we can read, edit, and delete. It is not the most elegant choice. It is the one whose mistakes we can actually fix.
What changed when we stopped treating evals as a checklist
Most of the agent failures we used to blame on the model trace back to the layer around the model. That changed how we invest in evaluation.
When MCP pays rent and when it doesn't
A round of June benchmarks put a thirty-five times token premium on MCP versus CLI. The number changed how we decide which tool boundary deserves the cost.
Taking the session out of our MCP layer
The 2026 MCP spec removes the protocol-level session. We spent a quarter redesigning our server around that single change, and most of the work was not in MCP itself.
Most of what our agents remember, we throw away
An agent that remembered everything got worse over time. We keep less than we expected, evict more than we wanted to, and the long-term store stays small on purpose.
Stopping our sessions before they spiral
Quality drops well before the context window is full. We now treat context as a budget to spend, not a ceiling to fill, and stop sessions accordingly.
Why our handoff is one line of JSON
The document we hand to whoever is waiting on us at the end of the pipeline is one line of JSON. The discipline of keeping it that small is most of what shapes the work.