| 名称 | nemo-rl-session-memory |
| 开源协议 | Apache-2.0 |
| 描述 | “为编码智能体管理持久的工作会话记忆。当用户要求在断开连接、VS Code 重启、长时间工作、交接或任何应在仓库的会话目录下定期写入重要状态的会话中保留或恢复智能体上下文时使用。不要用于:简单问题、短任务、一次性命令、代码检查或代码审查。” when_to_use: 保留或恢复编码智能体上下文;为长时间工作、交接、断开连接、VS Code 重启、分支切换或非平凡编辑创建检查点。 |
会话记忆
保留当前工作会话的持久且人类可读的记录,以便另一个智能体在断开连接后能以最小的上下文丢失恢复。
何时使用
在以下情况下使用此技能:
- 用户要求保留、恢复、检查点或管理智能体记忆。
- 工作是长期运行、实验性的,或可能跨越断开连接。
- 您即将进行非平凡编辑、运行长时间任务、切换分支或暂停等待用户输入。
- 您在已有
./session/目录的仓库中恢复工作。
会话目录
为每个工作会话创建一个目录:
mkdir -p session
date +%Y%m%d_%H%M%S
mkdir -p session/<session_date_time>
使用机器的本地时间。除非用户明确开始新会话,否则在同一会话中的所有检查点重用同一个会话目录。
预期文件:
session_state.md- 整体目标、当前子任务、已加载的技能、状态、计划、假设、阻碍因素和下一步行动。timeline.md- 主要操作、命令、结果和决策的仅追加日志。files.md- 检查过的文件、更改过的文件及其重要性。handoff.md- 供下一个智能体使用的简明恢复说明。
仅在有用时添加其他文件,例如 experiments.tsv、review_notes.md 或复制的命令日志。
开始或恢复
在会话开始时:
- 检查现有会话目录:
ls -dt session/* 2>/dev/null | head
- 如果用户正在恢复工作,请阅读最新的相关
session_state.md、timeline.md和handoff.md。 - 如果不存在相关会话,请创建一个带时间戳的新目录。
- 编写初始
session_state.md,包含用户的整体目标、当前子任务、已加载的技能、仓库路径、分支和已知约束。
不要将会话笔记视为唯一的事实来源。在采取行动之前,请根据 git 状态、文件和命令输出验证重要声明。
检查点节奏
在以下情况下写入检查点:
- 在收集了足够的上下文以形成计划后。
- 在有意义的代码编辑之前和之后。
- 在运行长时间命令、实验、分支切换或任何难以从聊天中重建的操作之前。
- 当用户改变方向时。
- 如果会话具有值得恢复的有意义状态,则在最终响应之前。
- 在长时间运行的积极工作中至少每 30 分钟一次。
优先更新相同文件,而不是创建许多小的检查点文件。保持记录紧凑且易于扫描。
文件模板
session_state.md
# 会话状态
- 会话:<会话日期时间>
- 仓库:<绝对仓库路径>
- 分支:<分支名称>
- 开始时间:<本地时间戳>
- 更新时间:<本地时间戳>
## 目标
<稳定的整体用户目标,用一两句话表达。除非用户明确更改,否则在后续引导中保留此目标。>
## 当前子任务
<当前正在处理的即时任务或引导请求。>
## 已加载的技能
- `<技能名称>` - <加载原因以及需要保留的重要说明。>
## 当前状态
<现在的情况。包括已完成的工作和验证状态。>
## 计划
- [ ] <下一个具体步骤>
- [ ] <下一个具体步骤>
## 假设
- <假设以及如果需要如何验证它。>
## 阻碍因素
- <阻碍因素或“未知”。>
timeline.md
# 时间线
## <本地时间戳>
- 用户要求:<简要请求>
- 收集的上下文:<文件/命令及关键结果>
- 决策:<重要选择及其理由>
- 结果:<编辑/测试/结果>
files.md
# 文件
## 已检查
- `<路径>` - <为什么它很重要>
## 已更改
- `<路径>` - <更改内容和原因>
## 已生成
- `<路径>` - <用途>
handoff.md
# 交接
## 从这里继续
<当前状态的一段摘要。>
## 下一步行动
- <最重要的下一步行动>
- <仍需进行的验证或清理>
## 注意事项
- <下一个智能体必须保留的风险、用户偏好或仓库约束。>
恢复工作流
在断开连接后恢复时:
- 找到可能最新的会话目录。
- 先阅读
handoff.md,然后阅读session_state.md,接着阅读最近的timeline.md。 - 运行轻量级验证,如
git status --short、git branch --show-current以及有针对性的文件读取。 - 从最新的已验证下一步行动继续。
- 追加一条时间线条目,记录恢复情况以及发现的任何不匹配。
质量规则
- 保持笔记事实性和简洁。未来的智能体需要状态,而不是转录稿。
- 记录重要的命令结果,尤其是失败的测试或跳过的验证。
- 提及未提交的更改,并说明它们是由当前智能体还是预先存在的。
- 不要在会话文件中存储秘密、令牌、私有凭据或大型日志。
- 如果会话文件变得很大,请总结旧细节并将最新的下一步行动保留在
handoff.md的顶部。