3.2w topoteretes

cognee-community Skill

在用户需要 cognee 核心之外的功能时使用——社区数据库适配器(Qdrant、Milvus、Weaviate、Redis、Pinecone、FalkorDB、Memgraph、DuckDB、NetworkX 等)、数据源连接器(Slack、Gmail、Notion、Confluence、Google Drive)、自定义任务/pipeline/检索器(Exa、ScrapeGraph、codify)、Keywords AI 可观测性——或想向 cognee-community 仓库贡献包时。

安装方式:把技能目录放入 ~/.claude/skills/(Claude Code)或在 claude.ai 设置中启用;也可复制右侧安装命令一键添加。

查看源码

技能指令原文(SKILL.md)

Use and contribute cognee-community packages

Community-maintained plugins live in a separate monorepo:
https://github.com/topoteretes/cognee-community. Everything installable is
under packages/; experimental/ holds demos (n8n nodes, dlt demos,
bauplan, tower) that are not published packages. Each package publishes to
PyPI as cognee-community--- and imports as the same
name with underscores.

Package families

| Family | Packages |
|---|---|
| Vector adapters | azureaisearch, milvus, moss, opengauss, opensearch, pinecone, qdrant, redis, singlestore, turbopuffer, valkey, weaviate |
| Graph adapters | arcadedb, memgraph, networkx, pggraph, spanner, turbopuffer, turingdb |
| Hybrid (graph+vector in one DB) | arcadedb, duckdb, falkordb, helixdb |
| Connectors (data sources) | confluence, gmail, google-drive, notion, slack |
| Tasks / pipelines / retrievers | codify_tasks, codify_pipeline, code_retriever, exa_tasks, scrapegraph_tasks |
| Observability | keywordsai (MONITORING_TOOL=keywordsai + KEYWORDSAI_API_KEY) |

Using a database adapter

Install, then **import the package's register module before cognee touches
any engine** — registration is what makes the provider name valid:

uv pip install cognee-community-vector-adapter-qdrant
import cognee
from cognee import config
from cognee_community_vector_adapter_qdrant import register  # noqa: F401

config.set_vector_db_config(
    {
        "vector_db_provider": "qdrant",
        "vector_db_url": "http://localhost:6333",
        "vector_db_key": "...",
        "vector_dataset_database_handler": "qdrant",  # only if the adapter ships one
    }
)

The register.py calls use_vector_adapter(name, AdapterClass) /
use_graph_adapter(...). Setting VECTOR_DB_PROVIDER/GRAPH_DATABASE_PROVIDER
to a community name without the register import raises "Unsupported
vector database provider". Hybrid adapters (e.g. falkordb) register as both
graph and vector — set both configs to the same provider name.

Multi-tenancy caveat: with ENABLE_BACKEND_ACCESS_CONTROL=true (the
default), both backends must have a dataset-database handler or cognee raises
EnvironmentError. Community adapters that ship one (registered via
use_dataset_database_handler in their register.py): qdrant, moss,
singlestore, turbopuffer (vector + graph), falkordb, arcadedb, helixdb. All
other community adapters need ENABLE_BACKEND_ACCESS_CONTROL=false.

Using a connector

Connectors expose a dlt source you hand straight to remember(); they
reuse core's DLT ingestion path, so snapshot sync and forget-on-delete work
with no core changes:

from cognee_community_connector_slack import slack_export_source

await cognee.remember(
    slack_export_source("/path/to/slack-export"),
    dataset_name="team-slack-export",  # use a dedicated dataset
    max_rows_per_table=0,
)

Same shape for gmail ("ask my inbox"), notion, confluence, and google-drive
(incremental, forget-on-delete). Each package README documents its
credentials; always give a connector its own dataset.

Verifying an install

Every package has examples/example.py (run uv run python examples/example.py
from the package dir) and a tests/ directory. An LLM API key is still
required (LLM_API_KEY, OpenAI by default).

Contributing a package

  • Branch from main — unlike the core repo, cognee-community does not

use a dev branch.

  • Follow the existing structure: package dir under packages///

with pyproject.toml, a README.md (install + usage), examples/example.py,
and tests/ that go beyond the example.

  • New DB adapters implement VectorDBInterface / GraphDBInterface from

core, expose a register.py, and should run the shared conformance tests
in packages/shared/contract_suite/ (vector_contract.py / graph_contract.py).

  • Add a handler via use_dataset_database_handler(...) if the backend can

isolate per user+dataset — that's what makes it work with access control on.

  • Name it cognee-community--- and add it to the tables

in the repo README. Lint config is the repo-root ruff.toml.