Community写作与编辑github.com

thebitanpaul/VERA

版本显式检索与回答(VERA)——针对临床试验协调员关于当前试验方案的问题,仅使用当前生效的版本进行回答;若方案未涵盖该问题,则放弃回答而非猜测。

VERA 是什么?

VERA(版本显式检索与回答)技能使AI助手能够通过本地VERA工具(`python -m vera`)准确回答临床试验协调员关于试验方案的问题。该技能的核心价值在于确保答案严格基于当前有效的方案版本,并明确标注版本信息和引用来源,杜绝AI利用自身知识进行猜测。它支持在Claude Code、Cursor等支持Bash工具和直接Python执行的平台上使用。工作流程包括:捕获用户问题及试验编号、运行VERA工具并传递问题与`--no-escalate`标志、解析输出并提供带有版本和引用的答案,或在证据不足时明确表示无法回答并建议升级。升级操作通过`--escalate`标记自动创建Azure DevOps工作项或本地JSON文件。该技能默认使用确定性模拟模型,无需额外配置;若需真实模型,需提供`GEMINI_API_KEY`或`ANTHROPIC_API_KEY`。VERA的输出包含管辖版本、答案正文、出处块和验证器状态,必须完整传达给用户,尤其是版本和变更披露。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add thebitanpaul/VERA

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

方案问答(VERA)

该技能通过运行本地 VERA 工具(python -m vera)来回答方案问题。您绝不能基于自己的知识来回答方案问题。 仅中继 VERA 返回的内容。VERA 会读取已摄取的方案文档,解析当前管辖该试验的版本,检索相关章节,然后要么附带引用进行回答,要么放弃回答。

使用时机

当协调员询问以下类似问题时,使用该技能:

  • “<药物> 对于试验 是否允许 / 允许使用 / 排除?”
  • “清除期 / 剂量限制 / 访视窗口是多少?”
  • “方案版本之间有什么变化?”
  • 任何关于当前方案要求的问题。

不要手动编写方案答案,也不要使用通用医学知识——将每个此类问题都通过 VERA 路由。

如何运行

  1. 获取问题和试验编号。 如果协调员未说明是哪个试验,请询问。(演示数据集包含试验 412。)

  2. 从项目根目录运行 VERA,使用 Bash 工具,始终在第一次运行时使用 --no-escalate(这会抑制工具自身的提示,以便您可以在对话中处理升级):

    python -m vera "<协调员的问题,逐字照抄>" --trial <N> --no-escalate
    

    按原样传递问题,使用双引号括起来。不要重新措辞。

  3. 读取 VERA 的输出并中继它(见下文)。保留每条引用。

如何读取和中继结果

VERA 会输出以下两种情况之一。

A. 有答案

输出以管辖版本开头,然后是 [backend: ...] 行,接着是答案、Provenance: 块和 Verifier: PASSED 行。例如:

Trial 412: governing version v3.0 (effective 2025-03-01) as of 2026-07-24
[backend: mock]
Per Trial 412 v3.0 §5.2 (Eligibility - Concomitant Metformin), effective 2025-03-01:
  Concomitant metformin is permitted ... does not exceed 2000 mg/day ...
Change disclosure — this differs from the earlier Trial 412 v1.0 §5.2 ...
Provenance:
  [current]    Trial 412 v3.0 §5.2 ...
Verifier: PASSED — ...

用平实的语言中继给协调员,并且始终保留:

  • 答案本身(例如“允许,每日不超过 2000 毫克”),
  • 引用——试验、版本、章节和生效日期,
  • 任何变更披露(“这比版本 1.0(排除了它)有所更改”)。

切勿丢弃引用或版本——知道答案来自哪个版本是整个技能的核心。

B. 放弃回答

如果输出包含:

INSUFFICIENT EVIDENCE — escalating

Reason: <原因>

则表示 VERA 无法安全回答。当当前方案版本中未涉及该主题、检索置信度太低或答案无法在引用的段落中找到依据时,就会发生这种情况。不要用自己的知识来填补空白。

用平实的语言告知协调员,无法根据当前方案回答该问题,并给出原因。然后询问他们:

“我无法根据当前方案回答这个问题。您希望我将它升级给方案团队以便他们跟进吗?”

  • 如果同意,使用 --escalate 而非 --no-escalate 重新运行相同的命令:

    python -m vera "<相同问题>" --trial <N> --escalate
    

    这将创建一个 Azure DevOps 工作项(在生产环境中通过 ADO MCP 服务器,或在此演示中为 var/escalations/ 下的 JSON 文件),其中总结了问题、试验和原因。向协调员确认该问题已提交。

  • 如果不同意,则不执行任何进一步操作,并确认该问题未得到回答。

在升级之前始终询问——这可以防止大量低价值工单的涌入。

备注

  • 默认情况下,在确定性模拟模型上运行(无需设置)。要使用真实模型,请将 GEMINI_API_KEY(或 ANTHROPIC_API_KEY)添加到 .env 文件中;请参阅 .env.example。后端选择不会改变您使用此技能的方式。
  • 如果输出包含关于后端的 [warning] 行,则表示实时模型不可用,而是由确定性回退模型进行了回答。答案仍然基于方案——请提及此降级情况,不要隐瞒。
  • 请参阅 README.md 获取示例问题和预期结果。

相关技能