README
🚀 协作编码机器人项目
本项目是一个结合了 LangGraph 和 Model Context Protocol(MCP)的协作编码机器人。该系统由三部分构成,分别是一个 gateway server、多个 MCP servers 以及三个协作的 Coding Agents,能有效提升编码协作效率。
🚀 快速开始
1. 安装依赖项
# 安装代理包
pip install -e .
# 安装网关包
cd gateway
pip install -e .
cd ..
2. 配置环境变量
支持通过环境变量使用多个 LLM 提供商:
# LLM 配置 - 支持多个提供方:
LLM_MODEL=provider/model-name
# 支持的提供方和示例模型:
# - Anthropic: anthropic/claude-3-5-sonnet-20240620
# - OpenAI: openai/gpt-4
# - OpenRouter: openrouter/openai/gpt-4o-mini
# - Google: google/gemini-1.5-pro
# 不同提供方的 API Key
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
OPENROUTER_API_KEY=your_openrouter_api_key
GOOGLE_API_KEY=your_google_api_key
# OpenRouter 配置(如果使用 OpenRouter)
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
3. 配置 MCP 服务器
网关服务器通过 gateway/config.json 进行配置。默认启动两个 MCP 服务器:
{
"mcp": {
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/directory"
]
},
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
}
可以在 官方 MCP 服务器仓库 中添加更多服务器。
4. 启动网关服务器
cd gateway
python -m mcp_gateway.server
服务器将在默认端口 8808 上启动。
5. 配置代理
代理与网关的连接在 langgraph.json 中配置:
{
"dependencies": ["."],
"graphs": {
"agent": "./src/react_agent/graph.py:graph"
},
"env": ".env",
"mcp": {
"gateway_url": "http://localhost:8808"
}
}
6. 使用代理
在 LangGraph Studio 中打开文件夹!代理将自动:
- 连接到网关
- 发现可用工具
- 开始协作编码
✨ 主要特性
MCP Gateway Server
- 管理多个 MCP server 实例。
- 提供统一 API 接口访问工具。
- 处理与 MCP 服务器的通信。
- 通过简单 HTTP 接口暴露工具。
MCP Servers
- 特定功能的服务器:
- GitHub 服务器:支持仓库操作(读写、列表、搜索、创建分支、创建 PR 等)。
- 可添加更多服务器以扩展功能。
Coding Agents
- Orchestrator:从人类信息中收集上下文并使用 MCP 服务器访问 Linear 和 GitHub。根据需要委托 Planner 和 Coder。
- Planner:接收需求和代码上下文,制定计划并提出多个实现建议。不使用 MCP。
- Coder:接收代码上下文和拟议的实现,并在不同的 GitHub 分支上实施所有内容。
💻 使用示例
基础用法
在 LangGraph Studio 中打开项目文件夹,代理会自动连接网关、发现工具并开始协作编码。
📦 安装指南
见快速开始部分的安装依赖项、配置环境变量、配置 MCP 服务器、启动网关服务器、配置代理等步骤。
📚 详细文档
更多详细信息请参考:
🔧 技术细节
本系统结合了 LangGraph 和 MCP,通过 MCP Gateway Server 管理多个 MCP servers,实现工具的统一访问和通信。Coding Agents 中的 Orchestrator、Planner 和 Coder 协作完成编码任务。通过环境变量配置支持多个 LLM 提供商,可灵活选择不同的大语言模型。同时,可通过配置文件添加新的 MCP 服务器和自定义代理行为,方便系统扩展和定制。
📄 许可证
项目使用 MIT 许可证,详情见 LICENSE 文件。
🛠️ 开发指南
添加新服务器
在 config.json 中添加新的 MCP 服务器配置,然后重新启动网关。
自定义代理
可以通过修改 graph.py 和相关组件来自定义代理的行为。
🛠️ 可用工具
Filesystem Tools
- 文件读取
- 文件写入
- 目录遍历
- 文件删除
- 文件复制
Memory Tools
- 上下文存储
- 会话管理
- 数据持久化
- 历史记录查询
Scan to contact