Cortexdb Memory Hermes
liliang-cn/cortexdb
Give a Python agent (such as Hermes Agent by Nous Research) durable, local-first memory plus a queryable SPARQL knowledge graph, backed by CortexDB through its gRPC sidecar and the cortexdb-client…
Explains how to query cognee agent memory with recall(): how the search type is chosen, how to narrow a query to datasets, and what the returned results contain.
$ npx skills add topoteretes/cognee --skill cognee-recall -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install topoteretes/cognee cognee-recall --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/topoteretes/cognee.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/cognee-recall .claude/skills/cognee-recall && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cognee-recall" agent skill from https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recall into .claude/skills/cognee-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cognee-recall", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recallType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add topoteretes/cognee --skill cognee-recall -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install topoteretes/cognee cognee-recall --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/topoteretes/cognee.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/cognee-recall .agents/skills/cognee-recall && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cognee-recall" agent skill from https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recall into .agents/skills/cognee-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cognee-recall", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add topoteretes/cognee --skill cognee-recall -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install topoteretes/cognee cognee-recall --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/topoteretes/cognee.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/cognee-recall .cursor/skills/cognee-recall && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cognee-recall" agent skill from https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recall into .cursor/skills/cognee-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cognee-recall", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/topoteretes/cognee.git --path .agents/skills/cognee-recall--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add topoteretes/cognee --skill cognee-recall -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install topoteretes/cognee cognee-recall --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/topoteretes/cognee.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/cognee-recall .gemini/skills/cognee-recall && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cognee-recall" agent skill from https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recall into .gemini/skills/cognee-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cognee-recall", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install topoteretes/cognee cognee-recallInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add topoteretes/cognee --skill cognee-recall -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/topoteretes/cognee.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/cognee-recall .github/skills/cognee-recall && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cognee-recall" agent skill from https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recall into .github/skills/cognee-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cognee-recall", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add topoteretes/cognee --skill cognee-recall -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install topoteretes/cognee cognee-recall --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/topoteretes/cognee.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/cognee-recall .opencode/skills/cognee-recall && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cognee-recall" agent skill from https://github.com/topoteretes/cognee/tree/main/.agents/skills/cognee-recall into .opencode/skills/cognee-recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cognee-recall", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cognee-recallExplains how to query cognee agent memory with recall(): how the search type is chosen, how to narrow a query to datasets, and what the returned results contain.
The skill documents cognee's recall() call, which searches the memory graph and, when a session is supplied, the session cache, then returns a list of tagged results. With no datasets argument it searches every dataset the user may read. Passing dataset names, or UUIDs that take priority, narrows the search and makes it faster.
It spells out how the search type is selected. An explicit query_type always wins, a missing LLM key falls back to plain vector search over chunks, and otherwise a router with two regex rules picks between exact-phrase lexical search and coding rules, defaulting to hybrid completion. A table lists each search type, whether it calls an LLM and what it suits, from graph completion and temporal questions to summaries and skill lookup. The description also covers node sets, sessions, getting context or citations instead of an answer, and debugging empty results.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0ec7a9f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cognee Memory Recall loads about 2.6k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 1,176 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from topoteretes/cognee at commit 0ec7a9f, republished under its Apache-2.0 licence (© topoteretes). 1,176 words, ~2,646 tokens.
.claude/skills/cognee-recall/SKILL.md (or your agent's skills folder).recall() is cognee's query API. It picks a search strategy, searches the
graph and (with a session) the session cache, and returns a list of tagged
results.
import cognee
results = await cognee.recall("Where was Einstein born?")
for r in results:
print(r.source, r.text) # e.g. "graph", "Einstein was born in Ulm."Without datasets it searches every dataset the user can read. Pass
datasets=["research"] (names) or dataset_ids=[...] (UUIDs, which win) to
narrow it; that is also faster.
query_type=SearchType.X always wins.CHUNKS (plain vector search).auto_route=True, the default). It is two regex
rules, first match wins, no LLM call:"quoted phrase" → CHUNKS_LEXICALCODING_RULESHYBRID_COMPLETION.A routed type (never a pinned one) that the backend rejects, or a routed
CHUNKS_LEXICAL / CODING_RULES that returns nothing, is retried once as
HYBRID_COMPLETION. The router never picks CYPHER.
from cognee import SearchType
await cognee.recall("What changed in v2?", query_type=SearchType.GRAPH_COMPLETION)The full list is cognee/modules/search/types/SearchType.py; the
type-to-retriever table is cognee/modules/retrieval/README.md.
| Type | LLM? | Use for |
|---|---|---|
HYBRID_COMPLETION (default) | yes | General questions: document passages plus entity neighbourhoods, then an answer |
GRAPH_COMPLETION | yes | Answers from graph relationships |
GRAPH_COMPLETION_COT, _CONTEXT_EXTENSION, _DECOMPOSITION | yes | Harder multi-hop questions (more LLM calls) |
GRAPH_SUMMARY_COMPLETION | yes | Summarizes the retrieved graph edges at query time (extra LLM call), then answers |
RAG_COMPLETION | yes | Classic chunk RAG |
TRIPLET_COMPLETION | yes | Subject-predicate-object facts (needs triplet embedding) |
TEMPORAL | yes | Time questions; reads the Timestamp nodes the default pipeline extracts |
CHUNKS | no | Raw passages by vector similarity |
CHUNKS_LEXICAL | no | Keyword / exact-phrase match |
SUMMARIES | no | Document summaries |
CODE | no | Code-graph operations via code_query={...}; needs scope="code" in recall |
SKILLS | no | Discover skill playbooks; exactly one dataset |
CYPHER | no | Raw Cypher. On by default; ALLOW_CYPHER_QUERY=false disables it. It can write, so only pass user-authored queries deliberately |
NATURAL_LANGUAGE | yes | LLM writes Cypher, then runs it (same flag) |
GRAPH_REPORT | partly | Graph insight report: hubs, cross-set links, suggested questions |
FEELING_LUCKY | yes | An LLM picks the type |
AGENTIC_COMPLETION | yes | Multi-step loop with skills/tools; exactly one dataset. Use search() for its parameters |
scope is one of, or a list of: graph, session, session_first,
trace, session_context, all, tools, code. all means graph +
session + trace + session_context; tools and code are never included
implicitly.
When scope is omitted:
| You pass | Sources |
|---|---|
session_id only | Session first; a session hit skips the graph |
session_id + datasets | Session and graph both contribute |
session_id + query_type | Graph only — pinning a type drops the session |
no session_id | Graph only |
Session and trace search is keyword overlap, not embeddings.
top_k=15: per dataset, not in total. The default HYBRID caps each lane
at min(top_k, 10); set chunks_top_k / entities_top_k /
facts_top_k in retriever_specific_config to go higher.node_name=["AI"] (+ node_name_filter_operator="OR"|"AND"): restricts
graph/chunk/completion types to data remembered with that node_set.
SUMMARIES, CHUNKS_LEXICAL, GRAPH_REPORT, CYPHER, NATURAL_LANGUAGE, CODE and
SKILLS ignore it; CODING_RULES treats it as the rules node-set name.system_prompt / system_prompt_path: change the answering prompt.response_model=MyPydanticModel: structured answer, on r.structured.include_references=True: attach the document chunks that support each
graph edge used (needs EDGE_EVIDENCE_ENABLED=true, the default).only_context=True: return what the LLM would have received instead of
an answer. r.text is the rendered user prompt, r.system_prompt the
system prompt. Pin query_type when you use it.retriever_specific_config={...}: retriever-only options. For the
agentic extras (skills, tools, max_iter) and node_type, call
cognee.search() instead, which takes them as parameters.Each item is a Pydantic model with a source discriminator: graph,
session, trace, session_context, code, tools, skills, or
system. Graph items carry text (always renderable), search_type,
kind, score, dataset_id / dataset_name, metadata, raw, and
structured. A system item is a status
marker, not data (see "memory warming up" below).
When a query sounds procedural ("how do I…", "runbook", "steps to…") and
exactly one dataset is targeted, recall also runs a small SKILLS lookup
and appends hits with source="skills". Disable with
SKILL_GATE_ENABLED=false.
datasets, recall
searches only datasets the user can read, so a user without grants gets
one source="system" memory_warming_up marker from a graph-only recall
(with only_context=True or RECALL_WARMUP_SHORTCIRCUIT=false it gets
[]; with session sources included only the graph lane is empty, and
session and trace hits still come back). Asking for a dataset id the user cannot read raises
PermissionDeniedError (HTTP 403). Dataset names resolve only among
the user's own datasets, so a name that is not theirs (even one shared
with them) raises DatasetNotFoundError; use dataset_ids for shared
datasets. See the cognee-permissions skill.only_context) returns one source="system" item
with status="memory_warming_up" (or "build_failed" plus
error_message) instead of results; a multi-source recall just returns
no graph results. Wait for the
remember to finish, or check why it failed.neighborhood_depth or feedback_influence > 0 (including a nonzero
DEFAULT_FEEDBACK_INFLUENCE), or the chunk collection is missing.
node_name stays on hybrid, which filters to that node set. search()
also defers for a custom node_type or node_name with node_type=None;
recall() has no node_type. wide_search_top_k and triplet_distance_penalty
with hybrid raise InvalidHybridSearchConfig; pin
GRAPH_COMPLETION to use them.SKILLS and AGENTIC_COMPLETION need exactly one dataset. For
SKILLS, search() raises unless exactly one dataset is given.
recall() runs SKILLS per dataset with access control on (zero datasets
gives [], not an error) and raises only with access control off and not
exactly one dataset. For
AGENTIC_COMPLETION only search() checks it up front, so call it through
search() with one dataset.code_query without scope="code" raises, and scope="tools" also
needs TOOL_CALLS_ENABLED=true.max_iter, default 6) make more. NATURAL_LANGUAGE makes one (no answer call) and retries only on
an empty or failed query, up to 3 attempts. With CACHING and
AUTO_FEEDBACK on (defaults), each answered turn adds one analysis call,
even without a session_id. Set
AUTO_FEEDBACK=false for low-latency reads (see the cognee-performance
skill).Use recall(). Drop to cognee.search() only for agentic parameters
(skills, tools, max_iter, node_type) as first-class arguments, raw
SearchResult objects, or a pinned type with no router. search() never
searches the session cache; its session_id only adds conversation history
to the prompt. Full guide: docs/recall-vs-search.md.
recall() resolves scope and search type, then calls the same authorized
search search() uses: datasets resolve through the permission layer with
read, one search per dataset runs concurrently, and results are
normalized and tagged.
cognee/api/v1/recall/recall.pycognee/api/v1/recall/query_router.pycognee/api/v1/recall/skill_gate.pycognee/modules/recall/types/RecallResponse.py,
SearchResultItem.pycognee/memory/entries.py:normalize_scopeRECALL_WARMUP_*): cognee/modules/recall/config.pycognee/modules/search/methods/search.pycognee/modules/search/methods/hybrid_deferral.pycognee/modules/search/methods/get_search_type_retriever_instance.pyExamples in examples/guides/: recall_core.py,
hybrid_retrieval_recall.py, references_example.py, temporal_recall.py,
sessions.py.
Adding a search type, per cognee/modules/retrieval/README.md:
cognee/modules/retrieval/ (subclass
BaseRetriever or a completion base).SearchType member and its search_core_registry entry.cognee/tests/unit/modules/retrieval/retriever_readme_index_test.py)
fails if the table and registry disagree.SEARCH_TYPE_CHOICES in cognee/cli/config.py for
the CLI, or a regex rule to query_router.py for auto-routing. Never
route a type that can write.© topoteretes, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/cognee-recall of topoteretes/cognee.
Open the folder on GitHubat commit 0ec7a9f
Cognee Memory Recall next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cognee Memory Recall this skilltopoteretes/cognee | 32k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Cortexdb Memory Hermesliliang-cn/cortexdb | 274 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Neo4j Graphrag Skillneo4j-contrib/neo4j-skills | 114 | — | ~4.2k | Automated safety check: Notes | MIT | |
| Cortexdb Memory Openclawliliang-cn/cortexdb | 274 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Hermes Memory Providersmnemosyne-oss/mnemosyne | 3.4k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Compact Memory Implementationsimbajigege/book2skills | 183 | — | ~2.5k | Automated safety check: Pass | MIT |
liliang-cn/cortexdb
Give a Python agent (such as Hermes Agent by Nous Research) durable, local-first memory plus a queryable SPARQL knowledge graph, backed by CortexDB through its gRPC sidecar and the cortexdb-client…
neo4j-contrib/neo4j-skills
Build GraphRAG retrieval pipelines on Neo4j using the neo4j-graphrag Python package (v1.22.0+).
liliang-cn/cortexdb
Give a Node.js agent (such as OpenClaw) durable, local-first memory plus a queryable SPARQL knowledge graph, backed by CortexDB through its gRPC sidecar and the cortexdb-client npm package.
mnemosyne-oss/mnemosyne
Install and configure Mnemosyne as a Hermes Agent memory provider — local SQLite with vector search, episodic consolidation, and temporal knowledge graphs.
simbajigege/book2skills
A developer guide to adding compact memory to an agent: when to trigger compaction, how to fork a compactor sub-agent, what the summary holds, and how to restore it.
langchain-ai/langchain-skills
Explains how to build agents with the Deep Agents framework: create_deep_agent, the built-in middleware, the harness, SKILL.md format and configuration options.
topoteretes/cognee
Drives cognee from the terminal with remember, recall, forget and improve memory commands, dataset and config management and database migrations.
topoteretes/cognee
Guide to using and contributing cognee community packages: database adapters, data-source connectors, custom tasks and retrievers, and Keywords AI observability.
topoteretes/cognee
Defines the shape of cognee's knowledge graph with graph_model: DataPoint node classes, identity and index fields, typed edges and fixes for duplicated nodes.
topoteretes/cognee
Shows how to write custom cognee tasks, chain them into pipelines, store custom DataPoints and run enrichment over the existing graph.
topoteretes/cognee
Runs the Cognee AI memory platform in Docker, from a one-file prebuilt image to a full compose stack with UI, MCP server, Postgres and Neo4j.
topoteretes/cognee
Removes data from cognee memory with forget(), finding the right dataset and document first and choosing between one document, a dataset or only the graph and vector memory.
Works with
Categories
Explains how to query cognee agent memory with recall(): how the search type is chosen, how to narrow a query to datasets, and what the returned results contain. The skill documents cognee's recall() call, which searches the memory graph and, when a session is supplied, the session cache, then returns a list of tagged results. With no datasets argument it searches every dataset the user may read.
Cognee Memory Recall fits situations like: choosing between graph, chunk and hybrid search when querying cognee memory; limiting a recall query to one dataset or to a single session; finding out why a cognee query returns nothing or something unexpected.
Run `npx skills add topoteretes/cognee --skill cognee-recall -a claude-code`. Or copy the skill folder (.agents/skills/cognee-recall in topoteretes/cognee) into .claude/skills/cognee-recall in your project. Claude Code loads it when a task matches its description.
Run `npx skills add topoteretes/cognee --skill cognee-recall -a codex`. Or copy the skill folder (.agents/skills/cognee-recall in topoteretes/cognee) into .agents/skills/cognee-recall in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add topoteretes/cognee --skill cognee-recall -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cognee-recall, .gemini/skills/cognee-recall, .github/skills/cognee-recall and .opencode/skills/cognee-recall in your project.
SKILL.md names no scripts, command-line tools or credentials: Cognee Memory Recall is instructions for the agent only. Our summary lists: Python with the cognee package; An LLM API key for the search types that call a model.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cognee Memory Recall is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cognee Memory Recall: Cortexdb Memory Hermes (liliang-cn/cortexdb, 274 stars), Neo4j Graphrag Skill (neo4j-contrib/neo4j-skills, 114 stars), Cortexdb Memory Openclaw (liliang-cn/cortexdb, 274 stars) and Hermes Memory Providers (mnemosyne-oss/mnemosyne, 3.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
topoteretes (a GitHub organization) maintains it in topoteretes/cognee, which has 31,919 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 9, 2026.
Source: topoteretes/cognee on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.