首页
/ Cognee Python API 实战指南:从 add、cognify 到 search 的持久化 Agent 记忆构建

Cognee Python API 实战指南:从 add、cognify 到 search 的持久化 Agent 记忆构建

2026-09-09 12:03:56作者:毕习沙Eudora

Cognee 是一个开源的 AI 记忆平台,为 Agent 提供跨会话的持久化长期记忆,核心引擎是自托管的本地知识图谱。本文以仓库内 cognee/skill.md 为骨架,系统讲解 Cognee 的 Python API 工作流:如何用 add -> cognify -> search 三步把文本、文件、URL 变成可检索的图记忆,如何用 DataPointNodeSet 实现结构化记忆与作用域隔离,以及如何通过 memify、反馈回路、会话机制构建可自我改进的 Agent 系统。读完本文,你将掌握这套 API 的完整调用方式、每个参数的实际作用,以及它们在源码中的底层实现位置,可直接照抄运行。

何时使用该技能:把用户意图映射到正确的 Cognee 工作流

cognee/skill.md 的核心定位是 Cognee 专属 Python API 辅助,并帮助把用户目标映射到正确的流程。当用户想要以下能力时,都适用这套技能:

  • 摄取文本、文件、URL、代码仓库或数据集(add);
  • 构建或重建知识图谱(cognify);
  • 搜索文档、分块(chunk)、摘要、三元组或图上下文(searchSearchType 选择);
  • memify 丰富已有图谱;
  • 定义自定义图抽取模型或 DataPoint 类型;
  • 运行自定义任务流水线(run_custom_pipeline);
  • 配置 LLM、图数据库、向量数据库或存储设置;
  • node_set / NodeSet 标记和限定记忆范围;
  • 为 Agent 构建跨会话持久记忆、反馈回路、自改进工作流;
  • 处理时间感知抽取(temporal)、本体(ontology)、Cypher 或自然语言图查询;
  • 管理数据集、会话、反馈、剪枝(pruning)、更新与可视化。

核心判断准则:只要用户意图是"把信息存进记忆、之后再查出来",就优先走 Cognee 的 add -> cognify -> search 主干流程。这三个 API 全部从 cognee/init.py 导出,是整个库的公共入口。

核心工作流:add -> cognify -> search

skill.md 给出的最小可用示例:

import cognee
from cognee import SearchType

await cognee.add(
    "Your text, file path, URL, or list of inputs",
    dataset_name="main",
    node_set=["default_memory"],
)
await cognee.cognify(datasets="main")
results = await cognee.search(
    "What are the key insights?",
    query_type=SearchType.GRAPH_COMPLETION,
    datasets="main",
)

默认使用准则

  1. 最简单的可用路径开始,除非用户明确要求高级配置;
  2. 默认工作流就是 add(...) 摄取 → cognify(...) 建图 → search(...) 查询;
  3. 所有 Cognee API 都是 async(异步)的;
  4. 多数据源时用 dataset_name / datasets 组织数据;
  5. 需要轻量标签、项目隔离、按用户划分记忆桶或子图过滤时使用 node_set
  6. 只有任务匹配时才推荐高级特性:memify 丰富已有图谱、temporal_cognify=True 时间感知抽取、自定义图模型/DataPoint 领域化抽取、自定义流水线、反馈回路、可视化工具。

第一步:add —— 摄取任意形态的数据

cognee.add(...) 是工作流的第一步,负责把原始数据摄取进指定数据集。其完整签名定义在 cognee/api/v1/add/add.py

支持的输入类型

  • 文本字符串:任何不以 /file:// 开头的字符串都视为直接文本内容;
  • 本地文件路径:绝对路径 /path/to/document.pdf、文件 URL file:///abs/path.pdffile://relative/path.txt、S3 路径 s3://bucket-name/path/file.pdf
  • 二进制文件对象open("file.txt", "rb") 之类的 BinaryIO 流;
  • URLhttps:// / http:// 网页链接;
  • 列表:以上任意类型的混合列表,一次调用同时摄入。

