# 任务书:开发 agent A1 —— P0 内核移植 + 8 环境镜像构建 + 金标等价性验证(v2,2026-09-05 终版方案) ## 前置必读 1. docs/bioflow_team_context.md(环境事实 + 团队纪律,全部遵守) 2. 本任务书 + 模块职责边界 3. docs/PRD.md §16(FR-BIO-029 内核等价性 / FR-BIO-030 Docker 执行 / FR-BIO-032 发布编译) 4. **docs/bioflow_image_build_playbook.md**(TL 写的镜像构建方法文档骨架——你执行中必须回填实测数据,见交付物 E) ## 职责范围(只动 rag-new 仓库内 bioflow_kernel/ 目录;PlantAI-dev 只读复制源,零改动) ### A. 内核树复制(已完成部分需核对) 复制源 /home/xzq/5090/teamWorkspace/zh/PlantAI-dev/,目标 bioflow_kernel/(顶层同构保 parents[2]): - apps/cli/ → bioflow_kernel/cli/(92 文件全量,含 legacy 变体) - gfa_core/ → bioflow_kernel/gfa_core/(**注意 dev 已演进:gfa_core 在 dev 仓库顶层,不在 apps/ 下**;30 模块依赖闭包 + templates/ + schemas/) - apps/scripts/ → bioflow_kernel/scripts/(tree_domain.R 等) - apps/assets/hmm/ → bioflow_kernel/assets/hmm/(SBP.hmm) 现有 bioflow_kernel/ 树核对完整性(与 dev 同构、无缺文件)。 ### B. 副本源码适配(**用户定策:复制进 rag-new 后该改就改,逐条记入报告**) 1. 全部 /home/xzq/miniconda3 硬编码(实测 126 处/52 文件,含 gfa_core 内引用,A1 需复核精确数)→ 镜像标准形态: - `envs//bin/` 工具调用 → PATH 裸命令(``) - Python 代码内调用 python → `sys.executable` - `conda run -n X cmd` → 直接 `cmd` - `source .../etc/profile.d/conda.sh` → 删除 - `envs/*/bin` 探测循环 → PATH 查找(shutil.which) - `CONDA_PREFIX` → `sys.executable` 推导(保留环境变量覆盖点,如 BBA_*/PLANTAI_* 既有约定) - pfam_mapping.json 候选链 → 走既有 `BBA_RAG_MAPPING_FILE` 环境变量覆盖 - registry.py 的 `tartary_spl_analysis` 环境实测不存在(dev 历史残留)→ hmmsearch/blastp 等按 test4py311 环境实际工具核验处理,记入已知限制 2. 交叉引用 `from apps.cli.xxx import` / `from apps.gfa_core...` → `from cli.xxx` / `from gfa_core...`(dev 布局演进,实测数量以扫描为准,逐一验证可 import) 3. **每条改动记入报告适配清单:文件 × 行 × 旧值 × 新值**(126 处可分组汇总,代表性条目逐条) ### C. 8 环境镜像构建(按 docs/bioflow_image_build_playbook.md 方法) | 镜像 | conda 环境 | 实测体积 | 用途 | |---|---|---|---| | bioflow-gf | test4py311 | 16G | GF 链主环境(web 服务本体/cli 主环境) | | bioflow-gfpy | gfpy312 | 5.4G | mafft/iqtree/meme(registry.py 权威映射) | | bioflow-rnaseq | rnaseq | 6.1G | RNA-seq 主链 | | bioflow-rnaR | rnaR | 2.7G | R 汇总绘图 | | bioflow-wgs | ASAW | 5.1G | WGS/GWAS/群体 | | bioflow-interproscan | interproscanpy311 | 750M | 结构域注释 | | bioflow-pan | panfamily | 1.8G | 泛基因家族 pangene 链 | | bioflow-rde | r_de_analysis | 1.6G | DE 分析 R 环境 | 构建要点:conda-pack 打包 → 干净基底(glibc ≥ 宿主)→ 解包 /opt/conda → conda-unpack 重定位 → `ENV PATH=/opt/conda/bin:$PATH` → 多阶段内用镜像内解释器跑 build.sh 编译 .so → 最终镜像只留 .so+明文入口+资源,**无 conda 本体、无 /home/xzq、仅 root**。 docker/ 下现有 4 个旧 Dockerfile 与 5 个 env_*.txt 是旧方案产物,按新方案重写为 8 个 Dockerfile(参数化模板优先)。 **先做最大+最小两端实测**(test4py311、interproscanpy311)再铺开其余 6 个。 ### D. 金标等价性验证(P0 验收核心) bioflow-gf 镜像内跑 identify(dev 金标数据 assets/examples/test_input,Ft 物种 SPL): ``` docker run --rm --user $(id -u xzq) \ -v <任务目录>/input:/job/input -v <任务目录>/workspace:/job/workspace \ -v /home/xzq/5090/teamWorkspace/zh/bioflow-data:/bioflow-data \ -e BBA_PFAM_DIR=/bioflow-data/hmm -e BBA_DISABLE_RAG_PFAM_LOOKUP=1 \ --cpus 16 --memory 64g \ bioflow-gf python -B -m cli.run_identify \ --input-dir /job/input --workspace /job/workspace --prefix Ft.SPL --cpu 16 --force ``` 24 个成员 ID 与 dev 预期输出集合 diff 全等;18 个 GF 链入口 `python -B -m cli.run_xxx --help` 全绿;冒烟脚本沉淀 bioflow_kernel/tests/smoke_golden.sh。 ### E. 交付物 1. docs/team/report_bioflow_dev1.md(完成清单、**适配清单逐条**、金标结果、冒烟结果、已知限制) 2. bioflow_kernel/stage_image_map.json(阶段 → 8 镜像映射;已有旧版需重写) 3. **入口→主环境归属表**(全部 cli 入口逐一判定主环境)+ **跨环境入口清单**(单个入口引用 ≥2 个环境,如 run_expression=rnaseq+rnaR、run_identify 含 interproscanpy311、combo 类含 gfpy312)→ 逐条给处置(编排层拆子阶段映射对应镜像;无法拆分报 TL) 4. **回填 docs/bioflow_image_build_playbook.md**:conda-pack 打包时间/体积、解包后 bin/python --version 与源环境一致性、conda-unpack 重定位验证、ldd 缺库检查结果、代表性工具 --help 冒烟、8 个镜像最终体积与构建时长 5. **补齐 playbook 环境总台账**:其余 18 个环境(AI_env/ani/at_sc/beagle54/bioinfo/minerupy312/rice_download/rice_rna/snpeff/testpy311/vcflinshi/plantai-bff/pymol-env + 4 个 biolabx + base miniconda3)的体积实测数据填入台账表 ## 【纪律再强调】 - 不碰生产容器/服务;dev 仓库只读;不 commit/push - 只动 bioflow_kernel/ 与 docs/team/report_bioflow_dev1.md、docs/bioflow_image_build_playbook.md - 镜像构建是自测动作可执行;docker build 遇权限/磁盘问题 → 记入报告等 TL - 新代码(Dockerfile/脚本)零硬编码:命令统一 `python`/裸工具名,路径一律环境变量/配置 ## 【自测要求】 - 金标 diff 输出为空(24 ID 全等);镜像内 `python -c "import gfa_core.xxx"` 加载 .so 成功 - 8 个镜像各自 bin/python --version 与源环境一致 + 代表性工具 --help 全绿 - 结果写入报告 ## 【完成标准】 报告 + playbook 回填完成后,最终回复明确写「BIOFLOW DEV1 P0 完成」+ 报告路径 + 金标 diff 结果 + 8 镜像构建状态 + 自测通过数