Cadenya
Freemium
Developers building agentic workflows
Most agent memory is a bag of strings that gets stuffed into a context window and thrown away — leaving no record of what the agent believed yesterday, no way to answer why it acted the way it did, and no mechanism to selectively forget a source without rebuilding the whole store. memharness is a bi-temporal, provenance-carrying memory primitive built to close that gap.
The core premise is storing facts, not strings, with two independent time axes: when something became true in the world and when the agent learned it — so querying past agent states is a real query, not archaeology through logs. Everything lives in a single SQLite file, which means the storage layer makes zero LLM or network calls and stays auditable. Recall combines hybrid vector search and full-text search with a source-staleness signal, so older or superseded sources rank down automatically. Where it breaks: the SQLite backend is a hard ceiling for teams expecting distributed writes or high-concurrency production deployments. Teams hitting that ceiling will need to treat memharness as a pattern to port, not a service to scale horizontally.
Bottom line: Reach for memharness when your agent needs months of traceable, correctable, GDPR-deletable memory stored in a single auditable file — skip it when your deployment needs concurrent writes from more than one process.
Find your fit
More options in Agent Frameworks. Compare pricing, platforms, and features side by side.
Freemium
Developers building agentic workflows
Free · Open source
Long-term continuity in multi-session coding projects
Agent memory that forgets its own history is a liability: the agent cannot explain its reasoning, cannot be corrected without a full wipe, and cannot comply with a request to forget everything from a specific source. memharness addresses this by treating every stored item as a fact with two timestamps — a valid-time axis tracking when the fact was true in the world, and a transaction-time axis tracking when the agent learned it. These are stored separately in SQLite, exposed to any agent via the Model Context Protocol (MCP), and queried without touching an LLM or the network.
The differentiating feature is bi-temporality combined with provenance. Every fact carries its source, so deletion is scoped: you can remove everything learned from a specific document or API endpoint without touching other facts. Corrections are traceable — when a fact changes, the old version is not overwritten, it is closed on the transaction axis. That architecture is what makes explainable memory and GDPR-style forgetting possible from the same data model, rather than bolted on as separate systems.
Recall is hybrid: vector similarity search and full-text search run together, with a source-staleness signal that adjusts ranking based on how old or superseded the originating source is. The vendor documents this signal in a dedicated STALENESS-SIGNAL.md, which suggests it is a first-class design concern rather than a tuning afterthought. The tool positions itself as a memory primitive, not an agent framework — it does not plan, route, or act autonomously.
The SQLite-only backend is both the simplicity story and the hard constraint. A single file is trivially portable, auditable, and zero-infrastructure — which makes this a fit for single-process agents, local deployments, and prototypes requiring auditability. It is not a fit for multi-process or distributed deployments where concurrent writes from separate agent instances would corrupt the store. Teams at that scale will either hit SQLite’s write-concurrency ceiling or need to architect a wrapper that serializes writes, at which point memharness is a reference implementation rather than the production layer.
Sign in to rate this tool or suggest an edit.