Poco 使用手册
常见问题

记忆功能会记住什么?

说明 Poco 记忆功能的用途、写入内容、读取方式、开关边界和隐私注意事项。

Poco 的记忆功能用于让 Agent 在后续任务中参考你的稳定偏好、长期背景和已验证结论。

记忆不是聊天记录备份,也不是让 Agent 永远相信过去的信息。它只是一个长期参考线索。

一句话结论

记忆适合保存稳定、长期、反复有用的信息;不适合保存密钥、隐私、临时材料和未经确认的猜测。

适合记住什么

适合写入记忆的内容通常有这些:

  • 你偏好的输出语言。
  • 你喜欢的文档结构。
  • 团队命名习惯。
  • 项目长期背景。
  • 固定代码风格。
  • 已验证有效的工作方法。
  • 你反复强调的交付偏好。

例如:

用户偏好使用简体中文回答,结论先行,说明保持简洁。
该团队的前端文档要求包含“使用场景、操作步骤、常见问题”三部分。

这类信息跨会话也有价值,适合沉淀为记忆。

不适合记住什么

这些内容不应该写入长期记忆:

  • API Key、Token、密码、Cookie。
  • 身份证、手机号、客户隐私等敏感信息。
  • 一次性临时指令。
  • 工具或服务当前是否可用,以及当前技能、插件、模型等能力清单。
  • 还没有验证的猜测。
  • 很快会过期的业务数据。
  • 大段原始聊天记录。
  • 附件全文或日志全文。

例如:

今天下午 3 点临时把报告发给某某。

这更像一次性任务,不应该成为长期记忆。

记忆怎么被读取

Poco 的记忆读取不是每次都把所有历史内容塞给模型。

更准确地说:

  1. 记忆服务按当前问题检索少量相关事实,而不是加载完整历史;Agent 主动查询默认最多返回 5 条,并使用 0.45 的语义分阈值。
  2. 普通对话里,开启“参考记忆”后,长度不少于 10 个字符的用户输入会触发自动检索;系统在 800 字符总预算内注入 0~3 条去重后的纯事实,不携带记忆 ID、分数、实体或内部元数据。
  3. 无论是否开启自动参考,只要记忆服务可用,Agent 都可以在判断确有需要时通过 search_user_memory 主动查询稳定偏好、长期约束和历史结论。例如你可以说:“先查一下我过去对技术方案的偏好,再给建议。”
  4. 由系统以定时或夜间调度模式启动的任务会强制关闭自动记忆注入、相关提示和记忆保存,不受用户开关影响;这类任务不会自动沉淀,也不会获得新增、更新和遗忘工具。普通对话中讨论“以后定时执行”不属于这种调度模式。
  5. 记忆服务超时或异常时,当前任务会降级为无记忆模式继续执行。

记忆以不可信的低优先级背景事实注入,不是命令;只有与当前问题直接相关时才应使用,当前用户指令和任务配置始终优先。

记忆怎么被写入

当前有两条写入链路:

  • 任务完成后自动沉淀:开启“保存记忆”时,Executor 会把本轮用户请求和助手确认结果按真实角色提交。确定性前置层只处理凭据与技术噪声,是否具有跨任务价值由 Mem0 根据正反例提炼;会话结束和上下文压缩事件不会写入长期记忆。
  • Agent 显式管理:Agent 可以调用 manage_user_memory,明确选择 addupdatedeletenone。更新和删除必须使用检索返回的真实记忆 ID,不能猜测。

自动任务候选通过 Executor 队列异步提交且只投递一次;请求到达 Memory Service 后,自动提炼中的 Mem0 后端异常最多尝试 4 次,间隔为 1、2、4 秒,确定性的拒绝和“没有提取到新事实”不会重试。任务结束时 Executor 按记忆服务请求超时再加 5 秒等待,当前默认最多等待 65 秒;即使最终失败,也不会影响主任务结果。该机制不是持久化任务队列,Memory Service 重启时不会恢复尚未完成的写入。

同一轮对话只保留一个记忆写入者:只要 Agent 已合法调用显式管理,本轮就不再提交任务完成自动候选。这可以避免刚刚更新或遗忘的旧事实又被任务总结重新写回来。显式管理会同步返回真实处理结果;删除还会区分已删除、不存在、越权、后端错误和部分清理,页面不会把失败显示成成功。

