4.0 KiB
4.0 KiB
name, description, version, author, license, platforms, metadata
| name | description | version | author | license | platforms | metadata | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| cognee-brain | Use when user says brain or cognee. Cognee memory brain (Kuzu+LanceDB). | 1.0.0 | Hermes Agent | MIT |
|
|
Cognee Brain — homelab memory layer
The homelab memory layer ("the brain") is Cognee on BRAIN-MAIN at 10.0.0.23.
It replaced the previous memory layer on 2026-08-29. Cognee ingests text, builds a
knowledge graph (entities + relationships) and a vector index side-by-side, and
exposes them through Python, CLI, MCP, and REST.
When to Use
- User says "brain", "cognee", "what do we know about X", "remember this"
- Before research/infra tasks — query the brain first
- After research with concrete conclusions — write durable facts back
Endpoints
- API:
http://10.0.0.23:8080(cognee-backend, cognee/cognee:main) - MCP:
http://10.0.0.23:8001/mcp(cognee-mcp, cognee/cognee-mcp:main) - Dataset:
homelab-stack(the single shared dataset — use it everywhere) - LLM: Ollama cloud-passthrough
http://10.0.0.23:11434/v1(minimax-m3:cloud) - Embed: mini
http://10.0.0.30:11434/api/embed(qwen3-embedding:0.6b, 1024 dims) - Graph: Kuzu (Ladybug) files under
/var/lib/cognee/system/databases - Vectors: LanceDB files under
/var/lib/cognee/system/databases/cognee.lancedb
MCP tools (auto-discovered in Hermes as mcp__cognee__*)
remember— store data. Withoutsession_id= permanent memory (add + cognify pipeline, builds the graph). Withsession_id= session cache only (fast, no extraction). Passdata(text) ORfilename+content_base64(file upload).dataset_namedefaults to the client's agent-scoped dataset — ALWAYS passdataset_name="homelab-stack"explicitly.recall— search memory.query(required), optionalsearch_type(HYBRID_COMPLETION default; CHUNKS/GRAPH_COMPLETION/RAG_COMPLETION/etc.),datasets(comma-separated),top_k.forget— delete.dataset(name),dataset_id,data_id+dataset, oreverything.
REST API (for curl / scripts)
POST /api/v1/remember(multipart:data=@file+datasetName=homelab-stack)POST /api/v1/search(JSON:query,datasets,searchType)DELETE /api/v1/datasets?dataset_name=...GET /health→{"status":"ready","health":"healthy","version":"1.5.3-local"}
Field-name gotcha: the search API uses query + searchType (NOT
query_text/query_type). Wrong names silently fall back to the default query
"What is in the document?" and return a generic summary.
Write rules
- One dataset:
homelab-stack. Never create a second dataset for the same domain — the whole point is a single combined view. rememberis add+cognify in one call — no separate cognify step.- No group_id, no triplet, no temporal supersession. Cognee uses datasets. To correct a fact,
rememberthe corrected statement; Cognee's graph merges entities by name. - Don't re-ingest the same content twice —
rememberis not idempotent. - Embed dim is 1024 (
EMBEDDING_DIMENSIONS=1024, qwen3-embedding:0.6b). Never let it default to 3072.
Verify a write
recallwith a distinctive phrase from the content; a correct answer proves the graph has it.- Check
docker logs cognee-backendforapi.openai.com/ProviderConfigMismatch— zero hits means the LAN-only provider pairing held.
Pitfalls
rememberreturnsstatus: completedsynchronously (unlessbackground=true). A completed status means the graph is built — no async polling needed.- Search field names are
query/searchType(see above). - No auth on API/MCP (
REQUIRE_AUTHENTICATION=false) — LAN-trust only. - Container runs as uid 1000 —
/var/lib/cognee/{system,data}must stay 1000:1000. - MCP allowed_hosts = 10.0.0.23/42/28/15 (edit
MCP_ALLOWED_HOSTSin compose to add hosts). - Start/stop:
sudo systemctl start|stop cognee.service(docker compose up/down).