Skip to content

Guide · Agent skill

How to use the Custom Tasks and Pipelines agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The cognee-custom-pipelines skill teaches an AI agent how to build its own processing steps for cognee, an open-source memory and knowledge-graph tool. Cognee runs data through a pipeline of small Python functions called tasks, and this skill helps the agent write those tasks, chain them, and store custom node types in the graph. After this guide you will know how to install the skill, how to ask for it in plain language, and what it needs before it can run anything.

Custom Tasks and Pipelinestopoteretes/cognee · Apache-2.0

Quick start

  1. 1Download the ZIP. Download the cognee-custom-pipelines skill ZIP from this page. It contains SKILL.md.
  2. 2Install the skill. Unzip it into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ folder. Alternatively, upload the ZIP in the Claude apps under Settings, then Capabilities, then Skills.
  3. 3Set up cognee. Install the cognee package in Python and configure its graph and vector databases. Add LLM credentials if your tasks call an LLM.
  4. 4Describe your processing. Ask the agent in plain language for the custom task, DataPoint or enrichment you need, and mention cognee.
  5. 5Review the code before running. Check the tasks the agent writes, since pipelines write to the graph and vector stores.
  6. 6Run and check status. Run the pipeline with run_custom_pipeline, then check its status for the dataset.

What the skill makes the agent do

Agent skills are folders of instructions that an agent such as Claude loads when a task matches the skill's description. This one applies when you are building your own cognee processing rather than ordinary ingestion. The source says the right tool for ordinary document ingestion is remember(), so the skill is for cases cognee does not ship with, such as your own extraction, your own node types, or a post-processing step over the graph.

  • Write custom tasks as plain Python functions.
  • Chain tasks into a pipeline with run_custom_pipeline or the lightweight run_pipeline.
  • Store custom DataPoints in the graph with add_data_points.
  • Run custom enrichment over an existing graph.
  • Check pipeline run status and debug how data moves between tasks.

How to install the skill

Download the skill ZIP from this page. It contains one file, SKILL.md. Then choose one of the two install routes below.

For Claude Code, unzip the folder into ~/.claude/skills/ to make it available everywhere, or into a project's .claude/skills/ folder to limit it to that project.

In the Claude apps, open Settings, go to Capabilities, then Skills, and upload the ZIP.

Prepare a working cognee environment

The skill does not replace a cognee setup. The code depends on cognee's graph and vector databases, and any LLM that a task calls needs credentials. You need Python with the cognee package installed and a configured cognee environment before the agent's code can run.

  • Python with the cognee package installed.
  • A configured graph database and vector database.
  • LLM access, only if your tasks call an LLM.

Trigger the skill with natural requests

You do not need special syntax. Describe the processing you want and mention cognee. The skill's description matches requests about writing custom tasks, chaining pipelines, storing DataPoints, running enrichment over the graph, checking run status, or debugging data flow between tasks.

  • Write a cognee task that extracts people's names from each document and store them as a Person node.
  • Chain my custom task with add_data_points and run it on the people dataset.
  • Enrich the existing graph of my dataset with new DataPoints using run_custom_pipeline.
  • Check the status of my custom pipeline run for this dataset.
  • Why does my second task receive a list instead of a single item?

Example: a custom extraction pipeline

The skill's central example defines a Person DataPoint with identity_fields so repeated runs merge instead of duplicating, writes an extraction task, and passes it with add_data_points to run_custom_pipeline. The first task receives each document as a one-element list, which the example handles with a check for string items.

  • Use run_custom_pipeline for the normal case, because it runs against a dataset with permissions, a per-dataset lock, run records and status.
  • Use the lightweight run_pipeline only for quick chains with no permissions, locks or run rows.
result = await cognee.run_custom_pipeline(tasks=[Task(extract_people, needs_llm=False), Task(add_data_points, needs_llm=False)], data=["Ada Lovelace, Alan Turing"], dataset="people")

Debug how data flows between tasks

Most pipeline bugs come from a few flow rules. Each document runs the whole chain on its own. data_per_batch controls how many documents run at the same time and is not a batch size. A task's batch_size controls how the previous task's generator output is grouped before it arrives. Returning or yielding Drop removes an item from the stream, and enriches=True passes the input on unchanged when a function returns None.

  • If a task gets a list when you expected one item, that is the one-element list rule.
  • If nodes duplicate on every run, check that each DataPoint has identity_fields.
  • If run_custom_pipeline does nothing on an older database, run await cognee.run_migrations() first, since it does not run migrations itself.
  • Run status can be checked with cognee.datasets.get_status and the pipeline_names argument, because without it only cognify_pipeline is reported.
status = await cognee.datasets.get_status([dataset_id], pipeline_names=["custom_pipeline"])

What people use it for

  • Extract custom entities such as people or products from documents and store them as typed graph nodes.
  • Post-process an existing cognee graph by adding new DataPoints from its current nodes and edges.
  • Tag or filter chunks in a task, discarding unwanted items with Drop before they reach storage.
  • Debug why a downstream task runs many times per document, which the skill explains as streaming behaviour.

Frequently asked questions

Is the cognee-custom-pipelines skill free to use?

The source gives the licence as Apache-2.0 for the cognee repository that the skill comes from. It does not state prices for the skill, so check the repository's licence file for terms.

What do I need installed before using this skill?

You need Python with the cognee package installed and a configured cognee environment with a graph database and a vector database. If your tasks call an LLM, you also need LLM access and credentials.

Where do I put the skill so Claude can find it?

For Claude Code, unzip it into ~/.claude/skills/ for all projects or into a project's .claude/skills/ folder. In the Claude apps, upload the ZIP under Settings, then Capabilities, then Skills.

Should I use this skill to ingest documents?

No. The skill itself says remember() is the right tool for ordinary ingestion, because custom pipelines add complexity.

What is the difference between run_custom_pipeline and run_pipeline?

run_custom_pipeline runs your tasks against a dataset with permissions, a per-dataset lock, run records and status. The lightweight run_pipeline, imported from cognee.pipelines, handles quick chains of task() specs with none of those features.

Why does my pipeline fail with a TypeError or WrongTaskTypeError?

You may be using the wrong run_pipeline. The one from cognee.pipelines wants task() specs called with parentheses, while the orchestrator in cognee.modules.pipelines wants Task objects. The skill also notes that run_custom_pipeline accepts only Task objects.

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

Use this skill if you are a developer or data engineer building custom extraction, custom node types or graph post-processing on top of a working cognee installation. Pick something simpler for plain document ingestion, where the skill itself recommends remember(), and test carefully before running pipelines on production data, since they write to the graph and vector stores and some APIs are deprecated.

Download the skill

Find exactly what
you're looking for