使用模型上下文协议(MCP)实现的状态化代理编排系统的Python实现。
模型上下文协议(MCP)允许应用程序以标准化的方式为LLMs提供上下文,将提供上下文与实际LLM交互的责任分开。通过MCP,你可以构建暴露以下内容的服务器:
# 安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建项目的新目录
uv init mcp-agents-orchestra
cd mcp-agents-orchestra
# 创建虚拟环境并激活它
uv venv
source .venv/bin/activate # 在Unix/macOS上
.venv\Scripts\activate # 在Windows上
# 安装依赖项
uv add "mcp[cli]" httpx
# 创建项目的新目录
mkdir mcp-agents-orchestra
cd m
cp-agents-orchestra
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # 在Unix/macOS上
venv\Scripts\activate # 在Windows上
# 安装依赖项
pip install "mcp[cli]" httpx
将项目文件放置在你的目录中:
orchestrator.py - 实现状态机的主要MCP服务器orchestrator_client.py - 展示编排流程的客户端requirements.txt - 项目的依赖项.gitignore - Git忽略文件orchestrator.py - 实现状态机的主要MCP服务器orchestrator_client.py - 展示编排流程的客户端requirements.txt - 项目的依赖项python orchestrator.py
python orchestrator_client.py
确保已安装桌面版Claude。可以从Anthropic网站下载最新版本。
打开你的桌面版Claude配置文件:
macOS/Linux:
# 创建或编辑配置文件
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
# 路径可能因Windows版本而异
code %APPDATA%\Claude\claude_desktop_config.json
添加编排服务器配置:
{
"mcpServers": {
"agent-orchestrator": {
"command": "python",
"args": [
"/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py"
]
}
}
}
将路径替换为你orchestrator.py文件的绝对路径。
保存配置文件并重启桌面版Claude。
配置完成后,你可以:
Claude能够:
编排系统实现了具有以下状态的状态机:
orchestrator.py中的AgentState枚举中添加状态_get_available_transitions()中的转换逻辑通过创建带有@mcp.tool()装饰器的函数来添加新工具:
@mcp.tool()
def my_custom_tool(arg1: str, arg2: int, ctx: Context) -> str:
"""描述此工具的作用
参数:
arg1: 描述arg1
arg2: 描述arg2
"""
# 实现代码
return "结果"
MCP CLI提供了开发和测试的工具:
# 如果尚未安装,请安装MCP CLI
pip install "mcp[cli]"
# 使用MCP Inspector测试你的服务器
mcp dev orchestrator.py
# 在桌面版Claude中安装
mcp install orchestrator.py
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async with stdio_client(StdioServerParameters(command="python", args=["orchestrator.py"])) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 测试状态转换
await session.call_tool("transition_state", arguments={"new_state": "PLANNING"})
本项目根据MIT许可证发布 - 查看LICENSE文件获取详细信息。