Guide · Agent skill
How to use the Ingest data with remember() agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
This guide explains the cognee-ingestion agent skill, a set of detailed instructions that teaches an AI agent how to put data into cognee memory with the remember() function. It is written for people who have not used agent skills before. By the end you will know how to install the skill, how to ask for ingestion tasks in plain language, and which safety checks to apply before the agent fetches URLs, clones repositories or connects to databases.
Quick start
- 1Download and unzip the skill. Download the cognee-ingestion ZIP from the page, then unzip it into ~/.claude/skills/ or into .claude/skills/ in your project. Confirm SKILL.md is in the folder.
- 2Install cognee and check requirements. Make sure Python has the cognee library installed. Set LLM_API_KEY if you want LLM extraction, and put git on PATH if you plan to ingest repositories.
- 3Ask for an ingestion task in plain language. Describe what you want loaded, such as files into a named dataset. The agent uses the skill when your request matches its description.
- 4Run a dry run first. Ask the agent to estimate tokens and cost with dry_run=True before ingesting large sets of documents.
- 5Review network actions and approve them. Check any URL, git clone or database connection the agent proposes. Approve only the sources you trust, since these steps send or read data outside your machine.
What the cognee-ingestion skill makes the agent do
cognee is a library that stores data and builds a searchable knowledge graph from it. The remember() function is its ingestion API: one call stores the data, builds the graph and enriches it. This skill is the know-how for that function. Once it is installed, the agent can choose the right input type, route files to the correct loader, pick datasets and node_sets, decide between an LLM and a local GLiNER model for entity extraction, load ontologies, and estimate token cost with a dry run before spending money.
Install the skill
Skills are folders that an agent can read. You can install this one in either of two ways. The first is to download the ZIP of the cognee-ingestion skill from the page where you found this guide, then unzip it into ~/.claude/skills/ for your user account, or into .claude/skills/ inside a project to make it available only there. The second is to upload the ZIP in the Claude apps under Settings, then Capabilities, then Skills.
The skill's files are SKILL.md. Check that the folder contains SKILL.md after unzipping so the agent can find its instructions.
- Personal install: unzip into ~/.claude/skills/
- Project install: unzip into .claude/skills/ in your project
- Claude apps: Settings, Capabilities, Skills, then upload the ZIP
Trigger the skill with natural requests
You do not need to name the skill. The skill describes when it applies: putting data into cognee memory with remember(), choosing inputs such as text, files, folders, URLs, repositories or databases, datasets and node_sets, loaders, ontologies, the graph extractor (LLM or GLiNER), chunking, dry-run cost estimates, or a remember() call that raises on a keyword argument. Ask in plain terms that name one of these tasks.
- Load this folder of PDFs and markdown notes into a dataset called research.
- Estimate the token cost of ingesting these documents before you run anything.
- Ingest these CSV files with the correct loader and tag them with the AI node set.
- Build the graph locally without an LLM using GLiNER.
- My remember() call fails with an unexpected keyword argument. What do I change?
Ingest data with remember(): basic calls
The data argument accepts a string, a list of strings, file paths (absolute, file://, or s3://), http(s) URLs, binary streams, or a list mixing them. Without dataset_name, data goes to main_dataset. All cognee functions are async, so call them with await. The skill's examples use the following pattern.
- Text: pass a string directly.
- Files: pass a list of paths and set dataset_name to keep them together.
- Folders are ingested file by file. A folder that looks like a code project, or a GitHub or GitLab URL, becomes one code repository and needs git on PATH.
- Code files such as .py or .ts go down a code-graph route with no LLM calls and are searchable only with SearchType.CODE.
import cognee
result = await cognee.remember("Einstein was born in Ulm.")
result = await cognee.remember(["./notes.md", "./report.pdf"], dataset_name="research")
print(result.status, result.dataset_id)Control datasets, node_sets and the graph build
A dataset is the unit of permissions and isolation, so use dataset_name or dataset_id to separate data. dataset_id wins if both are given. node_set tags data so that recall can filter to it later. Setting extractor chooses how entities are extracted: 'llm' or 'gliner_demo' (alias 'gliner'). By default, GRAPH_EXTRACTOR=auto uses the LLM when an API key is configured and GLiNER otherwise. Setting dry_run=True returns a token and cost estimate without ingesting anything or calling the LLM. It does not cover the calls that improve() makes, and it is not supported with GLiNER, sessions or a remote instance.
- dataset_name or dataset_id: target dataset
- node_set=['AI', 'FinTech']: filter later with recall(..., node_name=['AI'])
- extractor: 'llm' or 'gliner_demo'
- chunk_size and chunker: tokens per chunk and the chunker class (default TextChunker)
- dry_run=True: estimate only, no ingestion and no LLM calls
result = await cognee.remember("./big_folder", dataset_name="research", dry_run=True)Add ontologies and choose loaders
An ontology grounds entities in an OWL file. Pass it through config with RDFLibOntologyResolver, or set ONTOLOGY_FILE_PATH, ONTOLOGY_MODE and MATCHING_STRATEGY in .env. The default mode annotate only enriches the graph. The strict mode drops entities that match no ontology class or individual, and it prunes only the graph, so chunk text is still stored.
Each file is claimed by the first loader that accepts it. You can choose a loader per file type with preferred_loaders. Office formats such as DOCX and 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 when a file comes out wrong.
- ontology_mode 'annotate' (default): enrich only
- ontology_mode 'strict': drop unmatched entities; an empty or missing ontology file is a hard error
- Default loader order: code, text, pypdf, image, audio, video, dlt_csv, csv, unstructured, advanced_pdf, docling
await cognee.remember("./script.py", preferred_loaders={"text_loader": {}})Safety notes: network, scripts and sensitive data
This skill does not run scripts. It does use the network. URL fetching is allowed by default through ALLOW_HTTP_REQUESTS=true. Git cloning of repositories and database connections read or send data outside the local machine. Treat each of these as a step that needs deliberate approval, especially for sensitive data. Review what the agent plans to fetch or connect to before it runs.
The open-source GLiNER extractor is a demo with lower accuracy, according to the skill's own file. Do not rely on it for production graph extraction.
- Uses network: yes (URL fetching, git clone, database connections)
- Runs scripts: no
- Review sources before the agent ingests URLs, repositories or databases
Requirements and optional extras
You need Python with the cognee library installed. LLM-based extraction needs LLM_API_KEY. GLiNER does not need it. Repository ingestion needs git on PATH. Session writes with session_id need CACHING=true. The GLiNER option is an optional install, and its model is about 750 MB and downloads on first use.
- Python with the cognee library installed
- LLM_API_KEY for LLM extraction (not needed with GLiNER)
- git on PATH for repository ingestion
- cognee[gliner] extra: about 750 MB model download on first use
- docs or docling extra for Office formats
- CACHING=true for session writes
pip install "cognee[gliner]"Fix changed files and keyword argument errors
Re-remembering the same path with different content raises DocumentUpdateRequiredError, because it 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.
remember() forwards keyword arguments through a fixed allow-list. Anything else raises TypeError: Unexpected keyword arguments. Some real options from lower-level functions are not on remember() yet, so check the workaround before you assume a feature is missing.
- Changed file: use cognee.update() instead of re-remembering
- Unexpected keyword argument: check the allow-list and the workaround for the option
- extraction_rules works through preferred_loaders with beautiful_soup_loader but needs the scraping extra
What people use it for
- Loading a folder of PDFs and notes into a named research dataset for later search
- Estimating what a large document set will cost in LLM tokens before ingesting it
- Ingesting CSV files or a SQL database into a knowledge graph with the correct loader
- Building a local graph with the GLiNER option when you do not want to make LLM calls
Frequently asked questions
How do I install the cognee-ingestion agent skill?
Download the cognee-ingestion ZIP from the page, then unzip it into ~/.claude/skills/ for your user, or into .claude/skills/ in a project. You can also upload the ZIP in the Claude apps under Settings, then Capabilities, then Skills.
What do I need to use the remember() skill?
You need Python with the cognee library installed. LLM_API_KEY is needed for LLM-based extraction but not for GLiNER. Git must be on PATH for repository ingestion.
Is the cognee-ingestion skill free?
The skill is listed under the Apache-2.0 licence, as is the topoteretes/cognee repository it comes from. Check the licence file in the repository for the full terms before commercial use.
Does the skill run scripts or use the network?
According to the listing, it runs no scripts and does use the network. URL fetching, git cloning of repositories and database connections read or send data outside your machine, so review them before approving.
Can I ingest without an LLM or API key?
Yes. Set extractor to gliner, after installing the cognee[gliner] extra. The model is about 750 MB and downloads on first use. The open-source GLiNER option is described as a demo with lower accuracy, so it is not recommended for production extraction.
Why does remember() raise an error when I re-ingest a changed file?
Re-remembering the same path with different content is treated as an update and raises DocumentUpdateRequiredError. Use cognee.update() with the data_id, data and dataset_id, which re-extracts only the changed chunks.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits developers and data engineers who build on the cognee library and want an agent to load data correctly, estimate costs first, or extract without an LLM. It is not useful if you do not use cognee, and it needs careful review before the agent fetches URLs, clones repositories or connects to databases with sensitive data. For production-grade graph extraction, plan for cognee's enterprise options rather than the open-source GLiNER demo.
Download the skill