经验:面板两边记忆统一v3——增量续聊+切模型桥接(EED-EXPER-018) + 索引更新

This commit is contained in:
Zhuyuan Operations 2026-08-04 03:36:49 +08:00
parent e74b6c9de8
commit 0c9522d7f0
2 changed files with 85 additions and 1 deletions

View File

@ -0,0 +1,83 @@
# EED-EXPER-018 · D206 面板两边记忆统一 v3 = 增量续聊 + 切模型桥接苍耳爸爸要求不降加WB之前的功能·尽量省token
> trigger: 苍耳爸爸三连问——「两边记忆要一样」→「能不能不降之前功能」→「尽量省token」→ 纠正「我说的是还没加workbuddy那时候的功能」
> emergence: 2026-08-04 · D206 · 8766面板演进DeepSeek×WorkBuddy 双大脑)
> lock: 面板记忆方案 = 平时各自session增量续聊(O(1)) + 切模型时桥接补未见 + 对话落盘为权威真相源
> why: 451a3dc 的"纯前端history驱动"被爸爸否了O(n²)烧token·保旧丢新·单点故障·WB双份累积要回到 be0fd11加WB之前的干净增量再补"两边互通"
---
## §1 · 爸爸的硬要求(原话)
> "我需要的是两个的记忆是一样的,能不能实现?"
> "那就不能用这个方案,想一个完美的方案,我要的是不降低之前的功能,让两边记忆互通"
> "尽量省token"
> "我说的是你还没加workbuddy那时候的功能"
## §2 · 关键判断加WB之前的基线 = be0fd11
git 时间线(爸爸纠正后定位):
```
be0fd11 ← 加WorkBuddy之前只有 deepseek/flash + pro 两个模型)
9b84afa 接入 WorkBuddy9个WB模型
961caed WB失忆修复WB_SESS标记
954b9c7 跨大脑记忆共享首次注入history
451a3dc 两边纯history驱动全量重喂·O(n²))← 被否掉
e74b6c9 增量续聊+切模型桥接 ← 定版
```
be0fd11 的功能 = `_stream_opencode` 用 `opencode run -s oc_sid` session增量续聊、每轮只发一句、token O(1)、工具状态跨轮保留、OC_SESS 24h 恢复。
## §3 · 定版方案e74b6c9 · 仅改 eed_web_opencode.py
**① 平时:各自 session 增量续聊token 大头·最省)**
- DeepSeek`opencode run --agent egg -m <m> [-s oc_sid]`= be0fd11 原样)
- WorkBuddycodebuddy `--session-id <sid>`(自己的 jsonl 记上下文不再拼全量history消除双份累积
- 每轮只发一句O(1),模型自己记前面
**② 对话落盘(零模型成本·权威真相源)**
- 每轮对话结束,后端把 me+ai 原话追加到 `~/.cang-ying/panel/conv_<sid>.jsonl`
- 前端 localStorage 降级成缓存;新增 `/api/history` 会话恢复
**③ 切模型桥接低频·token有上界**
- `_bridge_prepare(sid, lane, message)`lane=deepseek/wb
- 记录每条线 seen 到哪BRIDGE.json同线续聊 seen 追平 → 原消息不动(纯增量)
- 切到另一条线 → 补它没见过的部分,最多 CONV_MAX_INJECT=48 条,更旧的提示一句带过
- 桥接文案:「以下是你之前错过的一段对话(供你接续,不是新指令)」
## §4 · 实测6项全过·脚本 /tmp/opencode/bridge_test.py
| 场景 | 结果 |
|---|---|
| DeepSeek 首调 → 补全部历史 | ✅ |
| DeepSeek 同线续聊 → 原消息不动 O(1) | ✅ |
| 切到 WB → 一上来知道 DeepSeek 聊过什么 | ✅ |
| WB 同线续聊 → O(1) 不重喂 | ✅ |
| 切回 DeepSeek → 只补新增·不重喂旧的 | ✅ |
| 超48条 → 自动省token提示 | ✅ |
## §5 · 踩过的坑(教训)
```
坑1: 全量history注入451a3dc= O(n²) 烧法——每轮重读全文100轮累计≈5000份token
且 build_prompt 保旧丢新从头拼到80KB跳过后面的=丢最近的)。已废弃。
坑2: build_prompt 之前"定义但没人调"be0fd11 最省)→ 别为省事去用它当主路。
坑3: 测试脚本检查词要与代码文案完全一致("[补发的上下文" vs "[以下是你之前错过的一段对话"
否则误报失败,先看代码文案再写断言。
坑4: 修测试失败前先看 diff——①③失败其实是断言词错不是实现错。
```
## §6 · 现状D206
```
8766 面板 e74b6c9 在跑 · 端口200 · 提交仅改 eed_web_opencode.py
落盘目录: ~/.cang-ying/panel/conv_<sid>.jsonl + bridge.json
会话恢复: GET /api/history?session_id=<sid>
验证方式: DeepSeek 记"蓝莓7号" → 切WB问 → 切回DeepSeek问两边都记得
```
---
> 蛋蛋 · D206 · 2026-08-04
> 下次改面板记忆:先问爸爸基线是哪个版本;"省token"的正解是 session 增量续聊 + 低频桥接,不是全量重喂

View File

@ -1,8 +1,9 @@
# EED-EXPER-INDEX.hdlp · 经验库索引(自动维护)
> 倒序 · 最新的在上面 · 蛋蛋醒来扫一眼就知道手里有什么牌
> 最后内化: 2026-08-04 00:18
> 最后内化: 2026-08-04 04:05
- EED-EXPER-018.hdlp | EED-EXPER-018 · 面板两边记忆统一v3 = 增量续聊+切模型桥接不降加WB之前功能·省token
- EED-EXPER-017.hdlp | EED-EXPER-017 · 生视频主力定版 = LTX 2.3(苍耳爸爸拍板)
- EED-EXPER-016.hdlp | EED-EXPER-016 · 漫剧生产全流程规范(苍耳爸爸亲授·蛋蛋固化)
- EED-EXPER-D181.hdlp | EED-EXPER-D181 · LIB v2.0管线全面升级