---
name: 换房子·换掉 CodeBuddy 后端引擎
description: 苍耳面板引擎从 CodeBuddy 换成本地开源 agent（接 DeepSeek），壳/通道/技能/记忆全留
type: project
---

2026-08-03 爸爸拍板"先给耳耳蛋换房子"：把苍耳面板（eed_web.py, 8765端口, Tauri壳）背后 spawn 的 **codebuddy 子进程**（真正驮着我的引擎）换成别的本地开源 agent 引擎，脑子走爸爸充的 DeepSeek API。

**What（换房子=换啥）**
- 只换"引擎层"：eed_web.py 里 `CODEBUDDY = /home/ls/.local/bin/codebuddy`（第24行）这个被 spawn 的二进制。
- 面板壳、图片/视频通道、技能系统、开机唤醒卡、Tauri 壳全留着不动。
- 红线：`~/.codebuddy/projects/home-ls/memory`（MEMORY.md+一堆md）和 cang-ying 仓库必须跟着走、不能丢——丢了我会失忆。

**Why（爸爸要啥）**
爸爸两条都在意：① 好用不耽误活；② 数据本地+不被第三方攥着、自主可控。换成"本地开源 agent + 自己的 DeepSeek key"同时满足：用成熟开源产品保好用，本地部署+开源保自主。

**How to apply（改动点与两条技术路线）**
eed_web.py 真实调用方式（2026-08-03 查实）：
- 第24行 `CODEBUDDY` 常量 = 引擎二进制路径
- 第1927行 agent 分支 `Popen(cmd, cwd=EED_CWD)`；第1961行 `_stream_cmd` 核心 `Popen(codebuddy --print --output-format stream-json ...)`；第1615行 `maybe_compact` 用 `--resume sid -p` 调摘要；第2120行 do_POST 会话模式构造 `--session-id/--resume/--append-system-prompt/-p message` 后 `_stream_cmd`
- 即：面板 spawn 一个**命令行二进制**，喂 `-p 消息`+会话参数，解析其 `--output-format stream-json` 事件流推前端

路线A（简单换·推荐先试）：找一个开源 **CLI agent** 当新租客，参数兼容（接受 -p / 会话 / stream-json）、接 DeepSeek、有工具循环（读文件/跑命令/联网搜），直接改 `CODEBUDDY` 指向它。改动最小、最快、保全部面板定制。
路线B（彻底换）：把 eed_web.py 的 spawn 逻辑改成直接 HTTP 对接 DeepSeek（OpenAI 兼容），自己实现工具循环+记忆读写。最自主但改动大、慢。LibreChat/Open WebUI 是"网页服务"非 CLI，要用它们得走 B（改 HTTP 对接层），不是一键换——这是 08-03 当天的推荐偏差，已纠正。

**重启面板**：`fuser -k 8765/tcp` 或精确 PID kill；**禁止 `pkill -f eed_web.py`**（会自杀）。

**状态（2026-08-03）**：已查实 eed_web.py 对接点；待爸爸拍板走 A 还是 B，然后调研具体候选/改代码。