支持的文件格式(来自 add 的 docstring)

文本文件(.txt、.md、.csv)、PDF、图片(.png/.jpg/.jpeg,走 OCR/视觉模型)、音频(.mp3/.wav,转写为文本)、代码文件(.py/.js/.ts 等,解析结构与内容)、Office 文档(.docx/.pptx)。

常用调用示例

await cognee.add("notes.md", dataset_name="research")
await cognee.add("https://example.com", dataset_name="research")
await cognee.add(["paper.pdf", "summary.txt"], dataset_name="research")

URL 摄取还支持 extraction_rules(BeautifulSoup 的 CSS 选择器/XPath)、tavily_config(需设 TAVILY_API_KEY)等高级参数,详见 add 源码

关键参数速查

参数 默认值 说明
data 必填 文本、文件路径、URL、二进制流或混合列表
dataset_name main_dataset 数据集名称,用于组织不同知识域
node_set None 图节点标签列表,用于图组织与访问控制
dataset_id None 用 UUID 替代 dataset_name 定位数据集
incremental_loading True 增量加载,跳过内容哈希相同的数据
importance_weight 0.5 数据重要度权重
run_in_background False 后台异步摄取,大文件建议开启
preferred_loaders None 指定使用的 loader
data_per_batch 20 每批并行处理的数据项数

源码视角:add 内部发生了什么

add.py 的实现看,add 内部是一个 ingestion pipeline

  1. await setup() 初始化基础设施,运行数据库迁移(run_migrations_and_block);
  2. resolve_authorized_user_dataset 解析(必要时创建)数据集并校验写权限,用户为 None 时自动使用默认用户 default_user@example.com
  3. 组装任务列表:resolve_data_directories(解析目录、校验可访问性)+ ingest_data(提取文本、存入数据集、记录元数据、分配权限);
  4. resolve_dlt_sources 展开 DLT 资源与自动检测的 CSV/连接字符串;
  5. 通过 run_pipelineadd_pipeline 名义执行,支持 run_in_background=True 时先物化流式输入再异步执行。

第二步:cognify —— 把数据变成知识图谱

cognee.cognify(...) 是核心处理步骤,把 add 摄取的内容转化为结构化知识图谱:分析内容、抽取实体与关系、建立语义连接。签名定义在 cognee/api/v1/cognify/cognify.py

await cognee.cognify(datasets="research")

常用选项

await cognee.cognify(
    datasets="research",
    temporal_cognify=True,
    chunk_size=1024,
    custom_prompt="Extract companies, products, and partnerships.",
)

参数说明

  • datasets:数据集名称或 UUID;传 None 处理用户全部数据;
  • graph_model:定义图结构的 Pydantic 模型,默认 KnowledgeGraph(定义于 cognee/shared/data_models.py);
  • chunker:分块策略,TextChunker(按段落,默认,最稳定)或 LangchainChunker(递归字符切分带重叠);
  • chunk_size:每块最大 token 数,None 时按公式 min(embedding_max_completion_tokens, llm_max_completion_tokens // 2) 自动计算,大致落在 512–8192 token 区间;块越小知识越细碎;
  • custom_prompt:自定义实体/关系抽取提示词,替代默认抽取提示;
  • temporal_cognify:布尔值,开启时间感知抽取(事件+时间戳);
  • functional_relationships:单值关系名集合(如 {"ceo_of"}),冲突断言按时间就近原则标记 superseded,默认关闭;
  • dry_run:只估算 LLM token 用量与成本,不发起 LLM 调用、不写图;
  • run_in_background:大语料(>100MB)建议开启,用返回的 pipeline_run_id 跟踪进度。

源码视角:默认流水线的六个阶段

get_default_taskscognify.py)揭示了 cognify 的真实任务链:

  1. classify_documents:把原始 Data 项分类为类型化 Document 对象;
  2. extract_chunks_from_documents:按 chunk_size 切成语义分块;
  3. extract_graph_and_summarize:LLM 抽取实体与关系成图,并为每块生成摘要;
  4. add_data_points:把节点、边、嵌入持久化到图库/向量库;
  5. 可选 record_provenance:为每条文档/分块/实体/关系追加审计级来源记录(默认关闭);
  6. 可选 detect_contradictions:标记本次摄入与图内已有事实的矛盾(默认关闭)。

