Project releases
AgentiCow queries across a branched memory natively
AgentiCow branches a vector memory in about half a millisecond regardless of base size, so parallel agents can work on isolated copies. A late June change added native approximate search across the branch boundary.
GitHub activity: · Published:
What AgentiCow is
Think of it as git for agent memory. You have a base memory of embeddings, and each agent branches it: copy on write, about 162 bytes and half a millisecond per branch, independent of how large the base is.
Each branch sees the parent plus its own edits, with the child winning on an id collision. If an agent poisons its memory, you roll that branch back and the base is untouched.
What changed
Commit 26da54b, covering pull requests #617 and #618, added native approximate nearest neighbour search across the branch boundary through a copy on write dual graph merge. Before that, fast search across parent and child edits meant falling back to exact scanning.
A July commit corrected the published ANN gap to roughly 6.3 times at one million vectors, measured on SIFT-1M at recall@10 near 0.97. Correcting your own benchmark downward in public is worth noting.
Native ANN is available on linux-x64. Elsewhere the library falls back to exact search and reports nativeAnn as false.
Get started
Node 18 or newer:
npm install agenticow
import { open } from 'agenticow';
const base = open('memory.rvf', { dimension: 1536 });
base.ingest([{ id: 1, vector: embedding }]);
const agent = base.branch('agent-a');
agent.ingest([{ id: 9001, vector: newMemory }]);
const hits = agent.query(queryVector, 10);
Expected result: the branch query returns hits drawn from the base plus the branch's own edits, with the branch name on each hit.
No documented MCP server. The supported routes are the npm package and the CLI that ships with it.
Use it today
Practical case: several agents exploring different approaches to the same task without contaminating each other. Input is a shared base memory. Workflow is branch per agent, checkpoint before risky work, roll back the ones that go wrong. Output is one promoted branch and several discarded.
Acceptance test: checkpoint a branch, ingest a deliberately wrong vector, roll back to the checkpoint and confirm the bad id no longer returns.
Push it further
Experimental commentary. The repository documents a thousand branch proof. At that scale, branching becomes a search strategy rather than a convenience: fan out, evaluate, keep the winner.
Limitation: native ANN is platform specific, so a thousand branches on macOS behaves differently from linux-x64. Falsifiable test: check the nativeAnn flag on your platform before you rely on the published latency numbers.
Read the original on GitHub commit
Commit 26da54b — native ANN across branch via COW dual-graph merge (PR #617, #618)