Virtual Biotech · 架构三层

从终端到数据

你是科学家。你只面对一个终端。终端后面是 11 个 Agent、12 个 MCP server、40GB 数据和一个模型端点。

Layer 0 · 终端 你面对的界面 CLI 对话、澄清问题、进度、报告、verify
Layer 1 · 运行层 Agent 编排 CSO、Plan DAG、11 个 Subagent、治理与审计
Layer 2 · 后端 工具、数据、模型 12 个 MCP server、40GB 数据、DeepSeek 端点

Layer 0 · 你的终端

你看到的是对话。不是 11 个 Agent 的界面。CSO 是唯一和你说话的角色。

示意 transcript · 非实际运行输出
你得到的产物
runs/2026-11-09_kras_pdac/
├─ report.md
├─ plan.json
├─ run_manifest.json
├─ work/
│  ├─ genomics-analyst/
│  │  ├─ code/scripts/
│  │  ├─ data/raw/
│  │  ├─ data/processed/
│  │  └─ results/
│  │     ├─ figures/
│  │     ├─ tables/
│  │     └─ reports/
│  ├─ single-cell-analyst/
│  ├─ fda-safety-officer/
│  └─ ...
└─ logs/
   ├─ trace.jsonl
   └─ cost.json

关键:你只读 report.md。审计的人读 work/、plan.json 和 trace.jsonl。

Layer 1 · 运行层实际架构

一个 Claude Code 运行时。一个 CSO 主循环。11 个 Subagent 定义。右侧是治理与审计。

科学家输入 自然语言问题 CSO 主 Agent 澄清 → 写计划 → 委派 → 审查 → 汇总 max_turns=100 · effort=xhigh Plan DAG validate_plan reconcile Scientific Reviewer 只读审查 质疑 → 重派 Agent 工具 · 按需调用 Target ID · 3 genomics-analyst functional-genomics- analyst single-cell-analyst 遗传证据 功能基因组 单细胞 model: specialist Target Safety · 2 fda-safety-officer bio-pathways-ppi- analyst FDA 安全 通路 / PPI model: specialist Clinical · 2 clinical-trialist trial-matching- specialist 临床试验 患者-试验匹配 model: specialist Modality · 2 target-biologist medchem- pharmacologist 靶点生物学 药物开发 model: specialist CSO Office · 2 chief-of-staff scientific- reviewer 快速尽调 只读审查 model: haiku tool_use / tool_result MCP 客户端 stdio / SSE / HTTP · 工具发现 · 12 个 server 12 个 MCP server expression functional_genomics genetics target drug single_cell association disease interaction pathway clinicaltrials provenance 查询 Open Targets 25.09 ~40GB parquet CC0 · 本地 靶点 / 疾病 / 表达 CELLxGENE Census 单细胞图谱 网络查询 细胞类型表达 ClinicalTrials.gov cBioPortal / PubMed 网络查询 试验 / 结果 / 文献 Tahoe-100M 可选 · ~83GiB 本地预处理 扰动响应 治理与审计 Hooks PreToolUse / PostToolUse 安全拦截 · 轨迹记录 Permissions bypassPermissions can_use_tool 回调 Provenance write_plan / record_claims register_artifact Cost token / 成本 按 Anthropic 价;DeepSeek 失真 Session session_id / resume / fork 恢复与审计 Workspace work/<agent>/ 每个 Agent 独立子树 Verify verify / replay / audit 完整性 ≠ 科学正确 1 个运行时 · 11 个 Subagent 定义 · 12 个 MCP server · 1 条审计链
CSO 负责编排。11 个 Subagent 负责执行。MCP 客户端负责工具路由。右侧治理层负责权限、审计、成本、会话和工作区。

Layer 2 · 后端架构

左边是工具与数据。右边是模型、计算和存储。数据留在本地,模型只看到 token。

