Chain of Draft 工具
实现了链式草稿推理方法,在解决问题时生成极简的中间推理输出,大幅减少令牌使用量的同时保持准确性。
服务介绍
Chain of Draft (CoD) MCP 服务器
概述
此MCP服务器实现了在研究论文"Chain of Draft: Thinking Faster by Writing Less"中描述的Chain of Draft (CoD)推理方法。CoD是一种新颖的范式,允许大型语言模型(LLMs)在解决任务时生成简约但信息丰富的中间推理输出,大幅减少了令牌使用量同时保持了准确性。
主要优点
- 效率:显著减少令牌使用量(仅为标准CoT的7.6%)
- 速度:由于生成时间较短,响应更快
- 成本节约:降低LLM调用的API成本
- 保持准确性:与CoT相比,准确度相似甚至有所提高
- 灵活性:适用于各种推理任务和领域
特性
-
核心Chain of Draft实现
- 简洁的推理步骤(通常不超过5个单词)
- 格式强制执行
- 答案提取
-
性能分析
- 令牌使用跟踪
- 解决方案准确性监控
- 执行时间测量
- 领域特定的性能指标
-
自适应字数限制
- 自动复杂度估计
- 动态调整字数限制
- 领域特定校准
-
全面示例数据库
- CoT到CoD的转换
- 领域特定示例(数学、代码、生物学、物理学、化学、谜题)
- 基于问题相似性的示例检索
-
格式强制执行
- 后处理以确保遵守字数限制
- 保留步骤结构
- 遵守情况分析
-
混合推理方法
- 在CoD和CoT之间自动选择
- 领域特定优化
- 基于历史性能的选择
-
OpenAI API兼容性
- 可直接替换标准的OpenAI客户端
- 支持完成和聊天界面
- 易于集成到现有工作流程中
设置与安装
先决条件
- Python 3.10+(对于Python实现)
- Node.js 18+(对于JavaScript实现)
- Anthropic API密钥
Python安装
- 克隆仓库
- 安装依赖项:
pip install -r requirements.txt - 在
.env文件中配置API密钥:ANTHROPIC_API_KEY=your_api_key_here - 运行服务器:
python server.py
JavaScript安装
- 克隆仓库
- 安装依赖项:
npm install - 在
.env文件中配置API密钥:ANTHROPIC_API_KEY=your_api_key_here - 运行服务器:
node index.js
Claude桌面集成
要与Claude桌面集成:
-
从 claude.ai/download 安装 Claude Desktop
-
创建或编辑 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 Desktop
您也可以使用 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 |
使用 Chain of Draft 推理解决问题 |
math_solve |
使用 CoD 解决数学问题 |
code_solve |
使用 CoD 解决编程问题 |
logic_solve |
使用 CoD 解决逻辑问题 |
get_performance_stats |
获取 CoD 与 CoT 的性能统计数据 |
get_token_reduction |
获取 token 减少统计信息 |
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 实现
- AnalyticsService:跟踪不同问题领域和推理方法的性能指标
- ComplexityEstimator:分析问题以确定适当的字数限制
- ExampleDatabase:管理和检索示例,将 CoT 示例转换为 CoD 格式
- FormatEnforcer:确保推理步骤符合字数限制
- ReasoningSelector:根据问题特征智能选择 CoD 或 CoT
JavaScript 实现
- analyticsDb:用于跟踪性能指标的内存数据库
- complexityEstimator:分析问题以确定复杂度和适当的字数限制
- formatEnforcer:确保推理步骤符合字数限制
- reasoningSelector:根据问题特征和历史表现自动选择 CoD 或 CoT
这两种实现遵循相同的核心原则,并提供相同的 MCP 工具,使得它们在大多数使用场景下可以互换。
许可证
此项目是开源的,并在 MIT 许可下可用。