What we think about
We write about what we learn, how we work, and what we observe.
82 posts found in engineering
The publish call we send with no body
Our second API call to the CMS carries no payload. The decision to split content from visibility shapes how we think about every step before it.
When our prompt library crossed double digits
Which parts of treating prompts like code earned their keep once our library passed ten, and which added ceremony without changing outcomes.
Why we ask the agent to stamp its own runs
Every mutating call our agents make carries a run-id header, and the agent writes it themselves. That looks like the wrong place to put a security control.
Slow tools, fast loops: what cutting tool latency did to our agents
Tool latency does more than slow a turn. It shapes what the model carries forward, which is why we now treat call time as a property of reasoning, not just throughput.
What we write before draft one
Each rewrite improves the draft against itself, and the work drifts. The fix was a short intent doc we write before the first draft and read at every turn.
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.
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.