Skip to content
self-hostingopen-sourceagents

Your Forest Is a Vault

The series closer: a self-hosted forest, scoped keys, one row per person, and a locked gate. Twenty days of measured claims and published failures, recapped in three sentences.

MonkeyLLM Team3 min read

Twenty days ago this series opened with an argument about capability: a small model navigating a well-built environment beats a bigger pipeline guessing. It closes with an argument about custody. The forest your agents grow is an asset, and it should sit in your vault, not someone else's.

Data never leaves your infra

MonkeyLLM is self-hosted by construction, not as a pricing tier. Engine, apps, storage and models run on your machines, and deploy takes four commands (quickstart). Everything the forest accumulates (nodes planted by your agents, shortcut links minted by successful hunts, the answer store's running score) stays where you put it. Your forest is a vault, and a vault you do not control is just a deposit box in someone else's bank.

The sovereignty is contractual as well as architectural. The engine is Apache-2.0 and the apps are AGPL (what the split means for you), so every part that touches your data can be read, audited and forked.

The benchmark rig makes the claim concrete: every published number was measured on a single RTX 3060 with 12 GB. A quantized 12B fits it whole, 8 GB cards work with tighter quantization or CPU offload via llama.cpp, and with no local GPU at all you can point the chat binding at any OpenAI-compatible endpoint. Owning your infrastructure does not require owning a datacenter.

One row per person

A vault needs a ledger of who holds keys. The People screen keeps access control deliberately flat: one row per person, each row showing its scoped keys and live tokens. A key is not an identity, it is a capability, scoped to what that person, or that agent, may do in this forest, and revocable on its own. Agents get keys the same way people do, which means an agent's blast radius is something you set, not something you discover.

The forest overview makes the scope legible before the first hop: what is in this forest, and what your key may do in it.

The forest overview: what is in this forest and what your key may do
The forest overview: what is in this forest and what your key may do

The door has a lock

There is no anonymous path into a forest. Studio, the API and the MCP tools all sit behind the sign-in gate, and the gate is yours: it authenticates against your deployment, not against a cloud account of ours.

The sign-in gate in front of a self-hosted forest
The sign-in gate in front of a self-hosted forest

Twenty days in three sentences

We showed that top-k retrieval is a single hop by construction, and that the same 12B local model went from 0/11 to 11/11 on strictly multi-hop questions when it navigated a forest instead. We measured the economics against an iterative-RAG baseline, 0.58x tokens per correct answer at 8.4 s p95 versus 17.5 s, because failing cheaply is not economy. And we kept a failed criterion in the report, because a benchmark you can only pass is not a benchmark.

Grow your own

The series is over; the forest is not. Deploy one in four commands with the deploy guide, star MonkeyLLM on GitHub if the argument earned it, and read the preprint at monkeyllm.com. Everything your agents learn from here on is yours.

Want the long version?

The paper carries the full architecture, the benchmark tables and the findings that failed their criteria.