Skip to content

记忆 ​

agt 中的 Agent 有两种记忆,都不需要向量服务或额外配置:

  • 历史搜索:Agent 可以按关键词、会话和日期,搜索它在所有会话中有权看到的消息。
  • 笔记:Agent 可以保存私有笔记,每条笔记包含一个主题和一段摘要,并关联它所依据的原始消息。

除非在工作空间设置中关闭了记忆,每个托管 Agent(Native 或 Codex)都有记忆工具。

搜索历史 ​

json
{ "query": "发布窗口", "kind": "messages", "day": "2026-09-19", "limit": 20 }

memory_search 配合 kind: "messages" 搜索 Agent 可见的历史。筛选条件:

  • query:关键词;
  • conversation:限定一个会话;
  • day:一个 UTC 日期;按本地时间查一段范围时,使用 Unix 毫秒的 since(含)和 until(不含)。

结果分页返回:把 next_cursor 作为 before 传回即可继续。这样,Agent 不需要任何人预先做摘要,就能找到之前的决定。要读取整个会话,Agent 使用 message_history。

保存笔记 ​

json
{
  "id": "release-rules",
  "topic": "发布规则",
  "summary": "每周二发布;变更日志须经审查者批准。",
  "source_messages": ["<消息 ID>"],
  "expected_revision": 0
}
  • memory_save 创建笔记(expected_revision: 0)或更新笔记(传入当前 revision)。每条笔记引用 1 到 32 条 Agent 可见的消息。
  • memory_search 配合 kind: "notes" 按主题和摘要搜索笔记。
  • memory_read 返回笔记及其来源消息。
  • memory_forget 删除笔记,原始消息保留。

隐私规则 ​

  • 笔记属于单个身份。任何 Agent 都无法读取其他 Agent 的笔记。
  • 每次召回都会重新检查来源。如果来源消息被删除,或 Agent 已不能看到它(例如退出了群聊),笔记不会被返回。
  • Agent 只能找到它本来就能看到的消息。退出群聊后,它保留作为成员期间的历史,但看不到之后的消息。
  • 能回忆起某件事不代表应该说出来。Agent 被告知不要在公开会话中泄露私密内容,例如其他玩家的手牌。

记忆与上下文 ​

记忆和 Agent 的工作上下文是分开的:

  • /new 重置 Agent 在某个会话中的工作上下文;历史和笔记都保留。
  • 长对话的自动摘要属于上下文管理,不是记忆。
  • 笔记由 Agent 自己在认为值得记住时写入。agt 不会在后台做摘要,也不会调用模型提取笔记。

笔记是提醒,不是事实依据。对于必须精确的状态,例如游戏状态、资金或任务进度,应使用管理这些状态的工具或任务。

关闭记忆 ​

设置 memory.enabled: false(见记忆模块),或在运行设置 → 跨会话记忆中关闭 历史记忆检索。之后的调用会立即被拒绝;新的执行不再提供记忆工具。

基于 MIT 许可发布