mcpField
D
devtu-optimize-skills

devtu-optimize-skills

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

关于 devtu-optimize-skills

这是一个用于改进 ToolUniverse 研究技能的指导技能,涵盖证据分级、来源归属、工具验证和结果综合,面向构建科学研究技能的作者,并强调测试调用及说明数据局限。

主要功能

  1. 01工具接口与架构验证
  2. 02证据分级与来源标注
  3. 03消歧与输入验证
  4. 04错误处理与备用方案
  5. 05测试规范与结果综合实践

适用场景

  1. 01审查 ToolUniverse 研究技能
  2. 02设计证据分级的科学工作流
  3. 03改进 API 错误提示与备用方案

MCP 相关

README 介绍了 ToolUniverse 工具及其验证,但没有说明 MCP 专用接口。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill devtu-optimize-skills

安装后在 Claude Code 中输入/devtu-optimize-skills确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
case-studies.md
checklists.md
optimization-patterns.md
testing-standards.md

详细介绍

优化 ToolUniverse 技能

提供有关证据分级和来源归属的高质量研究技能最佳实践。

工具质量标准

  1. 错误消息必须可执行 — 告诉用户出了什么问题,以及该怎么做
  2. 架构必须符合 API 实际情况 — 运行 python3 -m tooluniverse.cli run <Tool> '<json>' 进行验证
  3. 透明说明覆盖范围 — 说明未包含哪些数据
  4. 在调用 API 前验证输入 — 不要悄悄发送无效值
  5. 跨工具路由 — 查询超出范围时,指出正确的工具
  6. 不得静默丢弃参数 — 如果忽略某个参数,请明确说明

核心原则(13 种模式)

完整详情:references/optimization-patterns.md

#模式核心理念
1验证工具接口首次调用前使用 get_tool_info();维护修正表
2基础数据层首先查询聚合器(Open Targets、PubChem)
3带版本的标识符同时捕获 ENSG00000123456 和 .12 版本
4优先消歧解析 ID、检测冲突、构建负向过滤条件
5仅输出报告在报告中撰写叙述;仅在用户提出要求时,才在附录中说明方法
6证据分级T1(机制)→ T2(功能)→ T3(关联)→ T4(提及)
7量化完整性为各部分设定最低数量(>=20 个 PPI、前 10 种组织)
8强制检查清单所有部分都必须存在,即使内容是“证据有限”
9汇总数据缺口用单独部分汇总所有缺失数据
10查询策略高精度种子 → 引文扩展 → 经冲突过滤的广泛查询
11工具故障处理主工具 → 备用工具 1 → 备用工具 2 → 记录无法获取
12可扩展输出叙述性报告 + JSON/CSV 参考文献
13综合分析部分生物学模型 + 可检验假设,而不只是论文列表

优化后的技能工作流

Phase -1: Tool Verification (check params)
Phase  0: Foundation Data (aggregator query)
Phase  1: Disambiguation (IDs, collisions, baseline)
Phase  2: Specialized Queries (fill gaps)
Phase  3: Report Synthesis (evidence-graded narrative)

测试标准

完整详情:references/testing-standards.md

关键规则:未先测试所有工具调用,绝不能编写技能文档。

  • 每项技能进行 30+ 项测试,通过率为 100%
  • 所有测试都使用真实数据(不使用占位符)
  • 包括阶段测试、集成测试和边缘案例测试
  • SOAP 工具(IMGT、SAbDab、TheraSAbDab)需要 operation 参数
  • 区分临时错误(重试)和实际错误(修复)
  • API 文档经常有误 — 务必通过实际调用进行验证

模式 14:推理框架优于工具目录(重要)

只列出工具(“依次调用 A、B、C”)的技能,在实用性测试中的评分为 3-5/10。解释如何解读和组合数据的技能,评分为 7-9/10。每项技能都必须包含:

14a. 解读表

将原始 API 数据映射为生物学/临床意义。不要只获取数据 — 还要解释。

不佳(工具目录)良好(推理框架)
“从 MGnify 获取 GO 术语”GO 术语 → 解读表:丁酸基因 = 屏障完整性,LPS 基因 = 炎症
“获取 DepMap 依赖性评分”评分 < -0.5 = 必需基因,但泛必需基因 = 不良药物靶点(毒性);选择性靶点 = 良好靶点
“获取 FAERS 计数”PRR > 5 = 强信号,但信号 ≠ 因果关系(渠道偏倚、知名度偏倚)
14b. 综合分析阶段

每项多阶段技能都需要一个最终阶段来回答“这意味着什么?” — 而不只是收集数据:

  • “发生了什么变化,为什么重要?”
  • “这是原因还是结果?”
  • “有什么可执行的建议?”
14c. 如实说明局限

如果工具 API 无法实现技能承诺的功能,请明确说明。不要描述理想化的能力。例如:“DepMap_get_gene_dependencies 仅返回基因元数据,不返回各细胞系的 CRISPR 评分。”

模式 15:工具无法满足需求时的计算流程

有些科学分析需要进行计算,而不只是查询 API。如果某项能力没有对应工具,就直接在技能中嵌入 Python 代码流程,并使用 ToolUniverse 中提供的包(pandas、scipy、numpy、statsmodels、biopython、networkx)。

