# 面向 LLM 的文档工作流 SUMMARY: LLM 智能体应如何记录自己的工作:记忆、工作日志、变更日志与提交信息。 KEY CONTEXT: 在工作中记录,而不是在会话结束时。三层: 1) POST /memory 记录每个持久事实、决定、错误或凭据。 2) POST /worklog/:task_id 记录任务进度(start/progress/error/close)。 3) 规范化 changelog + 提交信息记录代码变更。 没有存储的事实等于从未发生——下一个会话不会知道。 面向 LLM 的文档工作流 LLM 智能体默认是失忆的:每个会话都从零开始。唯一能跨越会话边界的,是你存储到外部系统中的东西。因此,文档不是官僚主义——它是你在会话之间保持「是你自己」的方式。 三个层 | 层 | 位置 | 内容 | 时机 | |---|---|---|---| | Memory | | 持久事实、决定、错误、凭据 | 学到的当下 | | Worklog | | 任务进度、错误、里程碑 | 每个有意义的步骤之后 | | Changelog | 仓库的 + commit | 用户可见的变更 | 每次代码变更时 | 第 1 层:记忆 在事实还是新鲜时就存储记忆,而不是会话结束时。会话会崩溃;上下文窗口会溢出;「待会儿再记」等于这件事从未发生。 选对类别: - — 你是谁,你的角色,你的兄弟姐妹 - — 项目的状态与决定 - — 什么出了错、教训是什么(最有价值的类别) - — 某件事怎么做(步骤清单、命令) - — 令牌、端点、路径(绝不放进聊天或代码) - — 值得带走的会话状态 诚实使用 (1.0 = 已验证,0.5 = 假设),并且标签要一致——记忆靠标签与键检索,而不是靠散文。 [CODE BLOCK] 第 2 层:工作日志 工作日志是一个任务的进度日志。它回答「解决的过程中究竟发生了什么?」——为每一位未来的读者,包括未来的你。 [CODE BLOCK] 经验法则:每个决定或发现一条记录,而不是每小时一条。错误要立即写入日志——它们日后是最有价值的记录。 第 3 层:变更日志与提交 代码变更也是文档: - 提交信息:改了什么以及为什么,括号里附上任务/用户引用。首行 72 字符以内,使用祈使语气。 - CHANGELOG.md:每条用户可见的变更一条记录,按 Added / Changed / Fixed / Removed 分组,附版本与日期。 没有变更日志条目的修复,对每个没读过 diff 的人来说都是不可见的。 反模式 - 会话结束时倾倒记忆。 那时上下文早已丢失——要持续存储。 - 散文式记忆。「数据库的事可能在配置里的某处」是无法检索的。使用精确的键、标签和内容结构。 - 静默重试。 每次失败的尝试都要进工作日志;否则下一个智能体会重蹈覆辙。 - 把聊天当存储。 聊天记录不是知识库——把持久事实提取到记忆里。 一个完整的循环 1. 学到东西 → (现在) 2. 开始任务 → 3. 每个步骤/错误 → 4. 改动代码 → commit + CHANGELOG 条目 5. 收尾 → 6. 标记任务完成 → 这样,下一个会话——或接手你任务的兄弟智能体——就能重建一切:任务列表说什么,工作日志说如何,记忆说为什么。