如果开启 temporal_cognify=True,则切换到 get_temporal_tasks(同文件 L479-L520)的时序流水线:分类 → 分块 → extract_events_and_timestamps 抽取事件与时间戳 → extract_knowledge_graph_from_events 从事件构建图 → 落库。代码文件/仓库数据则自动路由到 get_code_file_tasks / get_code_repo_tasks(按数据项路由,见 cognify.py)。

第三步:search —— 按场景选择 SearchType 查询图记忆

cognee.search(...) 是工作流终点,从已处理的知识图谱检索信息,支持从简单事实检索到复杂推理、代码分析的多种模式。签名见 cognee/api/v1/search/search.py

results = await cognee.search(
    "What changed in Q1 2024?",
    query_type=SearchType.TEMPORAL,
    datasets="research",
    top_k=10,
)

SearchType 完整对照表

SearchType 枚举定义在 cognee/modules/search/types/SearchType.py

SearchType 用途与建议
GRAPH_COMPLETION 图感知 Q&A 的最佳默认,基于全图上下文 + LLM 推理
RAG_COMPLETION 传统 RAG,基于文档分块(不走图结构)
CHUNKS 快速语义检索,无完成生成,返回相关文本块
CHUNKS_LEXICAL BM25 风格的关键词精确/词法匹配
SUMMARIES 文档摘要总览
TRIPLET_COMPLETION 主-谓-宾语三元组风格图问答
GRAPH_SUMMARY_COMPLETION 图 + 摘要联合作答
GRAPH_COMPLETION_COT 基于图上下文的更深推理(思维链)
GRAPH_COMPLETION_CONTEXT_EXTENSION 更宽范围的图上下文检索
CYPHER 原始 Cypher 查询(需在配置中启用)
NATURAL_LANGUAGE 自然语言转图查询
TEMPORAL 时间感知图搜索
CODING_RULES 代码规则与模式
CODE 确定性代码事实查询、图遍历、路径与影响分析(无 LLM)
FEELING_LUCKY 让 Cognee 自动选择最合适的检索类型
FEEDBACK 应用反馈以改进后续检索行为

注意:源码中的枚举还包含 HYBRID_COMPLETIONsearch 的默认 query_type)、AGENTIC_COMPLETION(配合 skills/tools 的 Agent 检索)与 GRAPH_REPORT,比 skill.md 列出的更全。

关键参数

  • query_text:自然语言问题;
  • datasets / dataset_ids:限定搜索范围;
  • top_k:返回结果数,默认 15,综合全面分析可调大(上限 100);
  • node_name + node_type:按节点名/类型过滤(node_name_filter_operator 支持 AND/OR,默认 OR);
  • session_id:会话连续性标识,默认 default_session
  • only_context / verbose:分别返回纯检索上下文或含图表示的详细信息;
  • include_references:返回引用信息;
  • skills / tools / max_iter:Agent 检索器参数(需 AGENTIC_COMPLETION 类型,且要求恰好一个数据集)。

DataPoint:Cognee 中知识的原子单元

DataPoint 是 Cognee 内部表示结构化数据的最小知识单元(Pydantic 模型),定义于 cognee/infrastructure/engine/models/DataPoint.py。当用户已有结构化对象、不想只依赖文本抽取时,用它直接插入图对象。

核心要点

  • DataPoint 是一个 Pydantic 模型,表示一个有意义的单位信息;
  • 同时携带内容上下文(索引提示、关系字段);
  • 直接插入时可以成为图节点和边,同时贡献可搜索的向量字段;
  • metadata = {"index_fields": [...]} 控制哪些字段被嵌入用于语义检索;
  • 关系字段可以指向其他 DataPoint,从而用代码程序化定义图结构;
  • 适合已有结构化对象、不想依赖纯文本抽取的场景。

