Files
PlantAI-dev/MEMORY.md
2026-08-03 18:42:47 +08:00

3.4 KiB
Executable File

bbav5 项目记忆 - 决策与踩坑

创建时间:2026-03-18 | 最后更新:2026-04-15

本文件记录设计决策和踩坑经验,运行时配置见 AGENTS.md


1. 架构设计决策

1.1 三层架构

Frontend (Vue3 + FastAPI)
    ↓
Core Framework (Contracts + Reproducibility + API)
    ↓
Analysis Execution (CLI Scripts + Skills)

决策理由: 解耦前端展示与后端执行,契约层保证阶段间数据流转可靠

1.2 目录结构规范

workspace/{job_id}/
├── final/              # 最终产物(只读,下游依赖)
├── {stage}/analysis/   # 中间文件(可追溯)
├── logs/               # 执行日志
└── input/              # 输入文件(只读)

踩坑: 早期版本输出到 {stage}/final/,下游阶段找不到文件 → 统一为 final/

1.3 契约化设计

每个阶段契约文件 (*_contract_v1.md) 定义:

  • 输入契约: 文件类型、来源
  • 输出契约: final/ 必须产物
  • Manifest 契约: artifacts 字段最小集

2. 重大踩坑记录

2.1 RNA-seq 环境问题 (2026-03-19)

问题: RNA-seq 阶段执行失败,工具找不到

原因: 用错了 conda 环境,应该用 rnaseq 而非 test4py311

修复:

  • rnaseq_qc/align/quant/de/enrich → conda activate rnaseq
  • expression 绘图 → conda activate rnaR

2.2 Manifest 路径问题 (2026-03-27)

问题: 前端读取 manifest 失败

原因: 返回路径是相对路径,前端无法解析

修复: Manifest 必须包含 full_path 绝对路径

2.3 Agent 意图识别慢 (2026-04-05)

问题: RNA-seq 意图识别耗时 16 分钟

原因: LLM 调用过多

修复: 添加 fast_intent 关键词匹配,降至 <5 秒

2.4 循环迭代未实现 (2026-04-15)

问题: Discovery → Learning 是固定边,无法循环

原因: Orchestrator 没有条件边设计

修复:

  • langgraph_orchestrator.py 新增 iteration_count, max_iterations
  • _discovery_decision() 决策函数
  • 循环逻辑: should_continue → replan → Planning

3. 关键修复索引

日期 文件 详情
2026-03-27 memory/2026-03-27.md RNASEQ_QC 修复
2026-03-28 memory/2026-03-28.md RNASEQ_ALIGN 修复
2026-03-29 memory/2026-03-29.md RNASEQ_QUANT 修复
2026-03-30 memory/2026-03-30.md RNASEQ_DE 修复
2026-04-03 memory/2026-04-03.md Celery 集成
2026-04-05 memory/2026-04-05.md 意图识别优化
2026-04-06 memory/2026-04-06.md PEP/PPI 技能化
2026-04-07 memory/2026-04-07.md 其他修复
2026-04-15 全局 MEMORY 循环迭代修复

4. 已知问题

问题 状态 备注
RouterAgent 第74行 prompt 变量 待修复 应为 full_prompt
两个 Orchestrator 并存 待重构 orchestrator.py (2656行) + langgraph_orchestrator.py (638行)
_route_query 关键词过多 待优化 约100个关键词,维护困难

5. 技能化状态

全部 16 个核心阶段已技能化,见 skills/ 目录


6. 修订检查清单

  • 是否遵循契约文档 (*_contract_v1.md)
  • 输出是否在 final/ 目录
  • Manifest 是否包含 full_path, size, sha256
  • 是否使用正确的 Conda 环境
  • 是否更新 MEMORY.md 或 memory/*.md

详细日志见 memory/ 目录