代理流程:MCP+A2A演示
一个分布式代理编排系统,展示了 代理人对代理人(A2A) 和 模型上下文协议(MCP) 使用LangChain的标准。
建筑
- 动态路由器:使用LLM根据代理卡路由请求。
- 数据驱动代理:在中通过JSON定义代理
/agents及其MCP工具/implementations. - 人力支持的新闻代理:一个可发现的A2A新闻专家,在UI收件箱面板中暂停等待回复。
- 可观测性:用于原始JSON-RPC协议流量的实时事件检查器。
快速开始
- 创建一个
.env与您的文件GEMINI_API_KEY. - (可选)设置
DEFAULT_MODEL(默认为gemini-3-flash-preview). - 使用Docker Compose或纯Python启动堆栈。
选项A:Docker编写
docker compose up --build打开 http://localhost:8000 开始。
选项B:Python(无Docker)
安装依赖项:
uv sync从repo根目录在3个终端中运行:
终端1(编排器+UI):
uv run uvicorn backend.main:app --host 127.0.0.1 --port 8000此过程还服务于嵌入式 NewsSpecialist 代理人在 /api/news-agent 以及侧边栏UI中的人工响应收件箱。
2号航站楼(数学专家):
uv run python -m backend.agent_server --agent math_specialist --port 80013号航站楼(气象专家):
uv run python -m backend.agent_server --agent weather_specialist --port 8002动态代理
- 代理卡(
/agents):公共A2A元数据(身份、技能)。 - 工具侧车(
/implementations):专用MCP配置(服务器路径)。
运行时发现使用每个代理的已知卡端点:
- 编排者:
/.well-known/agent-card.json - 数学专家:
http://127.0.0.1:8001/.well-known/agent-card.json - 气象专家:
http://127.0.0.1:8002/.well-known/agent-card.json - 新闻专家:
http://127.0.0.1:8000/api/news-agent/.well-known/agent-card.json