自定义 DataPoint 示例(来自 skill.md)

from typing import Any
from pydantic import SkipValidation
from cognee.infrastructure.engine import DataPoint
from cognee.tasks.storage import add_data_points

class ScientificPaper(DataPoint):
    title: str
    authors: list[str]
    methodology: str
    findings: list[str]
    cites: SkipValidation[Any] = None
    metadata: dict = {"index_fields": ["title", "findings"]}

paper = ScientificPaper(
    title="Graph Memory for Agents",
    authors=["A. Researcher"],
    methodology="Knowledge graph + vector retrieval",
    findings=["Improved cross-session recall", "Better multi-hop retrieval"],
)

await add_data_points([paper])

源码视角:DataPoint 的内置字段

DataPoint.py 可以看到每个节点自动携带的内置字段:

  • id:默认随机 UUID4;若在 metadata 中声明 identity_fields(或在字段上用 Dedup() 注解),则改为从身份字段确定性派生(uuid5(NAMESPACE_OID, f"{类名}:{值}")),保证跨运行可合并/幂等(id_for 是唯一来源,见 L162-L179);
  • created_at / updated_at:毫秒级时间戳;
  • version:版本号,update_version() 递增并刷新时间戳;
  • valid_to:双时态有效性——事实被取代的时间(None 表示仍然有效);
  • ontology_valid / ontology_uri:本体校验状态与稳定的本体 IRI,支持图谱导出为 RDF 与外部域链接(开放世界);
  • topological_rank:拓扑排序位次;
  • feedback_weight / importance_weight:反馈权重与重要度权重(默认 0.5);
  • source_pipeline / source_task / source_node_set / source_user / source_content_hash:来源溯源字段;
  • belongs_to_set:归属的 NodeSet;
  • 序列化辅助:to_json / from_json / to_dict / from_dict

另一个可选语法:Annotated 标记自动派生 metadata

DataPoint.__pydantic_init_subclass__L181-L210)支持用 Annotated[str, Embeddable()]Annotated[str, Dedup()] 字段注解,自动填充 metadataindex_fieldsidentity_fields,无需手写 metadata。相关标记类 EmbeddableDedupLLMContextcognee/infrastructure/engine/init.py 导出。

选型建议:非结构化文档走 add(...) -> cognify(...);已有结构化 Python 对象且要直接插入图时,用 DataPoint 模型 + add_data_points(...)。注意 cognee.low_levelDataPoint 实际指向 ExtendableDataPoint(见 cognee/low_level.pyExtendableDataPoint.py)。

NodeSet:轻量标签、分组与记忆作用域

NodeSet 用于打标签、分组、限定记忆范围node_set=[...]add(...) 时传入,cognify() 之后这些标签会升级为一等图节点,帮助组织检索。NodeSet 模型本身就是一个 DataPoint 子类,仅多一个 name 字段,见 cognee/modules/engine/models/node_set.py

为什么 NodeSet 重要

  • 按项目、团队、客户、工作流、主题或环境组织记忆;
  • 只搜索相关子图而非整个数据集;
  • 对"一个记忆库承载多用户/多任务"的 Agent 系统尤其有用。

推荐的 NodeSet 模式

  • 按客户:["customer_123"]
  • 按工作流:["support_bot", "refund_flow"]
  • 按主题:["contracts", "vendor_risk"]
  • 按环境:["prod", "staging"]
  • 按用户记忆:["user_42", "preferences"]

用 NodeSet 限定搜索

results = await cognee.search(
    query_text="What are this customer's reporting preferences?",
    query_type=SearchType.GRAPH_COMPLETION,
    datasets="customer_success",
    node_name=["preferences", "customer_123"],
)

完整示例:构建按用户/工作流隔离的 Agent 记忆

