Plan: M1 + M2 (S4, P8, H1, C2) marked done

This commit is contained in:
AnyBot Dev 2026-11-09 16:54:04 +08:00
parent 649c1fcf50
commit c67b07586d
1 changed files with 8 additions and 8 deletions

View File

@ -25,7 +25,7 @@
# 軌 P:產品與分發
## P1. 授權條款 ⛓(社群/貢獻的前件)
## P1. 授權條款 ⛓(社群/貢獻的前件) ✅ 2026-11:Apache-2.0(LICENSE+Cargo.toml+README 授權節)
- 加 `LICENSE`(建議 **Apache-2.0**,與依賴的 agent-desktop-core 一致)+ `Cargo.toml` 加 `license = "Apache-2.0"`。
- `relay/Cargo.toml` 同步。
- ✅ 完成標準:`cargo publish --dry-run` 通過;README 有「授權」章節。
@ -36,7 +36,7 @@
- `docs/protocol.md` 出英文版(開放第三方用戶端)。
- ✅ 完成標準:README 首屏 10 秒內看懂「它跟別的有什麼不同」,有一段 60 秒內的真機影片。
## P3. 逆向工程註解整併(法務風險)
## P3. 逆向工程註解整併(法務風險) ✅ 2026-11:反編譯註解全數改為行為規格;逆向文件移出 repo;驗收 grep=0
- 全 repo 的註解大量引用 `main-core.cjs @727949`、`main-app.cjs`、`CUGrokBotService` 等行號級逆向參考,公開 repo 對 xAI 資產留下行號地圖,法務與公關都難看。
- 做法:把這類註解改寫為**行為規格**(「原版在 macOS 10.14+ 用 UNUserNotificationCenter,授權狀態 0..4 對應 …」),刪去檔案名+偏移量;`GROK_BOT_FEATURES.md`、`GROK_BOT_TOKENS.md`、`ORIGINAL_FEATURES.md` 移出主 repo(內部文件/附件),程式內引用改指向 `docs/specs/` 下的行為規格。
- 重點檔:`src/notify.rs`、`src/axread.rs`、`src/policy.rs`、`src/computer.rs`、`src/app.rs` 開頭註解區塊。
@ -66,7 +66,7 @@
- 做法:技能檔式(Markdown+front matter,相容 skills 慣例)、一鍵從 repo/網址安裝、內建範例包(每日彙報、瀏覽器表單、照片整理…);`docs/` 加「寫技能」指南。
- ✅ 完成標準:第三方可發「AnyBot 技能」repo 並被人一行安裝。
## P8. 平台與工程衛生
## P8. 平台與工程衛生 ✅ 2026-11:.gitea/workflows/ci.yml(build/test/relay;bench 維持人工閘門)
- **Windows**:Cargo 已編 `agent-desktop-windows`,先出「手腳/螢幕」角色的 Windows 版(install 腳本+facts+x11 對應層),桌面全功能二期。
- **CI**:加 `cargo clippy -- -D warnings`、`cargo fmt --check`、`deploy/test/remote_e2e.py` 進 CI、relay 協議整合測試;`bench/computer-use` 8 題在 Linux runner(Docker-in-Docker/gVisor 已具備)每晚跑,結果寫入 repo(`bench/results/`)做回歸閘門。
- **遥測**:opt-in 崩潰/成功率回報(自架 relay endpoint,遵守 SECURITY.md 敘事)。
@ -76,7 +76,7 @@
# 軌 S:安全
## S1. 移除大腦容器的 `docker.sock` 全權 ⛓(P5 前件,最高優先)
## S1. 移除大腦容器的 `docker.sock` 全權 ⛓(P5 前件,最高優先) ✅ 2026-11:docker-socket-proxy 過濾層(兩份 compose);DOCKER_SOCKET 支援 rootless
- 現況:`deploy/server/docker-compose.yml` 讓大腦掛 `/var/run/docker.sock`=大腦被攻破即宿主淪陷。
- 做法:`docker-socket-proxy`(只放行 containers create/start/stop/exec_resize、volumes inspect);或長期:rootless Docker+systemd socket activation。Box 執行加 gVisor(bench 已用)。
- ✅ 完成標準:大腦容器內 `docker ps` 只剩 box 一個容器可見;`make doctor` 驗 proxy 端點清單。
@ -93,7 +93,7 @@
4. 注入標記:來自網頁/文件/螢幕文字的內文,進歷史時加包夾標記(防「請忽略之前指令」)。
- ✅ 完成標準:注入紅隊集(10+ 題)在 bench 跑,成功外洩/成功送出為 0;紅隊集進 CI。
## S4. Egress 代理收斂
## S4. Egress 代理收斂 ✅ 2026-11:egress 只綁 loopback+偵測到的 docker bridge(docker0/br-<hex>/gwbridge)
- 現況:Linux 綁 `0.0.0.0`+`allowed_peer`(`src/egress.rs:26`)。
- 改:綁 docker bridge 網段(172.17.0.1/16 之類,啟動時探測)+開機自癒;加子網變動測試;連線計數進 oplog 可在 UI 看。
- ✅ 完成標準:`ss -ltnp` 顯示只綁 bridge;子網變動整合測試通過。
@ -109,7 +109,7 @@
> 量測前提(bench 已證):模型回合佔 90% 時間,環境端 0.7–3.5s/步。
> 所以「少花 token/回合」>「壓環境延遲」。C1 先做。
## C1. Prompt caching(全案最高 CP 值)
## C1. Prompt caching(全案最高 CP 值) ✅ 2026-11:Anthropic 三斷點+CACHE_STATS;前綴穩定約束寫進 agent.rs 迴圈前註解
- 現況:`src/providers.rs` 全無 `cache_control`;每步重送 system+facts+~40 工具 schema+截圖。
- 做法:
1. Anthropic 系:system、tools、facts 段落、歷史末兩條加 `cache_control: ephemeral`;OpenAI 相容:確保前綴穩定(tools 排序固定、facts 位置固定、描述不動)。
@ -118,7 +118,7 @@
- ✅ 完成標準:Anthropic 路徑 `cache_read_input_tokens` >70%;bench 總時間/成本下降 ≥15%(列進 results.json 欄位)。
- ✅ 已驗證(2026-11):facts 於回合開始加入(loop 外)、tools 每回合建一次、quick_tools 為確定性映射→回合內前綴穩定;以 `agent.rs` 迴圈前註解固定此約束。
## C2. AX 直寫操作(精確度根治)⛓(H1、C3 前件)
## C2. AX 直寫操作(精確度根治)⛓(H1、C3 前件) ✅ 2026-11:axwrite(AXPress/AXValue)+act() 像素路徑退回;darwin type-check 過;待 Mac CI+bench 驗收
- 現況:agent-desktop 唯讀;所有動作=滑鼠座標+鍵(`computer.rs`、`cloudbox.rs` xdotool)。
- 做法:新模組 `src/axwrite.rs`:
- macOS:`AXUIElementPerformAction(kAXPress)`、`AXUIElementSetAttributeValue(kAXValue/SelectedText)`;選單項 AXPress 不須滑鼠。
@ -169,7 +169,7 @@
> 判定:在 GUI 域,AnyBot 的 harness(圖剪枝、noop 偵測、重複攔截、StepPlan、核准閘、
> bench 驅動)比 pi-bolt 對等物更完整;落後點只在**工具數量與每步 token 成本**。
## H1. 12 個 `computer_use_*` → 1 個 `computer` 工具(action enum)⛓(依賴 C2)
## H1. 12 個 `computer_use_*` → 1 個 `computer` 工具(action enum)⛓(依賴 C2) ✅ 2026-11:單一 computer 工具(action enum),模型輸出邊界展開回內部名;遠端 limb 免更新
- 採 Anthropic computer tool/OpenAI CUA 的公版形狀:`{action: screenshot|zoom|click|type|key|scroll|move|drag|batch|open_app|menu|fill_form|wait_for, ...}`。模型對這形狀有訓練先驗;schema token 減半;消掉「選錯工具/換路由」失敗類。
- 過渡:保留舊名 1 個大版本(內部轉發到新工具),系統指示同步改。
- ✅ 完成標準:工具 schema token −50%;快速模型工具選擇錯誤在 bench 歸零。