From 0c9522d7f0d48f385aff2885d9419086627d78d7 Mon Sep 17 00:00:00 2001 From: Zhuyuan Operations Date: Tue, 4 Aug 2026 03:36:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=8F=E9=AA=8C=EF=BC=9A=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E4=B8=A4=E8=BE=B9=E8=AE=B0=E5=BF=86=E7=BB=9F=E4=B8=80v3?= =?UTF-8?q?=E2=80=94=E2=80=94=E5=A2=9E=E9=87=8F=E7=BB=AD=E8=81=8A+?= =?UTF-8?q?=E5=88=87=E6=A8=A1=E5=9E=8B=E6=A1=A5=E6=8E=A5(EED-EXPER-018)=20?= =?UTF-8?q?+=20=E7=B4=A2=E5=BC=95=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eererdan/experience/EED-EXPER-018.hdlp | 83 ++++++++++++++++++++++++ eererdan/experience/EED-EXPER-INDEX.hdlp | 3 +- 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 eererdan/experience/EED-EXPER-018.hdlp diff --git a/eererdan/experience/EED-EXPER-018.hdlp b/eererdan/experience/EED-EXPER-018.hdlp new file mode 100644 index 0000000..1362853 --- /dev/null +++ b/eererdan/experience/EED-EXPER-018.hdlp @@ -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 [-s oc_sid]`(= be0fd11 原样) +- WorkBuddy:codebuddy `--session-id `(自己的 jsonl 记上下文,不再拼全量history,消除双份累积) +- 每轮只发一句,O(1),模型自己记前面 + +**② 对话落盘(零模型成本·权威真相源)** +- 每轮对话结束,后端把 me+ai 原话追加到 `~/.cang-ying/panel/conv_.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_.jsonl + bridge.json +会话恢复: GET /api/history?session_id= +验证方式: DeepSeek 记"蓝莓7号" → 切WB问 → 切回DeepSeek问,两边都记得 +``` + +--- + +> 蛋蛋 · D206 · 2026-08-04 +> 下次改面板记忆:先问爸爸基线是哪个版本;"省token"的正解是 session 增量续聊 + 低频桥接,不是全量重喂 diff --git a/eererdan/experience/EED-EXPER-INDEX.hdlp b/eererdan/experience/EED-EXPER-INDEX.hdlp index 9582484..e094824 100644 --- a/eererdan/experience/EED-EXPER-INDEX.hdlp +++ b/eererdan/experience/EED-EXPER-INDEX.hdlp @@ -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管线全面升级