
Two open-source infra drops for AI apps: Alibaba's in-process vector database, and a Git-like undo button for agent runs
Two very different repos landed that are worth knowing if you build with agents. One is the memory layer (a vector database that runs inside your process, no server), the other is the supervision layer (a runtime that records an agent's run as a reversible trace so nothing touches your files until you accept it). One is battle-tested and popular, the other is a promising research alpha. Here is what each does, the exact install, and the honest catch.
zvec: an in-process vector database, the SQLite of vector search
Stars / Status / License: ~13.3k, actively maintained (v0.4.0, May 2026), Apache 2.0.
Repo: https://github.com/alibaba/zvec
zvec is a vector database that embeds directly into your app, no separate server to run, config, or babysit. Alibaba built it and runs it internally, and the pitch is the same one SQLite makes for relational data: for a lot of workloads you do not need a database server, you need a fast library that lives in your process. It does dense and sparse vectors, hybrid search (similarity plus structured filters in one query), and it uses write-ahead logging so your data survives a crash.
Install and a full working example, straight from the README:
pip install zvec
import zvec
schema = zvec.CollectionSchema(
name="example",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
collection.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),
])
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
topk=10,
)
print(results)
There is a Node.js package too (npm install u/zvec/zvec) and a Dart/Flutter SDK. Supported platforms are Linux (x86_64 and ARM64), macOS (ARM64), and Windows (x86_64). Two heads-ups from actually running this: create_and_open wants a path that does not already exist (point it at a fresh directory, not a pre-made temp dir), and newer zvec versions deprecate VectorQuery in favor of Query, though VectorQuery still works for now.
The catch: in-process is the strength and the limit. Multiple processes can read a collection at once, but writes are single-process exclusive, so there is one writer at a time and no built-in clustering. This is the right tool for embedding search into an app, a notebook, a CLI, or an edge device, and the wrong tool if you need a horizontally scaled, many-writer database service, where a server like Milvus or Qdrant still fits better. Also note the headline "billions of vectors in milliseconds" is Alibaba's own benchmark, so measure it on your data and your hardware before you quote it. macOS is ARM64 only on the current build, so no Intel Macs.
→ The verified in-process vector search setup, actually run in CI
Shepherd: a reversible, Git-like trace for agent runs
Stars / Status / License: ~742, early alpha, MIT.
Repo: https://github.com/shepherd-agents/shepherd
Shepherd is a runtime substrate for agent work that needs inspection, reversibility, and supervision. The core idea: an agent's task comes back as a reviewable proposal, not a live edit. Nothing touches your files until you accept it. The run is recorded as a durable, inspectable trace you can observe, replay, and revert, and the agent's output is held to one side as a retained output you can run and inspect before you keep or discard it.
The part I found most clever is that permissions live in the function signature. A task is a plain Python function whose signature declares a read-only or read-write grant per repository, and on a supported OS that grant is enforced at the native syscall jail (macOS Seatbelt, Linux Landlock). A write to a read-only repo is refused by the operating system itself, before any undo point, not merely caught at a merge gate.
Install and the keyless offline quickstart, from the README:
pip install shepherd-ai
shepherd init # make this directory a Shepherd workspace
shepherd demo write quickstart > quickstart_demo.py
python quickstart_demo.py # run a task; its result is retained, not applied
shepherd run changeset --latest # see what it wrote, held to one side
shepherd run select <run-ref> # keep it (or: shepherd run discard <run-ref>)
There is a live agent lane too, where the body of a task is a Claude agent (it needs the claude CLI signed in or an ANTHROPIC_API_KEY), but the offline lane above runs anywhere with no key.
The catch: this is early alpha and the maintainers say so, with APIs that may change between releases, and at ~742 stars it is a young research project (there is a paper, arXiv 2605.10913, with authors including Christopher Manning). Treat it as a promising experiment to learn from, not a dependency to ship on yet. The strong sandbox guarantee is also platform-dependent: enforcement is exercised on macOS Seatbelt, while Linux Landlock is container-gated, so the syscall-level protection is not uniform across machines. And the "~5x faster than docker commit, ~95% KV-cache reuse" figures are the authors' own benchmarks, so read them as claims to reproduce, not settled facts.
→ The verified least-privilege grants setup
Who each is for
If you are building retrieval or memory into an app and do not want to run a vector server, reach for zvec today: it is mature enough, popular, and Apache-licensed. If you are building or operating agents and want a real undo button plus OS-level permission enforcement, Shepherd is worth studying now and piloting in a sandbox, but keep it out of production until it leaves alpha. Together they sketch a nice pattern: zvec as the memory an agent reads from, Shepherd as the safe hands it acts with.
We keep a running, machine-verified collection of workflows built on tools like these in the open: https://github.com/Neeeophytee/awesome-ai-workflows