回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复: - 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录) - tmp/(32.4 M,按接续棒命名的过程临时区) - .workbuddy/tmp/(39.5 M) - 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物) - tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留 入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与 接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、 .workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。 排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、 打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
57 lines
3.8 KiB
Markdown
57 lines
3.8 KiB
Markdown
# 会话交接 · 省积分治理(2026-09-15 22:0x)
|
||
|
||
> 用途:本会话(`15ee0d4f`,730 K token,已超预算 6.1 倍)按「会话预算」规则收口。
|
||
> 新会话**只读这一份 + `MEMORY.md`** 即可续上,无需回读长历史。
|
||
|
||
## 一、这件事在做什么
|
||
|
||
**目标**:止住 AI 会话的积分异常消耗。**已定结论(不必重查)**:
|
||
|
||
- **根因** = 对话历史是 **append-only**:工具调用输出(`function_call_result`)一旦生成就**永久留在 messages 里、每轮全量重发**。
|
||
模型无权删自己的历史 ⇒ **唯一能"去掉"的时机 = 输出被生成之前**。
|
||
- **实测数据**(本机 12 会话真实转录 + 宿主日志):
|
||
- 某会话 553 轮 × 平均 42 万 = **2.33 亿 input**,output 仅 **0.35%**(286:1)
|
||
- **33 次缓存全失效**,每次约 50 万 token **按全价**重算
|
||
- 平台参数:`contextWindow = 100 万`、自动压缩阈值 **90%**(`[Compact] tokenCount=900080/1000000`)
|
||
—— 只是"放大器",**不是根因**(用户 2026-09-15 明确纠正过这一点)
|
||
|
||
## 二、已落地的三层机制(**代码即权威,勿只看文档**)
|
||
|
||
| 层 | 文件 / 常量 | 说明 |
|
||
|---|---|---|
|
||
| ① 硬门禁 | `dsh-server-docs/scripts/bash-output-guard.py` | `PreToolUse(Bash)`,拦 6 类"几乎必然巨大"的读命令;**soft 默认 / hard 加严 / off 急停**(`<工作区>/.workbuddy/bash-guard-mode`);异常 fail-open |
|
||
| ② 软告警 | `dsh-server-docs/scripts/stop-dialog-guard.py` | 每轮报「上下文体积 + **上一轮增量** + 工具次数」;阈值 `BUDGET_TOKENS=120000` / `BUDGET_TOOLS=80` |
|
||
| ③ 命令纪律 / 自检 | 同上 + `MEMORY.md §三` | 大输出落盘只读关键行 · `\| head` · `grep -c` · 脚本内聚合;四条自检见下 |
|
||
|
||
**四条"自动发现并上报"**:① 成本异常 ② 门禁疑似误伤(同规则重复命中 ≥3 次)③ 钩子是否被调用(入口即留痕)
|
||
④ 路径自检(hooks 指向失效 / 配置被清空)
|
||
|
||
## 三、验收证据(都已实测,不必重做)
|
||
|
||
- 门禁**回放测试**:今日 12 会话 **4053 条真实 Bash 命令** ⇒ soft 档 DENY **2 条 = 0.05%**,逐条核对**均真阳性**
|
||
(`ls -R $B` / `find` 扫 4 个盘盘符级根)⇒ **对 AI 正常会话 0 误拦**
|
||
- 回放工具:`.workbuddy/tools/guard-replay.py`(可随时复跑)
|
||
- 诊断工具:`.workbuddy/tools/sess-credit-report.py <sid前8位>`、`find-session-by-title.py`
|
||
- 路径自检实测 3/3:真实环境不报 / 指向不存在脚本报 / hooks 被清空报
|
||
|
||
## 四、当前 git 状态
|
||
|
||
- **代码仓** `D:\github\dsh_shenxian`(文档库已并入,`.git` = 代码仓)
|
||
- 本地领先远端 **6 个提交、未 push**:`fff2519` `88aaf98` `3f141c7` `c25609c`(省积分与门禁)
|
||
`3efd685`(并入已删会话的在途成果,27 文件,**未做功能验收**)`03c8363`(省积分机制首版)
|
||
- **工作树 0 残留**;用户对"是否 push"**尚未拍板**
|
||
|
||
## 五、下一步(按优先级)
|
||
|
||
1. **(待用户定)push 那 6 个提交** —— 只有本机有,有丢失风险
|
||
2. **(待用户定 / 建议)整编 `MEMORY.md`** —— 现 12,221 B,上限 12,288,**仅剩 67 B**,
|
||
新状态已写不进;需按文档库 `CODEBUDDY.md` 规模化约定 #8(备份 + token 回扫)
|
||
3. 仍未自动化的缺口:提交/工作树异常 · 会话被删导致的无主成果 · 缓存失效尖峰
|
||
|
||
## 六、产物文件
|
||
|
||
- 信息图(可截图/转发):`会话积分问题与治理_示意图_20260915.html`(工作区根)
|
||
- 当日日志(含全部过程与踩坑):`.workbuddy/memory/2026-09-15.md`
|
||
- ⚠️ **本会话踩过的坑(已修,勿回退)**:Python `%` 格式串裸 `%` 必须写 `%%`(否则静默失效);
|
||
钩子 deny 必须"写日志 + emit"双动作;`Edit` 是替换不是追加;bash heredoc 会吞反斜杠
|