返回市场
分发代理

分发代理

作者:abhinav-mangla2 星标更新:2025-09-01

项目介绍

Dispatch Agent

npm 版本 许可证 TypeScript MCP

一个智能的MCP(模型上下文协议)服务器,通过React代理提供专门的文件系统操作。设计用于增强像Claude Code这样的AI应用程序,通过将文件系统任务委托给专注于子代理来减少上下文窗口的使用并提高响应准确性。

功能

  • 专用文件系统代理:使用LangGraph进行文件操作的专用React代理
  • MCP集成:通过模型上下文协议与AI应用程序无缝集成
  • 多LLM支持:支持OpenAI和Anthropic语言模型
  • 并发操作:支持多个同时代理调用
  • 上下文优化:设计简洁直接的响应以最小化令牌使用
  • 灵活配置:基于环境的不同部署场景配置

安装

先决条件

  • Node.js 18.0.0或更高版本
  • npm或yarn包管理器

从npm安装

npm install -g dispatch-agent

从源码构建

git clone https://github.com/abhinav-mangla/dispatch-agent.git
cd dispatch-agent
npm install
npm run build

配置

使用环境变量配置代理:

必需变量

export API_KEY="your-api-key-here"

可选变量

# LLM提供商(默认:openai)
export LLM_PROVIDER="openai"  # 或 "anthropic"

# 基础URL(默认:https://openrouter.ai/api/v1)
export BASE_URL="https://api.openai.com/v1"

# 模型名称(默认:openai/gpt-4o-mini)
export MODEL_NAME="gpt-4o"

# 温度(默认:0,范围:0-2)
export TEMPERATURE="0.1"

提供商特定设置

OpenAI

export LLM_PROVIDER="openai"
export API_KEY="sk-..."
export BASE_URL="https://api.openai.com/v1"
export MODEL_NAME="gpt-4o"

Anthropic

export LLM_PROVIDER="anthropic"
export API_KEY="sk-ant-..."
export MODEL_NAME="claude-3-5-sonnet-20241022"

OpenRouter

export API_KEY="sk-or-..."
export BASE_URL="https://openrouter.ai/api/v1"
export MODEL_NAME="anthropic/claude-3.5-sonnet"
export LLM_PROVIDER="anthropic"

使用

基本使用

启动具有工作目录的MCP服务器:

# 如果全局安装
dispatch-agent /path/to/your/project

# 或使用npx(无需安装)
npx dispatch-agent /path/to/your/project

与Claude Desktop集成

添加到您的Claude Desktop MCP配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "dispatch-agent": {
      "command": "npx",
      "args": ["dispatch-agent", "/path/to/your/project"],
      "env": {
        "API_KEY": "your-api-key-here",
        "LLM_PROVIDER": "anthropic",
        "MODEL_NAME": "claude-3-5-sonnet-20241022",
        "TEMPERATURE": "0"
      }
    }
  }
}

或者如果全局安装:

{
  "mcpServers": {
    "dispatch-agent": {
      "command": "dispatch-agent",
      "args": ["/path/to/your/project"],
      "env": {
        "API_KEY": "your-api-key-here",
        "LLM_PROVIDER": "openai",
        "BASE_URL": "https://api.openai.com/v1",
        "MODEL_NAME": "gpt-4o",
        "TEMPERATURE": "0"
      }
    }
  }
}

与其他MCP客户端集成

该服务器实现了标准的MCP协议,并可以与任何兼容MCP的客户端集成:

import { StdioServerTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { Client } from '@modelcontextprotocol/sdk/client/index.js';

const client = new Client({
  name: "dispatch-agent-client",
  version: "1.0.0"
}, {
  capabilities: {}
});

const transport = new StdioServerTransport({
  command: "dispatch-agent",
  args: ["/path/to/working/directory"]
});

await client.connect(transport);

性能改进

调度代理架构为AI应用程序提供了显著的性能优势:

🎯 上下文窗口优化

  • 通过委托文件系统操作,主代理上下文使用量减少了50%
  • 通过专业化任务处理,推理时间加快了32%
  • 消除了在主要对话上下文中包含文件内容的需求

💰 成本降低

  • 通过高效的上下文管理,平均成本降低了46%
  • 文件系统操作模式和响应的缓存
  • 主要AI交互中的令牌消耗减少

🎪 准确性提升

  • 通过专业代理设计,准确性提高了9.1%
  • 针对文件系统操作的专业训练减少了幻觉
  • 专用于文件系统任务的提示确保了一致的输出

⚡ 更快的结果

  • 多个文件系统操作的并发代理执行
  • 长文件内容的压缩上下文处理
  • 优化用于CLI和程序化使用的直接简洁响应

📊 资源效率

  • 对于文件系统任务,主LLM API调用减少了45%
  • 文件元数据和目录结构的本地处理
  • 智能缓存频繁访问的文件信息

API 文档

工具:dispatch_agent

服务器暴露了一个单一工具用于代理调度:

输入模式

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "代理需要处理的消息/任务"
    }
  },
  "required": ["message"]
}

示例用法

{
  "name": "dispatch_agent",
  "arguments": {
    "message": "查找src目录中导入React的所有TypeScript文件"
  }
}

响应格式

{
  "content": [
    {
      "type": "text",
      "text": "找到5个导入React的TypeScript文件:\n- /abs/path/src/components/App.tsx\n- /abs/path/src/components/Button.tsx\n- /abs/path/src/hooks/useEffect.tsx\n- /abs/path/src/pages/Home.tsx\n- /abs/path/src/utils/ReacHelpers.tsx"
    }
  ]
}

可用的文件系统操作

调度代理可以访问以下文件系统工具:

  • 读取文件:文本文件、媒体文件、一次读取多个文件
  • 列出目录:目录内容和树结构
  • 搜索文件:基于内容的文件搜索
  • 文件元数据:大小、修改日期、权限
  • 目录遍历:递归目录探索

最佳实践

何时使用Dispatch Agent

推荐用于:

  • 在多个文件中搜索关键词
  • 根据部分名称或模式查找文件
  • 复杂的文件系统查询(“哪些文件包含X?”)
  • 目录结构探索
  • 多个并发文件系统操作

何时使用直接工具

不推荐用于:

  • 访问已知的具体文件路径
  • 简单的文件操作
  • 修改文件(代理是只读的)
  • 非文件系统任务

最优使用模式

# 好:复杂的搜索查询
"查找提到数据库的所有配置文件"
"列出项目中大于1MB的Python文件"

# 更适合直接工具:具体文件访问
"读取src/config.json的内容"
"列出/src目录下的文件"

开发

构建项目

npm run build

开发模式

npm run dev

项目结构

dispatch-agent/
├── src/
│   ├── index.ts          # CLI入口点
│   ├── server.ts         # MCP服务器实现
│   ├── tools/
│   │   └── dispatch-agent.ts  # 核心代理逻辑
│   ├── types/
│   │   └── index.ts      # TypeScript类型定义
│   └── utils/
│       └── validation.ts # 输入验证实用工具
├── package.json
├── tsconfig.json
└── README.md

贡献

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature/new-feature
  3. 进行更改并添加测试(如适用)
  4. 确保TypeScript编译通过:npm run build
  5. 提交更改:git commit -am '添加新功能'
  6. 推送到分支:git push origin feature/new-feature
  7. 提交拉取请求

开发指南

  • 遵循TypeScript最佳实践
  • 维持现有的代码风格
  • 更新新功能的文档
  • 确保全面的错误处理
  • 保持CLI使用的响应简洁

许可证

MIT许可证 - 查看LICENSE文件获取详情。

作者

Abhinav Mangla - GitHub

支持

对于问题、建议或贡献:


关键词:MCP,模型上下文协议,AI代理,文件系统,LangGraph,React代理,Claude,OpenAI,Anthropic