Skip to content

feat(summary): 增加项目级总结记忆 - #727

Merged
deepcoldy merged 8 commits into
deepcoldy:masterfrom
wunameya:feat/summary-project-memory
Aug 5, 2026
Merged

feat(summary): 增加项目级总结记忆#727
deepcoldy merged 8 commits into
deepcoldy:masterfrom
wunameya:feat/summary-project-memory

Conversation

@wunameya

@wunameya wunameya commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

改了什么

  • 在 BotConfig 中新增 summaryMemorysummaryMemoryPath
    • summaryMemory 控制是否启用 /summary 项目级记忆。
    • summaryMemoryPath 控制记忆文件路径,默认 summary.md,支持相对当前项目根目录或绝对路径。
  • 在 Dashboard 的 Bot 设置页增加 /summary 记忆配置:
    • 开启记忆 开关。
    • 记忆文件路径 输入框。
  • 开启记忆后,@bot /summary 会要求 agent 只把本次总结追加写入配置的记忆文件,并把实际写入的 Markdown 原样发给用户确认。
  • 后续普通问题会注入保守复用规则:如果配置的记忆文件存在,需要先读取;只有 PSM、环境、任务 ID、节点、错误现象等必要条件完全一致,才可以复用历史答案,否则只能作为排查参考。
  • /summary xxx 的尾部文字只在 summaryMemory 开启时作为硬边界生效;未开启记忆的 bot 保持原有 /summary 语义。
  • 显式边界采用 boundary-first 语义:先按用户给出的边界裁剪历史,再生成写入记录;普通群扫描仍受 limitsinceHours 和上次本 bot /summary 边界约束,避免边界未命中时翻完整个群历史。

为什么

现有 /summary 只生成一次性总结,不能把排查结果沉淀到项目目录。这个改动提供一个用户显式触发、项目本地保存的问题解决记录本,用于后续相同条件问题的保守复用。

同时,记忆行为必须是 opt-in:不开 summaryMemory 的 bot 不应因为 /summary 后带文字而改变原有历史窗口语义,避免影响所有现有用户。

影响面

  • 默认不改变现有 /summary 行为;只有配置 summaryMemory: true 的 bot 会启用写入记忆和显式边界语义。
  • 默认记忆路径为 summary.md;配置 summaryMemoryPath 后,agent 会按该路径写入和读取。
  • 相对路径由 agent 按当前项目根目录解析;绝对路径按配置原样使用。
  • Dashboard、BotConfig 解析、/botconfig 配置卡和 /summary prompt 构造均同步支持新字段。

验证

  • PATH="$HOME/.nvm/versions/node/v22.23.1/bin:$PATH" pnpm tsc --noEmit
  • PATH="$HOME/.nvm/versions/node/v22.23.1/bin:$PATH" pnpm vitest run test/summary-command-window.test.ts test/event-dispatcher.test.ts test/bot-registry-grant.test.ts test/dashboard-bot-payload.test.ts test/codex-app-clean-prompt.test.ts
  • PATH="$HOME/.nvm/versions/node/v22.23.1/bin:$PATH" pnpm vitest run test/dashboard-bot-defaults-layout.test.ts test/dashboard-bot-payload.test.ts test/bot-config-store.test.ts

Co-authored-by: TRAE CLI <noreply@bytedance.com>
@wunameya
wunameya requested a review from deepcoldy as a code owner August 4, 2026 07:55
@1330482928
1330482928 self-requested a review August 4, 2026 08:39
wenfengyu and others added 7 commits August 4, 2026 16:56
Co-authored-by: TRAE CLI <noreply@bytedance.com>
Co-authored-by: TRAE CLI <noreply@bytedance.com>
Co-authored-by: TRAE CLI <noreply@bytedance.com>
bots-json 与 slash-commands(中英文)补充项目 summary 记忆的新语义:
- summaryMemory 开关 + summaryMemoryPath 路径字段(相对项目根/绝对路径,默认 summary.md)
- 仅记忆开启时 /summary 后随文字作为硬边界、miss 不回退宽范围
- 关闭时后随文字仅为侧重提示
- 沙盒下绝对路径需自行加进 sandboxPaths.readWrite 的提示
按 codex 复审:
- 边界选择改「最近一条」(实现取最后命中,非第一条)
- miss 行为改「向 agent 交 boundary-not-found 错误+空历史,写入指令仍执行」(daemon 不直接向用户报错)
- 沙盒提示改「加已存在父目录」(worker spawn 过滤不存在路径,新文件会被丢),并覆盖 ../ 逃逸的相对路径
- safety cap 说明标注显式边界会越过上限(话题群全绕/普通群 sinceHours 未约束)
申晗拍板方案 B:接受「显式边界优先于 limit/sinceHours」为有意产品语义
(用户明确说从哪条起就从哪条起),不改代码。文档从「注意/越过上限」的
告警口吻改为「按设计优先」,并提示不想读旧内容就别带边界文字。
按 codex 收尾建议:显式边界在话题群/sinceHours 不受 summaryRange 约束,
末句改为「不带边界文字最可靠;普通群可再调低 limit」,避免误以为 cap 仍生效。
@wunameya wunameya changed the title feat(summary): add project summary memory feat(summary): 增加项目级总结记忆 Aug 5, 2026
@deepcoldy
deepcoldy merged commit 97395d4 into deepcoldy:master Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

🚀 Released in v3.9.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants