# 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)→ 记录为实测结论之一 - 回滚:仅文档与本机容器,无生产影响