链式草稿推理服务器

一个实现链式草稿推理方法的服务器,通过生成简洁的中间推理步骤显著减少令牌使用,同时保持准确性,适用于多种推理任务和领域。

  • by stat-guy
  • Python
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 stat-guy/chain-of-draft

使用说明

草稿链(CoD)MCP服务器

概述

该MCP服务器实现了草稿链(CoD)推理方法,如研究论文“草稿链:少写多想”中所述。CoD是一种新颖的范式,允许LLM在解决任务时生成简洁但信息丰富的中间推理输出,在保持准确性的同时显著减少令牌使用。

关键利益

  • 效率:代币使用量大幅减少(仅为标准CoT的7.6%)
  • 速度:由于生成时间更短,响应速度更快
  • 成本节约:降低LLM调用的API成本
  • 保持准确性:与CoT相比,精度相似甚至有所提高
  • 灵活性:适用于各种推理任务和领域

特性

  1. 草案实施的核心链

    • 简洁的推理步骤(通常不超过5个单词)
    • 格式强制
    • 答案抽取
  2. 性能分析

    • 令牌使用跟踪
    • 解决方案精度监控
    • 执行时间测量
    • 特定领域的性能指标
  3. 自适应字数限制

    • 自动复杂度估计
    • 字数限制的动态调整
    • 特定域校准
  4. 综合示例数据库

    • CoT到CoD的转变
    • 特定领域的示例(数学、代码、生物学、物理、化学、拼图)
    • 基于问题相似度的示例检索
  5. 格式强制

    • 后处理以确保遵守字数限制
    • 台阶结构保护
    • 依从性分析
  6. 混合推理方法

    • CoD和CoT之间的自动选择
    • 特定领域优化
    • 历史绩效选择
  7. OpenAI API兼容性

    • 直接替换标准OpenAI客户端
    • 支持补全和聊天界面
    • 轻松集成到现有工作流中

设置和安装

先决条件

  • Python 3.10+(用于Python实现)
  • Node.js 18+(用于JavaScript实现)
  • 无烟煤API键

Python安装

  1. 克隆存储库
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 在中配置API密钥 .env 文件:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 运行服务器:
    python server.py
    

JavaScript安装

  1. 克隆存储库
  2. 安装依赖项:
    npm install
    
  3. 在中配置API密钥 .env 文件:
    ANTHROPIC_API_KEY=your_api_key_here
    
  4. 运行服务器:
    node index.js
    

Claude桌面集成

要与Claude Desktop集成,请执行以下操作:

  1. 从以下位置安装Claude Desktop claude.ai/下载

  2. 创建或编辑Claude Desktop配置文件:

    ~/Library/Application Support/Claude/claude_desktop_config.json
    
  3. 添加服务器配置(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"
                }
            }
        }
    }
    
  4. 重新启动克劳德桌面

您还可以使用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实现

  1. 分析服务:跟踪不同问题域和推理方法的性能指标
  2. 复杂性估计器:分析问题以确定适当的字数限制
  3. 示例数据库:管理和检索示例,将CoT示例转换为CoD格式
  4. 格式执行器:确保推理步骤符合字数限制
  5. 重新分配选择器:根据问题特征在CoD和CoT之间进行智能选择

JavaScript实现

  1. analyticsDb:用于跟踪性能指标的内存数据库
  2. 复杂性估计器:分析问题以确定复杂性和适当的字数限制
  3. 格式执行器:确保推理步骤符合字数限制
  4. 推理选择器:根据问题特征和历史性能自动在CoD和CoT之间进行选择

这两种实现都遵循相同的核心原则,并提供相同的MCP工具,使其在大多数用例中可互换。

许可证

这个项目是开源的,可以在麻省理工学院的许可下使用。