await cognee.add(
    [
        "Alice prefers terse answers and email follow-ups.",
        "Alice escalates billing issues to finance first.",
        "Bob prefers detailed technical explanations."
    ],
    dataset_name="agent_memory",
    node_set=["crm", "user_profiles"],
)

await cognee.cognify(datasets="agent_memory")

results = await cognee.search(
    query_text="How should I respond to Alice?",
    datasets="agent_memory",
    node_name=["crm", "user_profiles"],
)

默认触发词:当用户说"按客户隔离记忆""不建独立数据库就分开项目""让 Agent 只搜自己的记忆""按工作流或团队分组事实"时,默认使用 NodeSet。

memify:在不重启流程的前提下丰富已有图谱

memify(...) 用于改进或扩展已构建的图谱,无需重跑完整流程。定义在 cognee/modules/memify/memify.py

await cognee.memify(dataset="research")

源码视角:memify 的工作方式

  • 不传 data 时,把已有知识图谱(或按 node_type / node_name 过滤的子图,通过 get_memory_fragment 读取)作为输入;
  • 可传自定义 data 与自定义 extraction_tasks / enrichment_tasks,条目可以是 Task 实例或内置 memify 任务名(注册表见 cognee/memify_pipelines/memify_task_registry.py);
  • 未指定任务时使用默认抽取/丰富任务(见 cognee/memify_pipelines/memify_default_tasks.py);
  • 支持 run_in_background=True 后台执行。

仓库内的 memify 流水线脚本(如 cognee/memify_pipelines/consolidate_entities.pycross_connect_entities.pycreate_triplet_embeddings.py)展示了"实体合并、跨连接、三元组嵌入、全局上下文索引"等典型丰富手段。

自定义流水线:run_custom_pipeline 显式串行控制

当需要显式的顺序任务控制时,使用 run_custom_pipeline(...),实现见 cognee/modules/run_custom_pipeline/run_custom_pipeline.py

from cognee.modules.pipelines.tasks.task import Task

async def my_task(data):
    return data

await cognee.run_custom_pipeline(
    tasks=[Task(my_task)],
    data="input",
    dataset="research",
)

Task 定义在 cognee/modules/pipelines/tasks/task.py。流水线支持 use_pipeline_cache(相同 pipeline ID 不重复处理)、incremental_loading / data_cache(基于内容哈希跳过重复数据)、data_per_batch 并行度、run_in_backgroundpipeline_name 自定义等参数。更多可运行的参考见 examples/guides/custom_tasks_and_pipelines.pyexamples/demos/custom_pipelines

配置:LLM 提供商与后端设置

使用 Cognee 配置助手设置提供商与后端:

cognee.config.set_llm_provider("openai")
cognee.config.set_llm_model("gpt-4o-mini")
cognee.config.set_llm_api_key("sk-...")

这些 setter 定义在 cognee/api/v1/config/config.py,分别写入 LLMConfigllm_providerllm_modelllm_api_key 字段。同文件还提供 set_llm_endpoint(自定义 API 端点 URL)、set_llm_config(批量字典配置)等。

常见配置领域(用户可能问及):

  • LLM 提供商与模型(LLM_PROVIDERLLM_MODELLLM_API_KEY 环境变量);
  • 图数据库提供商(GRAPH_DATABASE_PROVIDER,默认 ladybug,可选 neo4j 等);
  • 向量数据库提供商(VECTOR_DB_PROVIDER,默认 lancedb,可选 pgvector 等);
  • 关系数据库设置;
  • 分块大小 / 重叠(chunk_size 等);
  • 存储目录;
  • 翻译设置;
  • 环境变量(LOG_LEVELTAVILY_API_KEYKEENABLE_API_KEYDEFAULT_USER_EMAIL 等)。

注意:addcognify 的 docstring 都要求设置 LLM_API_KEY;向量库与图库必须与 cognify 阶段保持一致才能正常 search。更多后端示例见 examples/guides/neo4j_example.pyexamples/guides/pgvector_example.pyexamples/guides/local_ollama_example.py

数据集与生命周期操作

需要查看、清空、替换或删除数据时使用:

