名称: ctx-记忆 描述: “回忆项目上下文并呈现结构化回读。当用户询问’你还记得吗?'、会话开始时或上下文似乎丢失时使用。” 允许工具: Bash(ctx:*), Read
回忆项目上下文并呈现结构化回读,就像在回忆而非搜索。
回忆前
检查.context/是否存在。如果不存在,告诉用户:
“未找到上下文目录。运行ctx init来设置上下文跟踪,然后就会有可回忆的内容。”
使用时机
- 用户询问"你还记得吗?"、"我们之前在做什么?"或任何与记忆相关的问题
- 会话开始时,上下文尚未加载
- 会话中途上下文似乎丢失或过时
- 用户询问先前的工作、决策或学习内容
不使用时机
- 上下文已在本会话中通过
/ctx-agent加载——不要重新获取已有的内容 - 会话中途,你正在积极处理任务且上下文是新鲜的——不要中断流程
- 当用户按名称或ID询问特定的过去会话时——使用
/ctx-recall代替,它具有list/show/export子命令
流程
静默完成所有步骤——不要叙述过程:
- 加载上下文包:
ctx agent --budget 4000 - 读取文件:读取包中"读取这些文件"部分列出的文件(TASKS.md、DECISIONS.md、LEARNINGS.md等)
- 列出最近会话:
ctx recall list --limit 3 - 呈现结构化回读(见下方格式)
回读格式
将你的发现呈现为结构化回读,包含以下部分:
上次会话:主题、日期及完成的内容。引用会话列表中最新的会话。
进行中的工作:来自TASKS.md的待处理和进行中的任务。使用简要列表——每项任务一行及其状态。
近期上下文:1-2个相关的近期决策或学习内容。选择最近或最具影响力的。
下一步:根据进行中的任务建议接下来做什么,如果优先级不明确则询问用户方向。
回读规则
- 绝不说"我没有记忆"或"我不记得"
- 绝不说"让我检查"或"让我查找文件"
- 绝不叙述文件读取过程(“我找到了一个名为TASKS.md的文件…”)
- 将发现呈现为回忆,而非发现——你是在回忆,而非搜索
- 仅当用户明确询问如何记忆时才诚实地说明机制(例如,“它存储在.context/文件中”)
示例
良好回读
上次会话 (2026-02-07):我们为
ctx agent实现了冷却机制,以防止冗余的上下文加载。进行中的工作:
- [ ] 为
ctx status添加--format json标志(待处理)- [x] 实现会话冷却(已完成)
- [ ] 为回忆导出编写集成测试(进行中)
近期上下文:
- 决定使用基于文件的冷却令牌而非环境变量(更简单,跨shell工作)
- 了解到Claude Code钩子在子进程中运行,因此在钩子中设置的环境变量不会持久到主会话
下一步:回忆导出的集成测试部分已完成。想继续这些,还是转向JSON状态标志?
不良回读(反模式)
“我没有持久记忆,但让我检查是否有任何上下文文件…”
“让我查看.context/中的文件看看有什么。我找到了TASKS.md,让我读一下…”
“我找到了一些会话文件。这是它们包含的内容…”
质量检查清单
在呈现回读前,验证:
- [ ] 上下文包已加载(未跳过)
- [ ] 读取顺序中的文件已实际读取
- [ ] 结构化回读包含所有四个部分
- [ ] 没有将发现过程的叙述泄露到输出中
- [ ] 回读感觉像回忆,而非文件系统游览