批评MCP——验证优先迭代服务器
此存储库包含迭代验证优先(Iter VF)MCP服务器的TypeScript实现,该服务器将大型语言模型采样卸载到MCP主机。该工作流程的灵感来自本文中描述的验证优先推理策略 *让LLMs先核实一下几乎是免费午餐*,这表明在生成自己的推理路径之前,让LLM检查候选答案可以在不进行大量计算的情况下显著提高一致性。
理论与起源
Iter VF工作流依赖于反向推理:在每次迭代中,宿主模型都会验证之前的候选答案,对其进行评论,然后在遵守结构化JSON模式的同时发出正确的答案。这种马尔可夫方法通过只保留最新答案来防止上下文膨胀(A_{i-1})在步骤之间,MCP服务器处理调度、基于Zod的验证和弹性日志记录。
清华大学电子工程系原作者:
- 吴世光 – (
wsg23@mails.tsinghua.edu.cn) - 姚全明 – (
qyaoaa@tsinghua.edu.cn)
项目布局
src/
├── config/ # shared constants & prompt templates
├── server/
│ ├── schemas/ # Zod schemas for tool input/output
│ ├── tools/ # Iter-VF tool & helpers
│ └── utils/ # Logging + error helpers
├── types/ # Reusable MCP + VF types
└── index.ts # MCP server bootstrapper
tests/
├── iter-vf-tool.test.ts # Unit coverage for tool behavior入门指南
- 安装依赖项:
npm install- 在本地运行MCP服务器(通过STDIO连接):
npm run dev- 生产建设:
npm run build- 使用在中配置的覆盖率阈值运行linting或测试
vitest.config.ts:
npm run lint
npm testIter VF工具详细信息
IterVFWorkflowTool包装可重复使用的物品runSingleVFSteprunner,并可选择接受自定义step函数(适用于单元测试或模拟主机)。- 每次迭代都会生成结构化JSON,其中包括:
- is_a_prime_correct - verification_critique - newly_generated_answer
- 服务器使用时间戳维护每个步骤的历史记录,使用Zod验证输入,并通过以下方式记录进度/调试消息
vfLogger. - 取样请求是通过以下方式提出的
sampling/createMessage;MCP主机负责向用户呈现提示并返回结构化输出。
测试和覆盖范围
- 现场测试
tests/iter-vf-tool.test.ts并模拟采样流道,以覆盖快乐/特殊的路径。 - Vitest(使用V8覆盖率提供程序)确保语句、分支、函数和行保持在70-80%的目标范围内。
npm test贡献与扩展
如果你建立在这个实现之上,请参考上面的原始论文和作者。该项目的结构使得可以以最小的摩擦添加额外的MCP工具、测井或传输层。未来的工作可能包括与真实MCP主机的集成测试,或从Iter VF的后续迭代中衍生出更丰富的快速制作启发式方法。
支持我的工作
你可以通过注册来支持我的工作;