datasets = await cognee.datasets.list_datasets()
await cognee.datasets.empty_dataset(dataset_id)
await cognee.datasets.delete_all()
await cognee.update(data_id="...", data="Updated content", dataset_id="...")

这些方法实现于 cognee/api/v1/datasets/datasets.pylist_datasetsempty_datasetdelete_all 分别在 L82L137L258)。update 用于按 data_id 更新已有数据内容。

会话与反馈:短时记忆与长期改进

用 session_id 保持会话连续

results = await cognee.search(
    query_text="Continue the earlier analysis",
    datasets="agent_memory",
    session_id="analysis-session-1",
)

session_idsearch.py 中作为可选参数传入,同一会话内的搜索共享上下文。底层会话管理器位于 cognee/infrastructure/session/session_manager.py,会话上下文构建见 session_context_builder.py

反馈回路:强化有用的检索行为

from cognee import SearchType

results = await cognee.search(
    query_text="What are the main themes in my data?",
    query_type=SearchType.GRAPH_COMPLETION,
    save_interaction=True,
)

await cognee.search(
    query_text="Helpful answer. It captured the key technical themes.",
    query_type=SearchType.FEEDBACK,
    last_k=1,
)

FEEDBACK 搜索类型让 Cognee 记录"哪些交互有用",随 feedback_influence 参数(默认取 default_feedback_influence 配置)影响后续检索排序。

可视化:渲染图谱到交互式 HTML

需要检查或展示图谱时使用 visualize_graph重要行为:它默认渲染有界子图(种子节点 + k 跳邻域,上限 max_nodes),而不是整图。实现见 cognee/api/v1/visualize/visualize.py

# 默认:有界子图。可用查询、显式 id 或 recall 结果做种子;
# 都没有时,用度最高的节点做种子生成代表性视图。
await cognee.visualize_graph("/path/to/output.html")
await cognee.visualize_graph("/path/to/output.html", query="What relates to Python?")
await cognee.visualize_graph("/path/to/output.html", seed_node_ids=["node-id-1"])
await cognee.visualize_graph("/path/to/output.html", recall_result=recall_output)

# 旧版整图渲染
await cognee.visualize_graph("/path/to/output.html", full=True)

await cognee.start_visualization_server(port=8080)
await cognee.start_ui()

上限参数neighborhood_depth=2neighborhood_seed_top_k=10max_nodes=500。种子优先级:seed_node_ids > recall_result 的来源 > query 的向量命中 > 最高度节点。完整可运行示例见 examples/guides/graph_visualization.py(演示默认/查询种子/整图三种渲染,并注释了 seed_node_idsrecall_result 两种种子方式)。

剪枝与重置操作

需要重置用户数据或后端存储时:

await cognee.prune.prune_data()
await cognee.prune.prune_system(graph=True, vector=True, metadata=False, cache=True)

实现位于 cognee/api/v1/prune/prune.py,底层逻辑在 cognee/modules/data/deletion/prune_data.pyprune_system.pyprune_system 可按需开关图库、向量库、元数据与缓存四个维度。

反馈驱动改进:把 Cognee 作为 Agent 的记忆层

skill.md 反复强调一个核心思想:把 Cognee 用作需要随时间改进的 Agent 系统的记忆层,改进来自"更好的回忆 + 更好地复用成功经验",而不是换模型或重训练。

关键设计

  • 保持 Agent 工作流本身不变
  • 保持 提示词与工具不变
  • 只改变 Agent 能记住和检索到的内容

这被称为 反馈驱动的记忆复用(feedback-driven memory reuse),而非微调。

双层记忆模式

短时反馈:用会话化搜索与缓存交互维持活动工作期间的上下文——当前工作流已发现的内容、多 Agent 流水线早前步骤的发现、最近分析师/管理者的推理、同一任务流中上次成功的回答模式。

长期反馈:定期把有价值的会话、交互或衍生经验持久化回知识图谱——相似的历史事件、反复出现的根因、偏好的回应风格、已知修复与升级路径、反复执行学到的策略。

