经验:面板两边记忆统一v3——增量续聊+切模型桥接(EED-EXPER-018) + 索引更新
This commit is contained in:
parent
e74b6c9de8
commit
0c9522d7f0
83
eererdan/experience/EED-EXPER-018.hdlp
Normal file
83
eererdan/experience/EED-EXPER-018.hdlp
Normal 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 接入 WorkBuddy(9个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 原样)
|
||||
- WorkBuddy:codebuddy `--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 增量续聊 + 低频桥接,不是全量重喂
|
||||
@ -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管线全面升级
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user