onesvm-browser-server/.dsh/contracts/plan-20260901-01.md
chii 983259836d chore: init workspace with onesvm-dev-md + casa-commander
docs: 联网搜索服务架构方案全套(plan-final/design-arch/选型决策/整合导览/MCP文档/部署预设/联调手册)
bench: 5 方案 + 代理 + 站点矩阵本机实测工程(无密钥)
部署目标:primary mgr1 先行测试(待批准后执行)
2026-09-01 15:19:52 +08:00

70 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Commander Plan: onesvm-browser-server 架构选型与实测评定
> 状态: done
> 创建: 2026-09-01(Asia/Shanghai)
> plan_id: plan-20260901-01
> Plan Gate — 仅 `approved` / `in_progress` 后 Commander 可派发 Worker
## 目标
交付一份用户可 review 的最终方案:统一出口架构 + 无 Redis 高并发排队集群规格(dev-swarm 现实约束)+ 拓展坞协议 Worker 模版/整合器 + ProxyManager 合规代理 + 国内外各 ≥2 套开源方案的实测评定与入选结论。
## 背景与约束
- Norm: `onesvm-dev-md/base/development-standards.md`、`deployment-rules.md`、`devops-role-boundaries.md`;全局 service-secret-protocol(静态 key 禁 Bearer)
- Fact: dev-swarm 3×~6.5GB RAM;既有 WSG(Tavily)先例 urlapi `/search-api`+`/mcp`;central-proxy `.53:7890`
- constraints: 见 Contract(含 2026-09-01 补充:全栈总内存 ≤1GB 渐进递增,内存为选型决定性指标);执行类一律 `subagent_cursor`(grok);代理明文仅 `.local.md`
## 默认 model_family
hard(实测/调研);architect(S4/S5 设计);reviewer(S6/S7)
## 步骤表(Stage DAG)
| step_id | goal | worker | model_family | scope (in) | out_of_scope | acceptance | depends_on | status |
|---------|------|--------|--------------|------------|--------------|------------|------------|--------|
| S1 | 主流联网搜索服务架构调研:统一出口/注册key模式、AI原生输出格式(Firecrawl/Crawl4AI/Jina 等 markdown+schema 实践)、无Redis排队与浏览器集群管理(Browserless/steel 等) | subagent_cursor(explore) | hard | 写入仅 `.dsh/artifacts/run-20260901-browser-arch/research/` | 业务代码 | research/*.md 含可引用的架构要点与来源链接 | — | done |
| S3a | 代理解析与探活:解析订阅(Clash/V2Ray),本机起客户端,验证 ≥3 个可用出口节点,测速与目标站连通性(google/bing/reddit/amazon),输出可用节点清单与路由建议 | subagent_cursor(shell) | simple | `.dsh/artifacts/run-20260901-browser-arch/proxy-probe.md` + `bench/proxy/**` | 订阅明文禁入 git 可提交文件 | proxy-probe.md 含实测连通数据 | — | done(52 vless 全活,最优 167ms;hy2 UDP 全灭弃用) |
| S2 | 候选筛选 | subagent_cursor(explore) | hard | select.md + bench/plan.md | — | 入选/排除+模板指标 | S1 | done(5套入选) |
| S3b | 国内组实测:本机 Docker 部署入选国内方案,跑 5 模板,记录质量/延迟/**idle·单会话·60burst 三档内存**/成功率(内存为决定性指标) | subagent_cursor(implement) | hard | `bench/**` + `.dsh/artifacts/.../bench/` | 不碰代理国外链路 | bench 产物含原始日志+汇总表(含三档内存实测) | S2 | done |
| S3c | 国外组实测:同上但走 S3a 代理路由,含 JS 渲染页与反爬观察 | subagent_cursor(implement) | hard | `bench/**` + `.dsh/artifacts/.../bench/` | — | 同上 | S2, S3a | done |
| S4 | 任务1–4 架构设计:统一出口+注册/key、拓展坞协议 Worker 模版+整合器、统一 AI 原生输出格式、无 Redis 排队、ProxyManager 合规双向拦截、有头插拔预留、dev-swarm 集群规格与扩展公式 | subagent_fork(implement) | architect | `docs/design-arch-20260901.md` | bench/ | 文档覆盖任务1–4 全部要点,含 mermaid | S1 | done |
| S5 | 最终方案整合:S4 设计 + S3 实测结论 + 入选方案与部署规格 + MCP 使用规则草案 → 用户 review 版 | 主会话(指挥官整合) | architect | `docs/plan-final-20260901.md` | — | 覆盖任务 1–6,数据均可追溯 bench 产物 | S3b,S3c,S4 | done |
| S6 | Verify + 独立 Reverify | subagent_fork(review) ×2 | reviewer | 只读 S5 + 全部产物 | — | review.md / reverify.md 无未解决 blocker | S5 | done(Verify PASS + Reverify FAIL→修订→复审 PASS;残留 R1/R2 已顺手修) |
| S7 | Architecture Review(core_framework 强制) | subagent_fork(arch-review) | reviewer | 只读 S5 + norms | — | arch-review.md PASS | S6 | done(一轮 FAIL P1-AR1 → 修订 → 二轮 PASS) |
## 并行策略
- S1 ∥ S3a 同时启动
- S4 在 S1 完成后启动,与 S2/S3 实测并行
- S3b ∥ S3c 并行(本机资源约束:同时运行候选容器 ≤3,worker 须自纪律分批)
- S5 等 S3b/S3c/S4 全部 done 后由主会话整合
## 全局 acceptance(Plan 级)
- [ ] Contract acceptance 全过(见 Contract)
- [ ] 各 step status = done
- [ ] `.dsh/artifacts/run-20260901-browser-arch/review.md` 与 `arch-review.md` 无未解决 blocker
## artifact 布局
```
.dsh/artifacts/run-20260901-browser-arch/
├── commander.log
├── research/ # S1
├── select.md # S2
├── proxy-probe.md # S3a
├── bench/ # S3b/S3c 汇总(原始在 bench/)
├── review.md / reverify.md
└── arch-review.md
bench/ # 本机实测 compose/脚本/原始数据(可提交,禁含密钥)
docs/ # 设计文档与最终方案(可提交)
.dsh/casa-runtime/sessions/session-af595dc1-78f9-4dbd-93ef-6c21e3c1f912.json
```
## 风险与回滚
- 代理节点不可用 → S3a 报告具体失败,S3c 降级为「仅直连可达国外源」实测 + 方案级评估,并向用户报告
- 本机资源不足 → 分批实测,bench/plan.md 记录批次
- 候选方案 Mac 不兼容(如 browser-swarm 仅限 Apple Silicon 反而有利;Camoufox 需 xvfb)→ 记录为实测结论之一
- 回滚:仅文档与本机容器,无生产影响