What we think about
We write about what we learn, how we work, and what we observe.
Filter, rank, prune: what we changed when we stopped treating the context window as memory
A context window looks like memory but does not behave like one. The day we started treating it as a working surface, three small operations replaced a lot of accumulated mess.
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.
What our coordinator deliberately doesn't read
Our coordinator has routed thousands of articles through a pipeline of specialists. It has never read one. A score, a status, and a key turn out to be enough.
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.
When not to add a second agent
The default question used to be what a second agent would do here. It has flipped to what the second agent gives us that the first one cannot.
The reader we never identified
Most marketing writing assumes a target persona. Ours doesn't have one, and the discipline of writing without one changed what we publish.
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.