agentsclimarketplace

Oms cognee

Skill armelhbobdad/oh-my-skills/skills/oms-cognee/0.5.8/oms-cognee

Builds apps on top of cognee v0.5.8, the knowledge-graph memory engine for AI agents. Use when ingesting text/files/URLs into persistent agent memory, building knowledge graphs with entities and relationships, searching graph-backed memory with multiple search modes (GRAPH_COMPLETION, CHUNKS, SUMMARIES, TEMPORAL, CYPHER, CODING_RULES), enriching existing graphs with memify, scoping memory with datasets and node_sets, configuring LLM/embedding/graph/vector backends, running custom task pipelines, tracing cognee operations, or visualizing the resulting graph. Covers the top-level exports from cognee/__init__.py: add, cognify, search, memify, datasets, prune, update, run_custom_pipeline, config, SearchType, visualize_graph, and the tracing API. Do NOT use for: cognee internals (cognify task implementation, graph adapters), the HTTP REST API (use cognee-mcp or the FastAPI server instead), non-cognee memory or RAG libraries.From its SKILL.md

Install
npx -y skills add armelhbobdad/oh-my-skills --skill oms-cognee

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

15.0 KB, ~4.0k tokens by cl100k_base, as published. Nobody here has run it

oms-cognee

Overview

