关于 devtu-self-evolve
这是一个协调 ToolUniverse 开发流程的 skill,通过专门的 devtu skills 执行 API 发现、工具创建、测试、修复、优化和发布。它面向维护或扩展 ToolUniverse 的贡献者,并包含研究者 Agent 测试与问题核验步骤。
主要功能
- 01协调完整开发生命周期
- 02调度专门的 devtu skills
- 03使用研究者 persona Agent 测试工具
- 04修复前核验报告的问题
- 05运行基准评估
- 06指导分支、提交与 PR 流程
适用场景
- 01执行完整的 ToolUniverse 开发周期
- 02通过 API 发现扩展工具覆盖
- 03测试并修复已报告的工具问题
- 04评估 skill 效用及基准变化
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill devtu-self-evolve安装后在 Claude Code 中输入/devtu-self-evolve确认已加载。
附带文件references/bug-patterns.mdreferences/persona-template.md
详细介绍
ToolUniverse 自演进编排器
通过调度专用 devtu 技能,协调完整的开发生命周期。
周期
Discover → Create → Test → Fix → Optimize → Ship → Repeat
每个阶段都对应一个专用技能:
| 阶段 | 技能 | 功能 |
|---|---|---|
| 发现 | devtu-auto-discover-apis | 差距分析、网络搜索 API、批量发现 |
| 创建 | devtu-create-tool | 构建工具类 + JSON 配置 + 测试示例 |
| 测试 | (此技能) | 启动研究者角色 Agent 来发现问题 |
| 修复 | devtu-fix-tool | 诊断故障、实施修复、验证 |
| 优化 | devtu-optimize-skills | 改进技能报告、证据处理和用户体验 |
| 优化 | devtu-optimize-descriptions | 改进工具 JSON 描述的清晰度 |
| 文档 | devtu-docs-quality | 验证文档准确性 |
| 发布 | devtu-github | 创建分支、提交、推送、创建 PR |
快速开始
根据需要选择入口:
- “运行一轮测试” → 跳转到测试阶段
- “扩展覆盖范围” → 调用
Skill(skill="devtu-auto-discover-apis") - “创建新工具” → 调用
Skill(skill="devtu-create-tool") - “修复损坏的工具” → 调用
Skill(skill="devtu-fix-tool") - “改进技能” → 调用
Skill(skill="devtu-optimize-skills") - “完整周期” → 按顺序完成以下所有阶段
阶段 1:发现(可选)
调用 Skill(skill="devtu-auto-discover-apis") 来:
- 对当前工具类别进行差距分析
- 搜索代表性不足领域中的生命科学 API
- 根据覆盖范围、可靠性和文档情况为 API 评分并确定优先级
阶段 2:创建工具(可选)
针对每个新 API 调用 Skill(skill="devtu-create-tool"):
- 创建实现该 API 的 Python 工具类
- 创建包含参数、描述和测试示例的 JSON 配置
- 在
_lazy_registry_static.py和default_config.py中注册 - 验证:
python -m tooluniverse.cli test <ToolName>
阶段 3:测试阶段
这是核心测试循环,由此技能直接运行。
设置
- 检查未关闭的 PR:
gh pr list --state open - 如果有未合并的 PR → 使用其分支;如果已合并 → 从
origin/main创建新分支 - 变基:
git fetch origin && git rebase origin/main
研究者角色 Agent
每轮使用 Agent 工具启动 2 个 Agent(A + B),并设置以下参数:
每个 Agent 获取:
- 领域专长(肿瘤学、基因组学、药理学等)
- 研究问题(具体的生物学问题)
- 5-7 个测试场景,用于测试不同工具
- 报告问题并标注严重程度(HIGH/MEDIUM/LOW)的指示
- 问题 ID:
Feature-{round}{letter}-{num}(例如:Feature-59A-001)
Agent 提示词模板 — 参见 references/persona-template.md
验证(关键)
在实施任何 Agent 报告的问题之前,先通过 CLI 验证:
python3 -m tooluniverse.cli run <ToolName> '<json_args>'
Agent 报告中有 50% 以上属于 MCP 接口混淆导致的误报。只修复已验证的问题。
修复原则
- 预防,而非补救 — 修复根本原因,而非表面症状
- 在输入时验证 — 尽早拒绝错误参数,并提供清晰指引
- 区分“没有数据”和“查询错误” — 分别给出不同的信息
- 修复抽象设计 — 不要添加会无限增长的别名列表
反模式:用提示文本代替验证、用参数别名代替修复命名问题、事后探查代替预先验证。
技能实用性测试(新增 — 超越工具测试)
标准测试会验证工具能否正常工作。实用性测试则会验证技能是否真正解决了科学家的问题。标准测试完成后运行:
- 选择一个真实的研究问题,该技能声称能够回答这个问题(而不是工具级别的测试)
- 启动一个 Agent,让它按照技能工作流处理这个真实问题
- 如实评估:技能是否给出了可执行的答案,还是仅仅罗列了一堆数据?
1-10 分评分标准:
- 1-3:工具目录——列出工具,但没有解读
- 4-6:数据收集器——收集数据,但无法帮助组合或解读数据
- 7-8:推理框架——通过表格、评分和综合分析指导解读
- 9-10:决策引擎——给出具体且有依据的建议
实用性测试中发现的常见失败模式:
| 模式 | 分数影响 | 修复方法 |
|---|---|---|
| 只说“调用 A,然后调用 B,再调用 C”,却没有解释如何处理结果 | -3 | 添加解读表格 |
| 工具参数错误(工具可用,但技能文档中的参数名有误) | -2 | 通过 get_tool_info() 核实所有工具参数 |
| 承诺提供 API 无法给出的数据(例如 DepMap CRISPR 评分) | -2 | 如实说明局限性;添加计算流程作为替代方案 |
| 最后没有综合分析阶段 | -2 | 添加“这意味着什么?”阶段,综合所有证据 |
| 没有证据分级 | -1 | 添加 T1-T4 或类似的置信度等级 |
| 对工具无法完成的任务没有提供计算流程 | -1 | 添加使用 scipy/pandas/numpy 的 Python 代码块 |
工具无法提供帮助时,添加计算流程:有些分析需要 Python 代码,而不是 API 调用。技能应包含以下可运行的代码块:
- 统计检验(scipy.stats、FDR 校正)
- 下载文件的数据分析(DepMap、TCGA 等数据集的 pandas + CSV)
- 评分算法(ACMG 分类、活力评分)
- 序列分析(Biopython)
完整指南请参阅 devtu-optimize-skills 的 Patterns 14-15。
第 3.5 阶段:基准评估
测试后量化插件性能。使用 Skill(skill="devtu-benchmark-harness")。
# Run lab-bench (20 MCQ)
python skills/devtu-benchmark-harness/scripts/run_eval.py --benchmark lab-bench --mode plugin-only --n 20
# Run BixBench (computational, use first 20)
python skills/devtu-benchmark-harness/scripts/run_eval.py --benchmark bixbench --mode plugin-only --n 20
# Analyze results
python skills/devtu-benchmark-harness/scripts/analyze_results.py --results <results-file>
# Generate report
python skills/devtu-benchmark-harness/scripts/generate_report.py --results <results-file> --output BENCHMARK_REPORT.md
与上一轮进行比较。如果任何类别的表现退步,优先在第 4 阶段修复相应的技能或工具。
第 4 阶段:修复并提交
- 实施已验证的修复(代码级模式请参阅 references/bug-patterns.md)
- 运行 code-simplifier:
Skill(skill="simplify")— 编写或修改代码后始终运行 - Lint:
ruff check src/tooluniverse/<file>.py - 验证语法:
python -c "from tooluniverse.<module> import <Class>" - 测试:
python -m tooluniverse.cli run <Tool> '<json>' - Pre-commit hook 流程:暂存 → 提交(失败并重新格式化)→ 重新暂存 → 提交
- 推送:
git push origin <branch>
另请参阅
Skill(skill="devtu-code-optimization"),了解可复用的修复模式和反模式。
第 5 阶段:优化(可选)
修复稳定后:
Skill(skill="devtu-optimize-descriptions")— 改进工具描述Skill(skill="devtu-optimize-skills")— 提升研究技能质量Skill(skill="devtu-docs-quality")— 验证文档准确性
第 6 阶段:发布
调用 Skill(skill="devtu-github"),或手动执行:
- Rebase:
git fetch origin && git stash && git rebase origin/main && git stash pop git push --force-with-lease origin <branch>- 创建或更新 PR:
gh pr create/ 使用gh pr view <N> --json mergeable验证 - 在报告完成前,确认
"mergeable": "MERGEABLE"
GitHub 仓库:mims-harvard/ToolUniverse — 推送前始终使用 git remote -v 核实。
Git 规则(重要)
- 绝不推送到 main — 所有工作都在功能分支上进行
- 绝不同时有多个待处理的修复 PR — 继续向当前分支添加更改
- 推送前始终执行 rebase:
git fetch origin && git rebase origin/main - 提交消息格式:不要使用“BUG”一词,使用“Feature”或“Fix”
- 提交中不要添加 AI 署名
常见问题类别
| 类别 | 信号 |
|---|---|
| 参数静默遗漏 | 检查字段错误;参数被忽略 |
| 条件判断始终触发 | 在错误类型上调用 .get("field") |
| 静默规范化 | 未说明自动转换 |
| 符号表示或大小写错误 | 基因融合、标题格式名称 |
| 子字符串匹配 | 短符号返回多个目标 |
| try/except 缩进 | 不匹配 → SyntaxError |
完整模式 → references/bug-patterns.md
轮次跟踪
每轮结束后:递增计数器、更新模式文件,并确保此 SKILL.md 不超过 150 行。
当前轮次:127(已完成轮次:52-126)