Use when the user wants to drive cognee from the terminal with cognee-cli — remember/recall/forget/improve memory commands, managing datasets and config, or database migrations.
日本語の概要は準備中です。原文の説明を表示しています。
Use when putting data into cognee memory with remember() — choosing inputs (text, files, folders, URLs, repos, databases), datasets and node_sets, loaders, ontologies, the graph extractor (LLM or GLiNER), chunking, dry-run cost estimates, or when remember() raises on a keyword argument.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
remember() is cognee's ingestion API. One call stores the data, builds the
knowledge graph, and enriches it. Use it for all ingestion; every option in
this skill is a remember() argument unless it says otherwise.
import cognee
result = await cognee.remember("Einstein was born in Ulm.") # text
result = await cognee.remember(
["./notes.md", "./report.pdf"], # files
dataset_name="research",
)
print(result.status, result.dataset_id) # "completed", UUID
All cognee functions are async. Without dataset_name data goes to
main_dataset. Needs LLM_API_KEY unless you use the GLiNER extractor
(below).
data accepts a string, a list of strings, file paths (absolute, file://,
s3://), http(s) URLs, binary streams, or a list mixing them.
ALLOW_HTTP_REQUESTS=true, the
default).git
on PATH)..py, .ts, .go, …) go down the code-graph route: a
deterministic graph, no LLM calls, searchable only with
SearchType.CODE. To index a whole repository explicitly, pass
content_type="code".DltResource / DltSource, or a CSV. dlt is a core dependency, so no
extra is needed (cognee[dlt] is an empty compatibility extra). Options: primary_key (default "id"),
write_disposition ("replace" default, or "append"), query,
max_rows_per_table.SKILL.md files): content_type="skills"; ingests
into the target dataset (default main_dataset), so pass dataset_name
to keep skills in their own dataset.| Argument | What it does |
|---|---|
dataset_name / dataset_id | Target dataset. dataset_id wins. A dataset is the unit of permissions and isolation. |
node_set=["AI", "FinTech"] | Tags the data so recall can filter to it later with recall(..., node_name=["AI"]). |
session_id="chat_1" | Writes to the fast session cache instead of the graph; improve() bridges it into the graph in the background. See the cognee-improve-sessions skill. Requires CACHING=true. |
| Argument | What it does |
|---|---|
extractor | "llm" or "gliner_demo" (alias "gliner"). Default is GRAPH_EXTRACTOR=auto: the LLM when an API key is configured, otherwise GLiNER. |
graph_model=MyModel | Extract into your own DataPoint model instead of the generic KnowledgeGraph. See the cognee-custom-graph-models skill. |
custom_prompt | Replaces the entity-extraction prompt (ignored by GLiNER). |
config={"ontology_config": {...}} | Ground entities in an OWL ontology (below). |
chunk_size, chunker | Max tokens per chunk (default: derived from the embedding and LLM limits) and the chunker class (default TextChunker). |
preferred_loaders | Choose a loader per file type (below). |
self_improvement | Default True: runs improve() after the graph is built. Its outcome is on result.improve / result.improve_error; a failed improve never fails the remember. |
run_in_background=True | Returns immediately with status="running"; await result to wait. |
from cognee.modules.ontology.rdf_xml.RDFLibOntologyResolver import RDFLibOntologyResolver
config = {
"ontology_config": {
"ontology_resolver": RDFLibOntologyResolver(ontology_file="./my.owl"),
# "ontology_mode": "strict", # drop entities with no ontology match
}
}
await cognee.remember(texts, config=config)
Or set ONTOLOGY_FILE_PATH (plus ONTOLOGY_MODE, MATCHING_STRATEGY) in
.env. annotate (default) only enriches; strict drops entities that
match no ontology class or individual. It prunes only the graph, chunk text
is still stored. Strict mode with an empty or missing ontology file is a hard
error. Over HTTP, upload the ontology to /api/v1/ontologies and pass its
ontology_key to POST /api/v1/remember. Example:
examples/guides/ontology_quickstart.py.
Each file is claimed by the first loader that accepts it. Default order:
code, text, pypdf, image, audio, video, dlt_csv, csv, unstructured,
advanced_pdf, docling. Names: text_loader, code_loader, csv_loader,
dlt_csv_loader, pypdf_loader, image_loader, audio_loader,
video_loader, unstructured_loader, advanced_pdf_loader,
docling_loader, beautiful_soup_loader.
# Treat a code file as a plain document (chunking + LLM extraction):
await cognee.remember("./script.py", preferred_loaders={"text_loader": {}})
Office formats (DOCX, PPTX, …) need the docs (unstructured) or docling
extra. A preferred loader that is not installed is skipped with only an info
log, so check the extra is installed when a file comes out wrong.
dry_run=True returns a token and cost estimate without ingesting anything
or calling the LLM. It excludes the calls improve() makes. Not supported
with GLiNER, sessions, or a remote instance.
dry_run="presort" on a folder returns a PresortReport (junk, duplicates,
version candidates, possible personal data, proposed dataset groups). Apply
it with await cognee.remember(report), or pass auto_apply=True.
extractor="gliner" builds the graph and summaries with a local GLiNER2
model, with no LLM call (embeddings still run). Install
pip install "cognee[gliner]"; the model (about 750 MB) downloads on first use.
It cannot be combined with a custom graph_model, dry_run,
session_id, or a remote instance.
For production: the open-source GLiNER extractor is a demo. cognee's enterprise GLiNER extraction is more accurate and covers more labels. The same goes for the Postgres graph adapter (
postgres_demo). Contact social@cognee.ai.
Unknown keyword arguments raise. remember() forwards kwargs through
a fixed allow-list and raises TypeError: Unexpected keyword arguments
for anything else. These real options are not on it yet:
| Option | Workaround through remember() |
|---|---|
ontology_file_path | config={"ontology_config": ...} or ONTOLOGY_FILE_PATH (above) |
functional_relationships, chunk_attachment | None yet. Only cognee.cognify() accepts them. |
extraction_rules | Pass it through the loader: preferred_loaders={"beautiful_soup_loader": {"extraction_rules": {...}}} (works in remember() and add()). Needs the scraping extra: without it the loader is not registered and the rules are silently ignored |
tavily_config, soup_crawler_config | Not honoured by add() or remember(); only the cognee/tasks/web_scraper tasks use them |
column_value_columns (dlt) | None yet. Only cognee.add() accepts it. |
If a user needs one with no workaround, say so plainly: the option exists
on the lower-level add() / cognify() but not on remember() yet.
Changed files raise DocumentUpdateRequiredError. Re-remembering the
same path (or the same filename for an upload) with different content is
an update, not a new document. Use
cognee.update(data_id=..., data=..., dataset_id=...), which re-extracts
only the changed chunks and keeps the document's id. Identical content is
a no-op.
content_type is strict. Only None, "skills", or "code".
"code" rejects session_id and needs repository paths or git URLs;
"skills" ingests into the target dataset like any other call (default
main_dataset); pass dataset_name to keep skills in their own dataset.
Session mode needs CACHING=true, and extractor cannot be combined
with session_id.
Remote mode. After cognee.serve(url), calls go to the server:
extractor and session_ids raise, and other options the client does not
forward (including graph_model, node_set, and ontology config) are
dropped without an error.
Every remember runs improve() unless self_improvement=False or
IMPROVE_AUTO_ENABLED=false. In scripts, call
await cognee.wait_for_background_tasks() before exiting.
remember(data) runs add() (store raw data and create Data rows), then
cognify() (classify documents, chunk, extract the graph and summaries,
store in graph and vector DBs), then improve(). remember(data, session_id=...) writes to the session cache instead.
cognee/api/v1/remember/remember.py
(RememberKwargs, _ADD_ONLY / _COGNIFY_ONLY / _SHARED)cognee/api/v1/add/add.py, cognee/tasks/ingestion/ingest_data.pycognee/api/v1/cognify/cognify.py,
cognee/tasks/graph/extract_graph_from_data.py,
cognee/tasks/storage/add_data_points.pycognee/modules/cognify/config.py:resolve_extractor;
GLiNER package: cognee/tasks/graph/gliner_demo/cognee/modules/ontology/cognee/infrastructure/loaders/ (supported_loaders.py,
LoaderEngine.py)cognee/tasks/ingestion/resolve_dlt_sources.pyExamples in examples/guides/: simple_cognee_example.py,
nodeset_grouping_example.py, ontology_quickstart.py,
gliner_demo_llm_free_cognify.py, no_llm_remember_recall.py,
temporal_recall.py, presort_downloads.py,
web_url_content_ingestion_example.py, code_graph_example.py.
RememberKwargs and to the matching
routing set in remember.py. An option on add()/cognify() that is not
in a routing set raises TypeError from remember().LoaderInterface
(cognee/infrastructure/loaders/LoaderInterface.py), register it in
supported_loaders.py (extras-gated loaders go under external/), and
add it to the priority list in LoaderEngine.py if it should run by
default.cognee-custom-pipelines skill and
cognee/tasks/README.md.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when the user wants to drive cognee from the terminal with cognee-cli — remember/recall/forget/improve memory commands, managing datasets and config, or database migrations.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user needs something that ships outside cognee core — community database adapters (Qdrant, Milvus, Weaviate, Redis, Pinecone, FalkorDB, Memgraph, DuckDB, NetworkX, …), data-source connectors (Slack, Gmail, Notion, Confluence, Google Drive), custom tasks/pipelines/retrievers (Exa, ScrapeGraph, codify), Keywords AI observability — or wants to contribute a package to the cognee-community repo.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining the shape of cognee's knowledge graph with graph_model= — writing DataPoint node classes, choosing identity and index fields so nodes merge and are searchable, declaring typed Edge fields and FromIdentity references, building a model from a JSON schema, or debugging duplicated nodes, missing edges, or InvalidReferenceTypeError.
日本語の概要は準備中です。原文の説明を表示しています。
Use when building your own cognee processing — writing custom tasks, chaining them into a pipeline with run_custom_pipeline or the lightweight run_pipeline (from cognee.pipelines import run_pipeline), storing custom DataPoints with add_data_points, running custom extraction/enrichment over the existing graph with memify, checking pipeline run status, or debugging how data flows between tasks (batch_size, data_per_batch, ctx, Drop, enriches).
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user wants to run cognee with Docker or docker compose — trying it out from the prebuilt image, starting the API server in a container, or bringing up the full stack (UI, MCP, Postgres, Neo4j) with compose profiles.
日本語の概要は準備中です。原文の説明を表示しています。
Use when removing data from cognee memory with forget() in the SDK, HTTP API, or CLI — finding which dataset and document hold the content to delete (listing datasets and data items, reading raw content), choosing between deleting one document, a whole dataset, or only the graph/vector memory, and doing it safely.
日本語の概要は準備中です。原文の説明を表示しています。