Skip to main content

Knowledge graph & references

Two cross-session knowledge stores that complement the brain: a structured graph of facts, and a durable store of ingested references.

Knowledge graph

A temporal, append-only entity–relationship graph of facts that persist across sessions — "project X uses tool Y", "decided Z last week".

  • Tool: graph_query
  • Store: ~/.vanta/graph.jsonl
  • Entities: person · project · tool · decision · goal · concept · file
  • Relations: worked-on · decided · depends-on · related-to · learned · part-of · uses (each with a strength score)

Recall is substring match plus direct-relation traversal, so it's good for project archaeology and decision tracing ("why did we pick this?"). Facts are written as the agent learns them and surfaced on later turns.

References

One-message context references

In the local composer or an allowlisted gateway conversation, add bounded project context directly to a message:

Review @file:src/server.ts:40-90 with @diff and @git:2
Compare @folder:src/auth with @url:https://example.com/spec

Supported forms are @file:path[:start-end], @folder:path, @diff, @staged, @git:N, and @url:https://.... Vanta expands them before the turn and returns a receipt listing expanded sources and warnings. File and folder references stay inside the active project root, binary and sensitive files are refused, and the aggregate character budget is derived from the routed model's context window. Remote messages keep the profile, root, and budget they had when received, including while queued.

These references are transient context for one message. Use the durable reference store below when material should remain searchable across sessions.

A durable store of ingested reference material so you never re-paste the same source.

ToolDoes
ref_ingestfetch a URL (via web_fetch) or read a file/repo/image/transcript → store an excerpt
ref_searchquery stored refs by title / content / tags
ref_listenumerate everything ingested

Refs live in ~/.vanta/refs/index.json. Source type is auto-detected; ingesting a URL stores a readable excerpt you can search and cite in later sessions — a persistent per-project knowledge base.

Both stores are local and git-adjacent under ~/.vanta. They differ from the brain: the brain is associative/decaying memory; the graph is structured facts; refs are verbatim source excerpts.

Corpus compiler

The corpus compiler is the visible workflow for making a folder of Markdown notes, downloaded .vtt/.srt transcripts, text files, or an approved public URL searchable:

vanta corpus ingest ./interviews
vanta corpus recall "Atlas launch receipt"
vanta corpus status
vanta corpus refresh all

Corpus data lives in ~/.vanta/corpus/index.json. Each source keeps its original path or URL, source date, content hash, ingest/refresh timestamps, freshness window, entity links, chunks, and any embeddings available at ingest time. Recall fuses BM25 keyword ranking, semantic similarity when an embedding backend is available, and entity-link ranking. The printed Signals line lists only signals actually used; each result includes a source/date/freshness receipt.

Local ingest accepts .md, .markdown, .txt, .vtt, and .srt, skips hidden paths and unsupported files, and refuses symbolic-link inputs. URL ingest is checked by Vanta's SSRF and egress policy before it is fetched. status identifies stale material and refresh re-reads the original local path or URL.

Export to an Obsidian-compatible vault is preview-first:

vanta corpus vault-export --vault ~/Documents/Notes
vanta corpus vault-export --vault ~/Documents/Notes --apply

The export writes raw source pages under raw/corpus/, linked source pages under wiki/corpus/, and entity wiki-links without altering the corpus index.