草稿链(CoD)MCP服务器
概述
该MCP服务器实现了草稿链(CoD)推理方法,如研究论文“草稿链:少写多想”中所述。CoD是一种新颖的范式,允许LLM在解决任务时生成简洁但信息丰富的中间推理输出,在保持准确性的同时显著减少令牌使用。
关键利益
- 效率:代币使用量大幅减少(仅为标准CoT的7.6%)
- 速度:由于生成时间更短,响应速度更快
- 成本节约:降低LLM调用的API成本
- 保持准确性:与CoT相比,精度相似甚至有所提高
- 灵活性:适用于各种推理任务和领域
特性
- 草案实施的核心链
- 简洁的推理步骤(通常不超过5个单词) - 格式强制 - 答案抽取
- 性能分析
- 令牌使用跟踪 - 解决方案精度监控 - 执行时间测量 - 特定领域的性能指标
- 自适应字数限制
- 自动复杂度估计 - 字数限制的动态调整 - 特定域校准
- 综合示例数据库
- CoT到CoD的转变 - 特定领域的示例(数学、代码、生物学、物理、化学、拼图) - 基于问题相似度的示例检索
- 格式强制
- 后处理以确保遵守字数限制 - 台阶结构保护 - 依从性分析
- 混合推理方法
- CoD和CoT之间的自动选择 - 特定领域优化 - 历史绩效选择
- OpenAI API兼容性
- 直接替换标准OpenAI客户端 - 支持补全和聊天界面 - 轻松集成到现有工作流中
设置和安装
先决条件
- Python 3.10+(用于Python实现)
- Node.js 18+(用于JavaScript实现)
- 无烟煤API键
Python安装
- 克隆存储库
- 安装依赖项:
pip install -r requirements.txt- 在中配置API密钥
.env文件:
ANTHROPIC_API_KEY=your_api_key_here- 运行服务器:
python server.pyJavaScript安装
- 克隆存储库
- 安装依赖项:
npm install- 在中配置API密钥
.env文件:
ANTHROPIC_API_KEY=your_api_key_here- 运行服务器:
node index.jsClaude桌面集成
要与Claude Desktop集成,请执行以下操作:
- 从以下位置安装Claude Desktop claude.ai/下载
- 创建或编辑Claude Desktop配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json- 添加服务器配置(Python版本):
{
"mcpServers": {
"chain-of-draft": {
"command": "python3",
"args": ["/absolute/path/to/cod/server.py"],
"env": {
"ANTHROPIC_API_KEY": "your_api_key_here"
}
}
}
}或者对于JavaScript版本:
{
"mcpServers": {
"chain-of-draft": {
"command": "node",
"args": ["/absolute/path/to/cod/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your_api_key_here"
}
}
}
}- 重新启动克劳德桌面
您还可以使用Claude CLI添加服务器:
# For Python implementation
claude mcp add chain-of-draft -e ANTHROPIC_API_KEY="your_api_key_here" "python3 /absolute/path/to/cod/server.py"
# For JavaScript implementation
claude mcp add chain-of-draft -e ANTHROPIC_API_KEY="your_api_key_here" "node /absolute/path/to/cod/index.js"可用工具
Chain of Draft服务器提供以下工具:
| 工具 | 说明 |
|---|---|
chain_of_draft_solve | 使用草稿链推理解决问题 |
math_solve | 用CoD解决数学问题 |
code_solve | 使用CoD解决编码问题 |
logic_solve | 用CoD解决逻辑问题 |
get_performance_stats | 获取CoD与CoT的性能统计数据 |
get_token_reduction | 获取代币减少统计数据 |
analyze_problem_complexity | 分析问题复杂性 |
开发人员使用情况
Python客户端
如果你想在Python代码中直接使用Chain of Draft客户端:
from client import ChainOfDraftClient
# Create client
cod_client = ChainOfDraftClient()
# Use directly
result = await cod_client.solve_with_reasoning(
problem="Solve: 247 + 394 = ?",
domain="math"
)
print(f"Answer: {result['final_answer']}")
print(f"Reasoning: {result['reasoning_steps']}")
print(f"Tokens used: {result['token_count']}")JavaScript客户端
对于JavaScript/Node.js应用程序:
import { Anthropic } from "@anthropic-ai/sdk";
import dotenv from "dotenv";
// Load environment variables
dotenv.config();
// Create the Anthropic client
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// Import the Chain of Draft client
import chainOfDraftClient from './lib/chain-of-draft-client.js';
// Use the client
async function solveMathProblem() {
const result = await chainOfDraftClient.solveWithReasoning({
problem: "Solve: 247 + 394 = ?",
domain: "math",
max_words_per_step: 5
});
console.log(`Answer: ${result.final_answer}`);
console.log(`Reasoning: ${result.reasoning_steps}`);
console.log(`Tokens used: ${result.token_count}`);
}
solveMathProblem();实现细节
该服务器在Python和JavaScript实现中都可用,两者都由几个集成组件组成:
Python实现
- 分析服务:跟踪不同问题域和推理方法的性能指标
- 复杂性估计器:分析问题以确定适当的字数限制
- 示例数据库:管理和检索示例,将CoT示例转换为CoD格式
- 格式执行器:确保推理步骤符合字数限制
- 重新分配选择器:根据问题特征在CoD和CoT之间进行智能选择
JavaScript实现
- analyticsDb:用于跟踪性能指标的内存数据库
- 复杂性估计器:分析问题以确定复杂性和适当的字数限制
- 格式执行器:确保推理步骤符合字数限制
- 推理选择器:根据问题特征和历史性能自动在CoD和CoT之间进行选择
这两种实现都遵循相同的核心原则,并提供相同的MCP工具,使其在大多数用例中可互换。
许可证
这个项目是开源的,可以在麻省理工学院的许可下使用。
