尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

cognee 的 improve 操作如何把会话记忆沉淀进知识图谱并验证效果

cognee 的 improve 操作如何把会话记忆沉淀进知识图谱并验证效果 cognee 的 improve 操作如何把会话记忆沉淀进知识图谱并验证效果【免费下载链接】cogneeCognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.项目地址: https://gitcode.com/GitHub_Trending/co/cognee在 cognee 中remember()不带session_id时会直接走 add cognify 写入持久知识图谱带上session_id时内容只进入会话缓存并不会立刻进图。这意味着会话结束后如果不做额外操作会话里积累的事实就只留在缓存里无法被不带会话上下文的图谱检索命中。improve(dataset, session_ids[...])的作用就是把指定会话的记忆沉淀进持久知识图谱。本文给出一条可执行的完整路径写入两类记忆 → 记录 improve 前的检索结果 → 执行improve→ 用不带session_id的recall()对比验证沉淀是否生效。准备条件Python 3.10–3.14按 README.md 安装uv pip install cognee。默认使用 OpenAI 作为语言模型与嵌入提供方需要先配置LLM_API_KEY写入环境变量或.env不配 API key 时可以用cognee-cli demo做免 key 的体验。启用会话缓存。仓库示例 examples/advanced_guides/remember_recall_improve_example.py 的注释写明CACHING与CACHE_BACKEND是session_id和improve的前置要求且必须在import cognee之前设置因为 cognee 在导入时读取 env 配置import os os.environ[CACHING] true os.environ[CACHE_BACKEND] fsCACHE_BACKENDfs表示使用文件系统作为会话缓存后端。若关闭CACHINGremember(session_id...)会直接抛错会话记忆层整体不可用。第一步写入两类记忆并关闭自动 improve下面这个脚本基于仓库内的 examples/guides/improve_quickstart.py补上了显式的缓存环境变量保存在任意位置即可运行。import asyncio import os # 必须在 import cognee 之前设置 os.environ[CACHING] true os.environ[CACHE_BACKEND] fs import cognee DATASET demo_dataset SESSION demo_session async def main(): # 持久记忆不带 session_id直接 add cognify 进图谱 await cognee.remember( Einstein developed general relativity., dataset_nameDATASET, self_improvementFalse, ) # 会话记忆带 session_id只写入会话缓存 await cognee.remember( Niels Bohr worked on atomic structure., dataset_nameDATASET, session_idSESSION, self_improvementFalse, ) answer_before await cognee.recall( What did Bohr work on?, datasets[DATASET], ) # 把会话记忆沉淀进持久知识图谱 await cognee.improve(datasetDATASET, session_ids[SESSION]) # 不带 session_id 查持久图谱 answer_after await cognee.recall( What did Bohr work on?, datasets[DATASET], ) print(Before improve:, answer_before) print(After improve:, answer_after) if __name__ __main__: asyncio.run(main())注意self_improvementFalseremember()默认self_improvementTrue此时它会在 add cognify 之后自动跑improve()。示例显式关掉它把improve()的执行时机留给手动调用这样才能清晰地做 improve 前/后的对比。仓库里现成的脚本可以直接运行验证uv run python examples/guides/improve_quickstart.py。它开头会执行cognee.forget(everythingTrue)清空已有记忆副作用明确清掉本地默认环境下的全部数据建议在可丢弃的环境里跑。内容更多的九步完整流程见 examples/advanced_guides/remember_recall_improve_example.py运行前需要LLM_API_KEY已配置。第二步improve 带 session_ids 时实际做了什么improve()的完整阶段说明见 cognee/api/v1/improve/improve.py 的 docstring。传入session_ids时按顺序执行Apply feedback weights——更新会话检索中被用到的图节点/边上的feedback_weight高评分回答的来源节点加权、低评分降权。只有会话中发生过检索即存在used_graph_element_ids引用才会更新权重权重学习率由feedback_alpha控制默认 0.1。Persist session QA——把会话中的问答原文 cognify 进持久图谱写入的节点带node_setuser_sessions_from_cache标记。这一步是“会话内容进图”的核心。Distill sessions——把会话中被门控的 active-guidance 条目整理成以实体为锚点的 lessonsadd cognify 进图谱标记session_learnings没有 gated guidance 的会话不产生任何内容。Default enrichment——提取并索引三元组嵌入triplet embeddings与不带会话直接调用improve()的行为相同。Global context index可选——仅当build_global_context_indexTrue时在图谱文本摘要上构建检索用的 bucket 与 root 摘要。不传session_ids时只执行第 4 步的默认增强。各阶段完成后improve日志会输出例如improve: feedback weights applied from 1 session(s)、improve: session QA persisted from 1 session(s)这样的行可以据此确认阶段是否跑过。第三步用前后两次 recall 对比验证效果验证方法就是脚本里打印的Before improve:/After improve:对比同一个问题What did Bohr work on?两次recall都不带session_id即都只查持久图谱。improve 之前Bohr 这条事实只存在于会话缓存持久图谱里只有 Einstein 那条内容answer_before体现的是图谱当时的检索结果。improve 之后会话问答已被 cognify 进图谱answer_after应当能覆盖会话中提到的内容。两次输出都由 LLM 生成不是固定文本判断标准是两次回答对会话内容的覆盖差异而不是匹配某段固定字符串。图谱层的核对依据沉淀的会话问答节点带node_setuser_sessions_from_cache标记可用cognee-cli -ui启动带 UI 的全栈后在可视化界面中确认这些节点已进入图谱。替代路径通过 HTTP 调用对已部署的 cognee 服务可以直接POST /v1/improve路由实现见 cognee/api/v1/improve/routers/get_improve_router.py{ dataset_name: demo_dataset, session_ids: [demo_session] }请求体必须提供dataset_name或dataset_id之一否则返回 400处理期间出错返回 409。请求字段同时接受 snake_case 与 camelCase 两种写法。只把图谱做默认增强不含会话沉淀也可以走 CLIcognee-cli improve -d dataset。限制与注意点improve()的单个会话会获取会话锁串行执行如果同一个会话已有 improve 在跑后续调用会被跳过并记录日志improve: session %s already being improved, skipping这是设计行为避免重复工作不是错误。反馈权重、会话蒸馏等子阶段是 best-effort 的单个会话出错不会阻塞其余会话或整个improve()流程。build_global_context_indexTrue在run_in_backgroundTrue的后台模式下会被跳过日志会给出警告因为有序后台流水线链式执行尚不支持。build_truth_subspace是默认关闭的 opt-in 开关且只在提供了session_ids时才可能运行。会话记忆层依赖缓存开启CACHING关闭时remember(session_id...)无法使用也就没有可供improve()沉淀的会话内容。完成验证后如果希望图谱进一步衍生检索结构可以在improve()上附加build_global_context_indexTrue仅限非后台模式重新执行除此之外会话记忆沉淀与验证就以“前后两次recall的对比 user_sessions_from_cache节点标记”作为落点。【免费下载链接】cogneeCognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.项目地址: https://gitcode.com/GitHub_Trending/co/cognee创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表