科学家 / CLI / Web UI Claude Code 运行时 1 个子进程 · Agent 循环 · 11 个 Subagent 定义 session_id · max_turns=100 tool_use MCP 客户端 stdio / SSE / HTTP · 工具发现与路由 12 个 MCP server expression functional_genomics genetics target drug single_cell association disease interaction pathway clinicaltrials provenance 查询 数据源 Open Targets 25.09 ~40GB parquet · 本地 CC0 CELLxGENE Census 远程 · 网络 单细胞图谱 ClinicalTrials / PubMed 远程 · 网络 Tahoe-100M 可选 · ~83GiB · 本地 HTTPS /v1/messages 模型 API DeepSeek V4.1 Flash Anthropic 兼容端点:/anthropic 1M context · 384K output · 2,500 并发 计算 WSL2 Ubuntu 26.04 · 24 核 · 70GiB RAM 636GB 可用磁盘 · 无 GPU 需求 Python 3.11 + R 4.4.3 + rpy2 可选:Apptainer / SLURM 存储 sessions/<SESSION_ID>/ runs/<RUN_ID>/ · report / plan / manifest work/<agent>/ · 每个 Agent 独立子树 data/open_targets/ · ~40GB mcp_outputs/ 数据留在本地。模型只接收 token。API key 放在 .env。
后端不是微服务集群。它是单机运行时加本地数据、远程模型和 12 个工具服务。40GB 数据在磁盘上,模型在 API 后面。

一次提问的完整路径

从你按回车,到报告落到磁盘。

  1. 01
    你输入问题CLI 读取 .env、MCP 配置、Open Targets 路径。
  2. 02
    SDK 启动运行时一个 ClaudeSDKClient 拉起一个 Claude Code 子进程。
  3. 03
    CSO 先澄清它可能问疾病范围、证据优先级、交付物。
  4. 04
    CSO 写 Plan DAGvalidate_plan 检查依赖、重复 id、环。
  5. 05
    CSO 委派通过 Agent 工具调用 11 个 Subagent 中的若干。
  6. 06
    Subagent 拿到自己的配置独立提示、工具白名单、模型、effort、工作区。
  7. 07
    Subagent 调工具通过 MCP 客户端调用 12 个 server 中的相关工具。
  8. 08
    MCP server 查数据本地 parquet,或 ClinicalTrials、PubMed、CELLxGENE。
  9. 09
    Subagent 写产物脚本、原始数据、处理后数据、图表、表格、报告。
  10. 10
    Reviewer 审查只读检查科学严谨性。发现问题就触发重派。
  11. 11
    CSO 汇总生成 report.md,record_claims 登记主张与证据。
  12. 12
    verify 检查产物哈希、证据覆盖。它不判断科学结论对错。
  13. 13
    你读报告/summary 看成本,/done 结束会话。

你看到 vs 你看不到

这是系统的抽象边界。你只需要第一列。

你看到你看不到
终端提示符和澄清问题11 个 Subagent 的独立上下文
委派进度和工具调用数12 个 MCP server 的路由细节
report.md40GB parquet 的查询过程
/summary 的成本行每个 Agent 的 token 明细
verify 的通过或失败trace.jsonl 里的完整轨迹
work/<agent>/ 的产物Subagent 之间的上下文隔离

边界与限制

面向科学家的诚实说明。

界面

CLI 是主界面

Gradio 是可选。终端 transcript 是示意,不是实际输出。实际提示词和输出格式以仓库为准。

验证

verify 不等于科学正确

它检查产物完整性和证据覆盖。它不判断靶点结论是否成立。

实验

没有湿实验

所有结果是计算或回顾性分析。候选靶点仍需要实验验证。

安全

bypassPermissions 不是沙箱

Agent 可以在宿主机执行工具。建议在隔离环境或容器里跑。

成本

成本追踪会失真

仓库按 Anthropic 价表计算。DeepSeek 实际账单更低。以供应商账单为准。

规模

37,075 不属于这套 11 Agent

那是独立的临床试验标注批处理。它复用 clinical-trialist 角色,但不是同一个会话。

一句话:你面对一个终端。CSO 面对 11 个 Subagent。Subagent 面对 12 个工具。工具面对本地数据和远程 API。模型只看到 token。