mcpField
D
devtu-self-evolve

devtu-self-evolve

github.com/mims-harvardAgent 工作流1.8k310 次安装2 天前更新
代码仓库

关于 devtu-self-evolve

这是一个协调 ToolUniverse 开发流程的 skill,通过专门的 devtu skills 执行 API 发现、工具创建、测试、修复、优化和发布。它面向维护或扩展 ToolUniverse 的贡献者,并包含研究者 Agent 测试与问题核验步骤。

主要功能

  1. 01协调完整开发生命周期
  2. 02调度专门的 devtu skills
  3. 03使用研究者 persona Agent 测试工具
  4. 04修复前核验报告的问题
  5. 05运行基准评估
  6. 06指导分支、提交与 PR 流程

适用场景

  1. 01执行完整的 ToolUniverse 开发周期
  2. 02通过 API 发现扩展工具覆盖
  3. 03测试并修复已报告的工具问题
  4. 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") 来:

  1. 对当前工具类别进行差距分析
  2. 搜索代表性不足领域中的生命科学 API
  3. 根据覆盖范围、可靠性和文档情况为 API 评分并确定优先级

阶段 2:创建工具(可选)

针对每个新 API 调用 Skill(skill="devtu-create-tool"):

  1. 创建实现该 API 的 Python 工具类
  2. 创建包含参数、描述和测试示例的 JSON 配置
  3. 在 _lazy_registry_static.py 和 default_config.py 中注册
  4. 验证:python -m tooluniverse.cli test <ToolName>

阶段 3:测试阶段

这是核心测试循环,由此技能直接运行。

设置
  1. 检查未关闭的 PR:gh pr list --state open
  2. 如果有未合并的 PR → 使用其分支;如果已合并 → 从 origin/main 创建新分支
  3. 变基: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 接口混淆导致的误报。只修复已验证的问题。

修复原则
  1. 预防,而非补救 — 修复根本原因,而非表面症状
  2. 在输入时验证 — 尽早拒绝错误参数,并提供清晰指引
  3. 区分“没有数据”和“查询错误” — 分别给出不同的信息
  4. 修复抽象设计 — 不要添加会无限增长的别名列表

反模式:用提示文本代替验证、用参数别名代替修复命名问题、事后探查代替预先验证。

技能实用性测试(新增 — 超越工具测试)

标准测试会验证工具能否正常工作。实用性测试则会验证技能是否真正解决了科学家的问题。标准测试完成后运行:

  1. 选择一个真实的研究问题,该技能声称能够回答这个问题(而不是工具级别的测试)
  2. 启动一个 Agent,让它按照技能工作流处理这个真实问题
  3. 如实评估:技能是否给出了可执行的答案,还是仅仅罗列了一堆数据?

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 阶段:修复并提交

  1. 实施已验证的修复(代码级模式请参阅 references/bug-patterns.md)
  2. 运行 code-simplifier:Skill(skill="simplify") — 编写或修改代码后始终运行
  3. Lint:ruff check src/tooluniverse/<file>.py
  4. 验证语法:python -c "from tooluniverse.<module> import <Class>"
  5. 测试:python -m tooluniverse.cli run <Tool> '<json>'
  6. Pre-commit hook 流程:暂存 → 提交(失败并重新格式化)→ 重新暂存 → 提交
  7. 推送: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"),或手动执行:

  1. Rebase:git fetch origin && git stash && git rebase origin/main && git stash pop
  2. git push --force-with-lease origin <branch>
  3. 创建或更新 PR:gh pr create / 使用 gh pr view <N> --json mergeable 验证
  4. 在报告完成前,确认 "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)

评论

支持 Markdown