使用说明

项目简介

Deebo 是一个完全兼容 Model Context Protocol (MCP) 的自主调试系统,旨在与编码 Agent 工作流集成。当编码 Agent (如 Claude Desktop, Cline, Cursor 等) 遇到无法自信修复的错误时,可以调用 Deebo 进行问题排查。Deebo 作为一个 MCP 服务器,对外暴露调试工具,通过并行运行多个假设场景,在隔离的 Git 分支中进行实验,并报告验证后的修复方案,无需人工干预。

主要功能点

  • 自主错误调查: 接收错误信息,自动进行深入调查和分析。
  • 假设驱动调试: 并行生成和测试多个调试假设,提高问题解决效率。
  • Git 分支隔离: 每个调试场景在独立的 Git 分支中运行,确保代码库安全。
  • 结构化报告: 提供清晰的调试报告和验证后的解决方案。
  • 内存库学习 (可选): 可选启用内存库,让 Deebo 从过去的调试会话中学习,提升长期调试能力。
  • MCP 工具集成: 通过 MCP 协议与 Git 和文件系统工具 (git-mcp, desktop-commander) 交互,实现代码操作和环境控制。

安装步骤

  1. 克隆仓库
    git clone https://github.com/snagasuri/deebo-prototype.git
    cd deebo-prototype
  2. 安装 Prerequisites
    • 确保已安装 Git 和 Node.js (>= 18.x)。
  3. 安装 MCP 工具
    • 安装 'uv' 和 'uvx' (或使用 'pip'):
      curl -LsSf https://astral.sh/uv/install.sh | sh
      uvx install mcp-server-git
    • 安装并配置 'desktop-commander':
      npx @wonderwhy-er/desktop-commander@latest setup
  4. 安装 Deebo 依赖并构建
    npm install
    npm run build
  5. 注册 Deebo 为 MCP 服务器
    • 打开你的 MCP 客户端 (如 Cline, Claude Desktop) 的 MCP 服务器配置文件 (例如 Cline 的 'cline_mcp_settings.json' 或 Claude Desktop 的 'claude_desktop_config.json')。
    • 在 'mcpServers' 对象中添加 Deebo 的配置信息。

服务器配置

以下是添加到 MCP 客户端配置文件中的 Deebo 服务器配置示例。请根据你的实际路径和 API 密钥进行修改。

{
  "mcpServers": {
    "deebo-prototype": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 30,
      "command": "node",
      "args": [
        "--experimental-specifier-resolution=node",
        "--experimental-modules",
        "--max-old-space-size=4096",
        "/absolute/path/to/deebo-prototype/build/index.js"  // 修改为 Deebo build 后的 index.js 文件的绝对路径
      ],
      "env": {
        "NODE_ENV": "development",
        "USE_MEMORY_BANK": "true",  // 可选: 启用内存库

        "MOTHER_HOST": "openrouter",  // 母 Agent 使用的模型提供商,可选: openrouter, anthropic, gemini
        "MOTHER_MODEL": "anthropic/claude-3.5-sonnet", // 母 Agent 使用的模型名称

        "SCENARIO_HOST": "openrouter", // 场景 Agent 使用的模型提供商,可选: openrouter, anthropic, gemini
        "SCENARIO_MODEL": "anthropic/claude-3.5-sonnet", // 场景 Agent 使用的模型名称

        "OPENROUTER_API_KEY": "sk-or-v1-...", // 如果使用 openrouter,请填写 OpenRouter API Key
        "GEMINI_API_KEY": "AIzaSy...", // 如果使用 gemini,请填写 Gemini API Key
        "ANTHROPIC_API_KEY": "sk-ant-..."  // 如果使用 anthropic,请填写 Anthropic API Key
      },
      "transportType": "stdio"
    }
  }
}

注意:

  • 请根据你选择的 'MOTHER_HOST' 和 'SCENARIO_HOST' 填写对应的 API Key。
  • '/absolute/path/to/deebo-prototype' 需要替换为你的 'deebo-prototype' 仓库的绝对路径。
  • 修改配置文件后,重启你的 MCP 客户端使配置生效。

基本使用方法

Deebo 通过以下 MCP 工具对外提供调试功能,你可以通过 MCP 客户端调用这些工具:

  • start: 启动一个新的调试会话。

    <deebo>
      <start
        error="ReferenceError: x is not defined"  // 错误信息
        repoPath="/my/project/path"             // 代码仓库的绝对路径
        context="// suspect function below\nfunction handleClick() { ... }" // 可选: 代码上下文
        filePath="src/ui/buttons.ts"            // 可选: 错误文件路径
        language="typescript"                   // 可选: 编程语言
      />
    </deebo>
  • check: 查询调试会话的状态。

    <deebo>
      <check sessionId="session-1712268439123" />  // 会话 ID
    </deebo>
  • cancel: 取消调试会话。

    <deebo>
      <cancel sessionId="session-1712268439123" /> // 会话 ID
    </deebo>
  • add_observation: 为 Agent 添加外部观察信息 (例如来自其他工具的反馈)。

    <deebo>
      <add_observation
        agentId="scenario-session-1712268439123-2" // Agent ID (母 Agent 或场景 Agent)
        observation="The error disappears if we disable memoization" // 观察内容
      />
    </deebo>

    注意: 'agentId' 可以是 'mother' 或 'scenario-session-xxx-x' 格式。

信息

分类

开发者工具