迭代验证优先MCP服务器

一个基于TypeScript实现的迭代验证优先MCP服务器,通过验证优先策略提升大语言模型推理的一致性。

  • by mrorigo
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mrorigo/critique-mcp

使用说明

批评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

入门指南

  1. 安装依赖项:

    npm install
    
  2. 在本地运行MCP服务器(通过STDIO连接):

    npm run dev
    
  3. 生产建设:

    npm run build
    
  4. 使用在中配置的覆盖率阈值运行linting或测试 vitest.config.ts:

    npm run lint
    npm test
    

Iter VF工具详细信息

  • IterVFWorkflowTool 包装可重复使用的物品 runSingleVFStep runner,并可选择接受自定义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的后续迭代中衍生出更丰富的快速制作启发式方法。

支持我的工作

你可以通过注册来支持我的工作;