最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
AI Agent 如何拥有长期记忆?Cognee 知识图谱使用方法
时间:2026-07-15 18:16:01 编辑:袖梨 来源:一聚教程网
一个项目 Agent 记住“发布推迟到周五”并不难,难的是它还要知道:谁提出延期、影响哪条需求、之前为何否决周四,以及新决策是否已经覆盖旧决策。长期记忆要解决的不是保存一句话,而是把事实放回关系网络中。
先把记忆分成快路径和重路径
Cognee 的 remember 有两种用法。带 session_id 时,内容先进入会话缓存,写入快,适合正在发生的对话;不带会话 ID 时,会执行摄取、分块、实体关系抽取、建图与富化,形成永久图记忆。
默认开启自我改进时,会话内容还会在后台桥接到长期图谱。若关闭该选项,缓存里的内容不会凭空变成永久记忆,需要显式运行 improve。失败场景很直接:Agent 在当前窗口记得决定,隔天换会话却查不到,通常是桥接没有完成或写进了另一个数据集。

用一个项目数据集跑通写入与召回
import asyncio
import cognee
async def main():
await cognee.remember(
"支付改版延期到周五,原因是回归测试未完成。",
dataset_name="release_notes"
)
results = await cognee.recall(
query_text="支付改版为什么延期?",
datasets=["release_notes"]
)
for item in results:
print(item.text)
asyncio.run(main())
这里故意限定数据集。省略范围时,召回可能搜索当前用户有权读取的多个数据集,知识越多,噪声也越多。共享数据集还应优先按数据集 ID 控制权限;只凭名称查找,非创建者即使获得读权限也可能解析失败。
图谱让“相关”多一层结构
向量检索擅长找到意思接近的片段,图谱则把实体作为节点、把关系作为边。项目名、负责人、日期、阻塞项和决策可以被连接起来,于是“延期原因”和“受影响需求”不必恰好出现在同一段文字里。

recall 默认会根据问题选择检索策略。关系型问题更偏向图上下文,时间问题会偏向时间检索,精确短语则更适合词法路径。自动路由省掉手工选择;问题写得过于含糊时,它也可能选不到理想路径,关键任务可显式指定查询类型。
三个边界决定记忆是否可信
- 先写后查。
recall不负责初始化数据库;空库直接查询会报前置条件错误。 - 等待索引完成。 数据正在处理时也能查询,但只能看到已经完成索引的部分,结果可能不完整。
- 允许遗忘。 旧政策、错误事实和用户撤回的数据要用
forget清理,不能只靠新增一条相反记录覆盖。
实用做法是给每类 Agent 单独划数据集,短对话写会话缓存,稳定事实进入永久图谱,再用一组固定问题做回归检查。能准确召回只是第一关;能解释记忆属于哪个项目、何时写入,并在规则变化后及时删除,才是可持续的长期记忆。