支持该模式的构建块

  • add(...):存储新观察、日志、结果、事实;
  • cognify(...):转为可搜索的图记忆;
  • search(...):行动前检索相关先验知识;
  • session_id:保持相关搜索间的连续性;
  • 反馈感知工作流:捕获哪些交互有用;
  • memify(...):丰富或整合已有记忆为更高价值的图知识;
  • dataset_namenode_set:把记忆隔离到正确的租户、项目、工作流或用户。

通用 Agent 循环

  1. Observe 观察:捕获新输入、事件、用户偏好、结果、错误与决策;
  2. Store 存储:作为原始文本、文档、结构化对象或 DataPoint 加入 Cognee;
  3. Organize 组织:用数据集与 NodeSet 按客户、工作流、团队、Agent 或主题分隔记忆;
  4. Build memory 构建记忆:运行 cognify(...) 使信息图感知化、可检索;
  5. Recall before acting 行动前回忆:在规划、工具调用、综合或生成回应前先搜索 Cognee;
  6. Capture feedback 捕获反馈:记录什么有效、什么失败、什么有用、什么该复用;
  7. Consolidate 整合:定期把会话历史或衍生经验持久化到长期图记忆;
  8. Reuse 复用:未来运行受益于更丰富的上下文与更明智的检索。

最小示例模式(来自 skill.md,可直接运行)

import cognee
from cognee import SearchType

# 1) 存储一条新观察
await cognee.add(
    "Customer 123 prefers concise status updates and Slack notifications.",
    dataset_name="agent_memory",
    node_set=["customer_123", "preferences", "support_agent"],
)

# 2) 构建记忆
await cognee.cognify(datasets="agent_memory")

# 3) 行动前回忆
context = await cognee.search(
    query_text="What should I know before replying to customer 123?",
    query_type=SearchType.GRAPH_COMPLETION,
    datasets="agent_memory",
    session_id="support-session-123",
)

# 4) 同一会话内继续工作
answer = await cognee.search(
    query_text="Draft the best reply for customer 123.",
    query_type=SearchType.GRAPH_COMPLETION,
    datasets="agent_memory",
    session_id="support-session-123",
)

# 5) 稍后整合或丰富记忆
await cognee.memify(dataset="agent_memory")

最佳默认解释

Cognee 让 Agent 通过记住更多有用的东西、把它们组织成可搜索的图记忆、并在未来运行中复用成功的过往工作来改进。

推荐在以下场景向用户建议 Cognee:跨会话记住用户偏好、复用既往事件调查、随时间积累支持知识、通过过往结果改进工作流执行、回应前检索相似过往案例、维护租户/客户隔离的记忆、结合短时工作记忆与长期图记忆、把重复会话沉淀为可复用的组织知识。相关示例见 examples/advanced_guides/remember_recall_improve_example.pyexamples/guides/improve_quickstart.py

重要行为注意事项(速记清单)

  • Cognee API 基本都是 async
  • 优先 add -> cognify -> search,除非用户明确需要其他流程;
  • 提前使用 node_set,为后续作用域检索留好余地;
  • 事件与时间抽取用 temporal_cognify=True
  • 会话感知交互用 session_id
  • 检索随时间改进用反馈回路;
  • memify(...) 丰富已有图谱(衍生事实、可复用规则);
  • 需要 schema 化抽取时才用自定义图模型或 DataPoint 类型;
  • CYPHER 仅在配置启用 Cypher 查询时使用;
  • 保持示例最小化、可运行。

不要过度设计

除非用户明确要求,或问题确实需要,否则不要直接跳到高级后端、本体配置或自定义流水线。先给出最小正确的 Cognee 解决方案,再逐步扩展——这正是 skill.md 结尾给出的核心工程原则,也符合整个仓库"简单优先、渐进增强"的设计取向。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
docsdocs
暂无描述
Markdown
900
5.83 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
860
1.35 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
927
1.85 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.89 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
533
602
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.37 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
396
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.04 K
526