何时使用计算流程:
缺口流程包
API 未返回所需数据(例如 DepMap 评分)下载 CSV + 使用 pandas 分析pandas
统计检验(差异丰度、富集分析)scipy.stats + FDR 校正scipy、statsmodels
序列分析(比对、保守性)Biopython SeqIO + 成对比对biopython
化学相似性(类似物搜索、指纹)RDKit 指纹 + Tanimotordkit(可选可视化扩展)
网络分析(枢纽基因、聚类)NetworkX 图指标networkx
评分算法(ACMG 分类、活力评分)自定义 Python 函数内置
剂量可行性(Cmax 与 IC50 比较)数值比较 + PK 数据pandas、numpy
技能中计算流程的模板:
**Computational procedure: [Name]**
[When to use this: explain the gap it fills]

\`\`\`python
# [What this computes]
# Requires: [packages] (included in ToolUniverse dependencies)
import pandas as pd
from scipy.stats import mannwhitneyu

# Input: [describe expected input format]
# Output: [describe output]
# [Full working code with example data]
\`\`\`

[Interpretation guidance for the output]
计算流程的关键规则:
  1. 仅使用 ToolUniverse 依赖项(pyproject.toml)中的包:pandas、scipy、numpy、networkx、requests、biopython(可选扩展)
  2. 包含示例数据,以便立即测试该流程
  3. 说明输出内容——没有解读的代码块毫无用处
  4. 注明何时需要下载外部数据(例如,从 depmap.org 下载 DepMap CSV)
模式 15b:下载并处理没有 REST API 的数据集

许多重要的科学数据集没有 REST API,但提供批量下载文件。如果这是获取关键数据的唯一途径,技能应包含具体的下载和处理说明。

下载和处理流程的模板:

**Step 1: Download data files**
- URL: [exact download page URL]
- Files needed: [filename] (~[size]) — [what it contains]
- Registration: [required/not required]
- Update frequency: [quarterly/annually/etc.]

**Step 2: Process with Python**
[Working code with pandas/scipy that loads the CSV and produces the analysis]

**Step 3: Interpret results**
[Table mapping output values to biological/clinical meaning]

**When files are not available**: [Fallback strategy using API tools]

技能中引用的已知仅可下载数据集:

数据集下载 URL文件使用方
DepMap CRISPRdepmap.org/portal/download/all/CRISPRGeneEffect.csv(约 300MB)、Model.csv(约 2MB)functional-genomics、cell-line-profiling
TCGA 临床数据portal.gdc.cancer.gov临床及突变 TSV 文件cancer-genomics-tcga
GTEx 表达数据gtexportal.org/home/downloadsGTEx_Analysis_v8_Annotations.csvexpression-data-retrieval
ClinGen 基因-疾病数据clinicalgenome.org/docs/gene_curation_list.tsvvariant-interpretation
gnomAD 约束数据gnomad.broadinstitute.org/downloads约束指标 TSVfunctional-genomics

关键规则:下载不可用时,务必提供备用方案(用户可能没有注册账号,文件也可能过大等)。备用方案应使用可用的 API 工具,即使其提供的数据不够完整。

常见反模式

反模式修正方法
报告“搜索日志”将方法细节保留在内部;只报告发现
缺少消歧处理添加冲突检测;构建负向过滤条件
未评估证据等级应用 T1-T4 评级;标注每项主张
省略空白章节加入该章节并注明“未发现”
缺少综合分析添加生物学模型 + 假设
静默失败在“数据缺口”中记录;实现备用方案
工具参数错误调用前通过 get_tool_info() 核实
GTEx 未返回结果尝试带版本的 ID ENSG*.version
缺少基础层先查询聚合器
未测试工具调用采用测试驱动:先编写测试脚本
工具目录缺少解读添加解读表,说明数据含义
夸大能力如实说明 API 无法提供的数据;改用计算流程
缺少统计分析添加 scipy/pandas 代码流程,完成工具无法执行的计算

用户反馈的快速修复方案

反馈修复方案
“报告太短”添加阶段 0 基础内容 + 阶段 1 消歧
“噪声太多”添加冲突过滤
“看不出什么内容重要”添加 T1-T4 证据等级
“缺少章节”添加包含最低要求的必备清单
“太长/难以阅读”将叙述内容与 JSON 分开
“只是论文列表”添加综合分析章节
“工具失败,没有数据”添加重试 + 回退链

技能模板

---
name: [domain]-research
description: [What + when triggers]
---

# [Domain] Research

## Workflow
Phase -1: Tool Verification → Phase 0: Foundation → Phase 1: Disambiguate
→ Phase 2: Search → Phase 3: Report

## Phase -1: Tool Verification
[Parameter corrections table]

## Phase 0: Foundation Data
[Aggregator query]

## Phase 1: Disambiguation
[IDs, collisions, baseline]

## Phase 2: Specialized Queries
[Query strategy, fallbacks]

## Phase 3: Report Synthesis
[Evidence grading, mandatory sections]

## Output Files
- [topic]_report.md, [topic]_bibliography.json

## Quantified Minimums
[Numbers per section]

## Completeness Checklist
[Required sections with checkboxes]

其他参考资料

评论

支持 Markdown