It’s useful but it has limitations, it seems to only work well in environments that are perfectly predictable otherwise it gets in the way of the agent.
I think I prefer RL over these approaches but it requires a bit more data.
It’s a good idea
Thanks for the nice words!
Wrote more on that here: https://blog.butter.dev/the-messy-world-of-deterministic-age...
I’d love your thoughts on my addition, autolearn.dev — voyager behind MCP.
The proxy format is exactly what I needed!
Thanks
Is this used only in cases where you assume the answer from your first call is correct?
Right now, we assume first call is correct, and will eagerly take the first match we find while traversing the tree.
One of the worst things that could currently happen is we cache a bad run, and now instead of occasional failures you’re given 100% failures.
A few approaches we’ve considered - maintain a staging tree, and only promote to live if multiple sibling nodes (messages) look similar enough. Decision to promote could be via tempting, regex, fuzzy, semantic, or LLM-judged - add some feedback APIs for a client to score end-to-end runs so that path could develop some reputation
what are some use cases where you need deterministic caching?
In those cases perhaps an open source (maybe even local) version would make more sense. For our hosted version we’d need to charge something, given storage requirements to run such a service, but especially for local models that feels wrong. I’ve been considering open source for this reason.
You’d only pay Butter for calls that don’t go to the provider. That’d be a separate billing account with butter.