> In this arrangement the log is a byproduct: an audit artifact written alongside the real computation, never the substrate of it.
I’ve come to the same conclusion building my own agents. It simply feels ‘wrong’ that most frameworks will happily mutate your context. You have to explicitly go out of your way to store the original events. I’ve now started storing an event log for my own agents, this is used as the source of truth for deriving all subsequent context.
The great thing about this is that I have finer control over drift in long runs, as I can look back through the conversation/tool history and build context suitable for the current state of the agent. It also allows me to run compactions across the entire event history instead of ‘compactions on top of compactions’ which happens on long runs with checkpoints.
It definitely feels like this will be a bigger issue going forward as we have agents running longer and more complex workflows, I’ve started building a product aimed at addressing this issue in a framework agnostic way. [0]
Why not save progress and important results of a conversation (i.e. including tool calls and such) to a project markdown (even multiple as needed) and clear your context window completely rather than compacting many times? You can then just specify a markdown file to be included as context. Especially if following any kind of plan document and executing on a part of it.