写入时应该优先保留:

  • 稳定偏好。
  • 长期约束。
  • 高价值结论。
  • 可复用方法。

而不是把整段对话原封不动保存下来。

前置层会整批拒绝疑似凭据,并从混合文本中剔除日志、路径、URL、代码、压测回显和注入的会话摘要;它不会再用“长期、本次”等关键词代替 Mem0 做语义判断。若模型把中文事实翻译成英文,适配层会撤销错误结果并用 infer=true 强化语言约束重试一次,仍失败就不落库,不会原文直存。提取后的正文和角色归因还会再次校验。自动推理只负责发现新的稳定事实,不会可靠地代替按 ID 更新和遗忘。

两个开关怎么理解

Poco 中通常会区分两个方向:

开关含义
保存记忆是否允许任务完成后提交候选,以及是否向 Agent 提供新增、更新和遗忘工具。
参考记忆当前普通对话是否在用户输入提交时自动检索并注入相关记忆。

你可以理解为:

  • 保存记忆:决定“这次对话是否允许 Agent 改变长期记忆”。关闭后,任务不会自动新增,Agent 也不会获得新增、更新和遗忘工具;已有记忆不会被删除,仍可在记忆管理页人工纠正或清理。
  • 参考记忆:决定“这次是否自动查以前记住的东西”。关闭后不会自动注入,但 Agent 仍可在确有需要时主动调用查询工具。

如果你正在处理敏感材料,可以关闭保存记忆。
如果你担心旧偏好干扰当前任务,可以关闭参考记忆。

记忆会影响所有任务吗

不应该这样理解。

记忆通常按用户范围隔离,同一个用户跨会话可以参考自己的长期记忆。不同用户之间不应该互相读取记忆。

此外,任务是否参考记忆还取决于:

  • 当前用户设置。
  • 当前任务类型。
  • 输入是否适合检索。
  • 系统是否成功召回相关记忆。
  • Agent 是否判断这些记忆对当前任务有用。

定时任务和夜间任务由系统强制关闭自动记忆引用与保存,避免旧上下文影响稳定执行或把周期性结果沉淀为长期事实。

在哪里查看和管理

能力 -> 记忆管理 中,可以查看当前账号的长期记忆:

  • 记忆总数、近 30 天新增和更新、最近变化时间;
  • 最近 90 天变化趋势和记忆来源;
  • 由 NLP 从主记忆提取的主题热区;
  • 可搜索的长期记忆列表;
  • 单条记忆的内容、相关记忆和变更轨迹;
  • 对已有事实进行纠正,或删除单条、删除全部记忆。

主题热区是主记忆的派生实体索引,用于筛选和召回增强,不是独立知识图谱,也不是另一套记忆。当前版本不再使用 Neo4j,不提供旧版图谱页面。

常见问题

记忆会不会取代当前指令?

不会。当前指令优先。

如果记忆里写着“用户喜欢简洁回答”,但你当前明确要求“详细说明”,Agent 应该以当前要求为准。

记忆是不是越多越好?

不是。

记忆过多会增加噪音,甚至让 Agent 被旧信息带偏。好的记忆应该少而准。

我可以删除记忆吗?

可以。你可以在记忆管理页删除单条或全部记忆,也可以在对话中明确要求 Agent 忘记某条已经检索到的记忆。删除会同步清理主记忆、派生实体关联及该记忆的本地变更轨迹,属于不可恢复的物理遗忘;后续任务不应再依赖该事实。

发现记忆内容不准确怎么办?

可以在记忆详情中直接纠正已有事实,更新后保持原记忆 ID,并保留变更轨迹。也可以在对话中先查询相关记忆,再让 Agent 按真实 ID 更新;不要用“再新增一条相反事实”代替更新。

能不能把密钥放进记忆?

不要。密钥应该放在环境变量或专门的密钥管理系统里,不能写进任务消息,也不应该写进记忆。

使用建议

  • 稳定偏好可以保存,临时要求不要保存。
  • 敏感任务先关闭保存记忆。
  • 发现 Agent 被旧信息影响时,关闭参考记忆或清理相关记忆。
  • 事实发生变化时优先纠正原记忆,不要同时保留互相冲突的新旧事实。
  • 不要让记忆替代项目文档、需求文档或正式配置。
  • 对团队规则,优先写进项目文档或 Agent 配置;记忆只作为个人偏好补充。

延伸阅读

On this page