Cognee is an open-source knowledge-graph memory engine for AI agents. It combines a vector store (semantic search), a graph store (entities + relationships), and a relational store (provenance) into a single three-layer memory architecture. The canonical workflow is add → cognify → search: ingest data, build a knowledge graph, then query it.

  • Source: topoteretes/cognee @ v0.5.8 (commit b51dcce) [SRC:pyproject.toml:L4]
  • Language: Python >=3.10, <3.14 [SRC:pyproject.toml:L10]
  • Forge tier: Deep (AST + ccc + QMD + docs fetch)
  • Public exports: 25 top-level names in cognee/__init__.py [AST:cognee/__init__.py:L1]
  • Confidence: All T1 (AST-verified from source clone)
  • Async model: Cognee is async-first — nearly all top-level functions are coroutines and must be awaited [EXT:https://docs.cognee.ai/getting-started/quickstart]

Quick Start

import asyncio
import cognee
from cognee import SearchType

async def main():
    # (optional) start from a clean slate
    await cognee.prune.prune_data()
    await cognee.prune.prune_system(metadata=True)

    # 1) Ingest data — text, file path, URL, or list of any of those
    await cognee.add(
        "Cognee turns documents into AI memory.",
        dataset_name="main_dataset",
    )

    # 2) Build the knowledge graph
    await cognee.cognify(datasets="main_dataset")

    # 3) Query the graph with graph-backed LLM completion (default)
    results = await cognee.search(
        query_text="What does Cognee do?",
        query_type=SearchType.GRAPH_COMPLETION,
    )
    for r in results:
        print(r)

if __name__ == "__main__":
    asyncio.run(main())

Signatures: [AST:cognee/api/v1/add/add.py:L21] · [AST:cognee/api/v1/cognify/cognify.py:L44] · [AST:cognee/api/v1/search/search.py:L27]

Before running, set LLM_API_KEY for graph extraction and completion; Cognee defaults to OpenAI but supports litellm-compatible providers (Anthropic, Gemini, Ollama, etc.) via cognee.config.set_llm_provider(...) and friends. [AST:cognee/api/v1/config/config.py:L141] · [SRC:cognee/api/v1/add/add.py:L166]

<!-- [MANUAL:quick-start-notes] --> <!-- Add project-specific quick-start notes here. Preserved during skill updates. --> <!-- [/MANUAL:quick-start-notes] -->

Common Workflows

Add and process data: await cognee.add(data, dataset_name="main") → await cognee.cognify(datasets="main") → await cognee.search(query_text=..., datasets="main") [AST:cognee/api/v1/add/add.py:L21]

Scope memory per tenant / customer / workflow with node_set: await cognee.add(data, dataset_name="agent_memory", node_set=["customer_123", "preferences"]) → await cognee.cognify(datasets="agent_memory") → await cognee.search(query_text=..., datasets="agent_memory", node_name=["customer_123"]) [SRC:cognee/skill.md:L97]

Enrich an existing graph with memify: await cognee.add(...) → await cognee.cognify(...) → await cognee.memify(dataset="rules_demo") → await cognee.search(query_type=SearchType.CODING_RULES, node_name=["coding_agent_rules"]) — memify creates Rule nodes with rule_associated_from edges grouped under the coding_agent_rules node_set. [AST:cognee/modules/memify/memify.py:L25] · [EXT:https://docs.cognee.ai/guides/memify-quickstart]

Run a custom task pipeline: from cognee.modules.pipelines import Task, run_pipeline; tasks = [Task(extract_people), Task(add_data_points)]; async for _ in run_pipeline(tasks=tasks, data=text, datasets=["people_demo"]): pass [AST:cognee/modules/pipelines/__init__.py:L1] · [EXT:https://docs.cognee.ai/guides/custom-tasks-pipelines]

Insert structured DataPoints directly (skip cognify): from cognee.low_level import DataPoint; from cognee.tasks.storage import add_data_points; await add_data_points([person1, person2]) — field assignment between DataPoints becomes a graph edge; use Edge(weight=..., relationship_type=...) for custom edge metadata. [AST:cognee/low_level.py:L1] · [EXT:https://docs.cognee.ai/guides/custom-data-models]

Visualize the graph: await cognee.visualize_graph("/path/to/graph.html") — writes an interactive HTML visualization. [AST:cognee/api/v1/visualize/visualize.py:L17]

Key API Summary

ExportKindKey paramsSource
cognee.addasync fndata, dataset_name="main_dataset", node_set=None, dataset_id=None, incremental_loading=True, data_per_batch=20, importance_weight=0.5[AST:cognee/api/v1/add/add.py:L21]
cognee.cognifyasync fndatasets=None, graph_model=KnowledgeGraph, chunker=TextChunker, chunk_size=None, temporal_cognify=False, custom_prompt=None, run_in_background=False[AST:cognee/api/v1/cognify/cognify.py:L44]
cognee.searchasync fnquery_text, query_type=SearchType.GRAPH_COMPLETION, datasets=None, top_k=10, node_name=None, only_context=False, session_id=None, verbose=False[AST:cognee/api/v1/search/search.py:L27]
cognee.memifyasync fnextraction_tasks=None, enrichment_tasks=None, data=None, dataset="main_dataset", node_name=None, run_in_background=False[AST:cognee/modules/memify/memify.py:L25]
cognee.updateasync fndata_id, data, dataset_id, node_set=None, preferred_loaders=None, incremental_loading=True[AST:cognee/api/v1/update/update.py:L12]
cognee.run_custom_pipelineasync fntasks=None, data=None, dataset="main_dataset", pipeline_name="custom_pipeline", run_in_background=False[AST:cognee/modules/run_custom_pipeline/run_custom_pipeline.py:L14]
cognee.pruneclass (ns).prune_data(), .prune_system(graph=True, vector=True, metadata=False, cache=True) — all async[AST:cognee/api/v1/prune/prune.py:L4]
cognee.datasetsclass (ns).list_datasets(), .list_data(dataset_id), .has_data(dataset_id), .get_status([ids]), .empty_dataset(id), .delete_data(dataset_id, data_id, mode="soft"), .delete_all() — all async[AST:cognee/api/v1/datasets/datasets.py:L25]
cognee.configclass (ns)set_llm_provider, set_llm_model, set_llm_api_key, set_embedding_provider, set_embedding_model, set_embedding_dimensions, set_vector_db_provider, set_graph_database_provider, system_root_directory, ... (32 static methods)[AST:cognee/api/v1/config/config.py:L18]
cognee.SearchTypeenum14 modes: GRAPH_COMPLETION (default), RAG_COMPLETION, CHUNKS, CHUNKS_LEXICAL, SUMMARIES, TEMPORAL, CODING_RULES, CYPHER, NATURAL_LANGUAGE, FEELING_LUCKY, TRIPLET_COMPLETION, GRAPH_SUMMARY_COMPLETION, GRAPH_COMPLETION_COT, GRAPH_COMPLETION_CONTEXT_EXTENSION[AST:cognee/modules/search/types/SearchType.py:L4]
cognee.visualize_graphasync fndestination_file_path=None → returns HTML str. For lower-level use (when you already have graph data), see cognee.cognee_network_visualization(graph_data, destination_file_path=None) in references/full-api-reference.md.[AST:cognee/api/v1/visualize/visualize.py:L17] · [AST:cognee/modules/visualization/cognee_network_visualization.py:L22]
cognee.enable_tracing / disable_tracing / get_last_trace / get_all_traces / clear_tracessync fnsOpenTelemetry in-memory tracing (5 functions)[AST:cognee/modules/observability/trace_context.py:L16]
cognee.pipelinesmoduleRe-exports Task, run_tasks, run_tasks_parallel, run_pipeline from cognee.modules.pipelines[AST:cognee/pipelines.py:L5]
cognee.low_levelmoduleDataPoint (aliased from ExtendableDataPoint), setup() — primitives for custom-pipeline authors[AST:cognee/low_level.py:L1]
cognee.sessionmoduleSession-scoped Q&A helpers — get_session, add_feedback, delete_feedback (all async). Access via cognee.session.<fn>. See references/full-api-reference.md for signatures.[AST:cognee/api/v1/session/session.py:L1]
cognee.run_migrationsasync fnRuns Alembic migrations bundled with the installed package[AST:cognee/run_migrations.py:L16]
cognee.__version__strPackage version string (e.g., "0.5.8") — resolved at import time via get_cognee_version(). Use for version-gated code paths.[AST:cognee/__init__.py:L6]

Deprecations & Gotchas

Current-state deprecations and source/docs discrepancies surfaced during extraction — not forward-looking breaking changes. v0.5.8 introduces no breaking changes over v0.5.7.

  • cognee.delete(data_id, dataset_id, mode="soft", user=None) is deprecated since cognee v0.3.9. Use await cognee.datasets.delete_data(dataset_id=..., data_id=...) instead. The old function still works and delegates to datasets.delete_data, but is decorated with @deprecated. [AST:cognee/api/v1/delete/delete.py:L10]
  • v0.5.8 has no breaking changes. Release is a stability/bugfix update over v0.5.7: fixed duplicate memories after sync, resolved search timeouts, fixed auth token refresh. [QMD:oms-cognee-temporal:releases.md]
  • cognee.start_ui is sync (not async) and requires a pid_callback positional argument. Do not call await cognee.start_ui() — the function returns Optional[subprocess.Popen] synchronously. Signature: start_ui(pid_callback, port=3000, open_browser=True, auto_download=False, start_backend=False, backend_port=8000, start_mcp=False, mcp_port=8001). [AST:cognee/api/v1/ui/ui.py:L369]
  • cognee.start_visualization_server is a module, not a function. The top-level __init__.py re-imports the submodule name. To start the visualization HTTP server, call cognee.start_visualization_server.visualization_server(port) which is synchronous. [AST:cognee/api/v1/visualize/start_visualization_server.py:L6]

See Full API Reference for complete parameter tables and behavioral notes.

Key Types

SearchType (enum) — cognee.SearchType

All modes accepted by cognee.search(query_type=...):

ModeUse for
GRAPH_COMPLETION (default)LLM answer backed by graph context — best default for Q&A
RAG_COMPLETIONTraditional chunk-based RAG without graph structure
CHUNKSRaw semantic chunk retrieval, no LLM
CHUNKS_LEXICALToken/BM25-style exact-term chunk search
SUMMARIESPre-generated hierarchical document summaries
TRIPLET_COMPLETIONSubject-predicate-object graph Q&A
GRAPH_SUMMARY_COMPLETIONGraph + summaries hybrid
GRAPH_COMPLETION_COTDeeper reasoning with chain-of-thought over graph
GRAPH_COMPLETION_CONTEXT_EXTENSIONBroader graph context retrieval
CYPHERRaw Cypher queries (enable in config)
NATURAL_LANGUAGENatural-language → graph query translation
TEMPORALTime-aware graph search (pairs with temporal_cognify=True)
CODING_RULESQueries against coding_agent_rules node_set (populated by memify defaults)
FEELING_LUCKYCognee auto-selects the best search type

[AST:cognee/modules/search/types/SearchType.py:L4]

Taskcognee.pipelines.Task

Constructor: Task(executable, *args, task_config=None, **kwargs). Wraps any callable (function, coroutine function, generator, or async generator). Detects type via inspect and picks the right execute path. task_config={"batch_size": N} controls batching. [AST:cognee/modules/pipelines/tasks/task.py:L24]

DataPointcognee.low_level.DataPoint

Alias for cognee.infrastructure.engine.ExtendableDataPoint. Pydantic base class for graph-native entities. Assigning one DataPoint instance to another's field creates an edge; the field name becomes the edge label. Use metadata = {"index_fields": [...]} to mark which fields should be embedded in the vector store. [AST:cognee/low_level.py:L1] · [EXT:https://docs.cognee.ai/guides/custom-data-models]

Exceptions — cognee.exceptions

  • CogneeApiError — base class (HTTP 418 default)
  • CogneeSystemError — 500
  • CogneeValidationError — 422
  • CogneeConfigurationError — 500
  • CogneeTransientError — 503

All accept (message, name, status_code, log, log_level). [AST:cognee/exceptions/exceptions.py:L7]

Architecture at a Glance

  • Three-layer storage with node_set-aware graph: relational (provenance), vector (semantic), graph (entities + edges + node_set tagging). node_set tags passed to cognee.add become first-class graph nodes after cognify. [EXT:https://docs.cognee.ai/core-concepts/overview]
  • Default backends (pinned in pyproject.toml): LLM via litellm / openai / instructor; vector lancedb + pylance; graph kuzu==0.11.3 + networkx; relational sqlalchemy + aiosqlite + alembic. Optional extras: neo4j, postgres (pgvector+asyncpg), fastembed, scraping, distributed (Modal). [SRC:pyproject.toml:L22]
  • Async-first: every ingestion/graph/search/memify/update function is a coroutine — call via await from inside an async def and drive with asyncio.run(main()). The sole exceptions are start_ui, start_visualization_server.visualization_server, and the enable_tracing/disable_tracing/get_*_trace/clear_traces family.

CLI

Cognee ships a CLI (cognee-cli) for terminal usage, but it lives outside this skill's scope. Quick reference from the upstream repo:

cognee-cli add "Cognee turns documents into AI memory."
cognee-cli cognify
cognee-cli search "What does cognee do?"
cognee-cli -ui   # Launches UI, backend API, and MCP server together

[SRC:AGENTS.md:L40] — use this skill for the Python API only; reach for cognee-cli or cognee-mcp for CLI/MCP flows.

<!-- [MANUAL:additional-notes] --> <!-- Add custom notes here. This section is preserved during skill updates. --> <!-- [/MANUAL:additional-notes] -->

Full API details, complete type definitions, and integration patterns: see references/full-api-reference.md. Detailed config setter reference: references/config.md. Extended core-workflow walkthrough with env matrix: references/core-workflow.md. Custom pipelines and DataPoint primitives: references/pipelines-and-datapoints.md.

What ships with it: 6 files

56.1 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.