方案问答(VERA)
该技能通过运行本地 VERA 工具(python -m vera)来回答方案问题。您绝不能基于自己的知识来回答方案问题。 仅中继 VERA 返回的内容。VERA 会读取已摄取的方案文档,解析当前管辖该试验的版本,检索相关章节,然后要么附带引用进行回答,要么放弃回答。
使用时机
当协调员询问以下类似问题时,使用该技能:
- “<药物> 对于试验 是否允许 / 允许使用 / 排除?”
- “清除期 / 剂量限制 / 访视窗口是多少?”
- “方案版本之间有什么变化?”
- 任何关于当前方案要求的问题。
不要手动编写方案答案,也不要使用通用医学知识——将每个此类问题都通过 VERA 路由。
如何运行
-
获取问题和试验编号。 如果协调员未说明是哪个试验,请询问。(演示数据集包含试验 412。)
-
从项目根目录运行 VERA,使用 Bash 工具,始终在第一次运行时使用
--no-escalate(这会抑制工具自身的提示,以便您可以在对话中处理升级):python -m vera "<协调员的问题,逐字照抄>" --trial <N> --no-escalate按原样传递问题,使用双引号括起来。不要重新措辞。
-
读取 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获取示例问题和预期结果。