Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pluggable Backend
We want to make sure that people can bring and plug in their own filesystems, for both short term and long term storage.
Right now we do this by using State for short term memory, and Store for long term.
But we should let people choose their own store.
Long Term Memory
We should keep some opinions about long term memory in the core deepagents. Specifically, if long term memory is True, we should use a long term memory subdir (
/memories/
) and route that to the pluggable storage system that is specified by long term memory. There should be something in the prompt about/memories/
, and we should handle the routing between normal store and long term memory store.APIs for pluggable backend
The APIs for the filesystems backing short and long term memory should be pretty similar. Should expose all the same functionality that the tools in existing filesystem do (ls, read, write, edit) with the same API. this is so that each impelmentation can implement it however it wants.
They can return either:
Shared stuff
So if the filesystem is pluggable, what is left? The existing tool definitons for one. And then the tools should do the routing between short and long term memory
Implementations
Implement:
Default
The defaults should be same as now (state, store)