本项目是一个基于 LangGraph 框架的多Agent协作智能体模板。 采用 Supervisor 智能调度模式,支持多种专业 Agent 协作、流式输出和云开发 MCP Server 工具调用,适合构建复杂的 AI 助手、联网/知识库检索/数据库检索等场景。
- 🧠 Supervisor 智能调度:基于
langgraph-supervisor自动分配任务给最合适的专业 Agent - 👥 多专业 Agent 协作:支持联网搜索、知识库检索、数据查询等
- ⚡ 流式输出优化:总结 LLM token 级流式,提升用户体验
- 📝 配置化管理:通过 YAML 配置文件灵活控制各功能模块的启用状态
- 🏗️ 函数型云托管:基于云开发函数型云托管,支持弹性扩缩容
pnpm install- 复制
agent-config.yaml并根据需求修改配置 - 创建
.env.development文件并配置环境变量
# 启动本地开发服务
pnpm run dev调用云托管部署的 Agent 服务:
curl --location 'http://{envID}.api.tcloudbasegateway.com/v1/aibot/bots/{botID}/send-message' \
--header 'Accept: text/event-stream' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"msg": "今日天气",
"searchEnable": true
}'调用本地 Agent 服务:
curl --location 'http://{envID}.api.tcloudbasegateway.com/v1/aibot/bots/{botID}/send-message' --connect-to '{envId}.api.tcloudbasegateway.com:80:127.0.0.1:3000' \
--header 'Accept: text/event-stream' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"msg": "今日深圳天气",
"searchEnable": true
}'通过 --connect-to 参数可以将请求转发到本地 Agent 服务。
参数说明:
{envID}:云开发环境 ID{botID}:Agent 智能体 ID,本地开发时可以任意指定
# 构建项目
pnpm run build
# 部署到云开发
pnpm run deploy配置 MCP 服务器:
mcpServerList:
- tools:
- name: 'your-mcp-server1-tool1-name'
- name: 'your-mcp-server1-tool2-name'
url: https://{your-envId}.api.tcloudbasegateway.com/v1/cloudrun/{your-mcp-server1-name}/messages
name: 'your-mcp-server1-name'langgraph-agent/
├── src/
│ ├── agent.ts # 核心 Agent 类,多 Agent 协作逻辑
│ ├── index.ts # 应用入口
│ └── lib/ # 核心功能模块
│ ├── agent_config.ts # Agent 配置管理
│ ├── agent_context.ts # Agent 上下文管理
│ ├── agent_info.ts # Agent 信息管理
│ ├── chat_tool.service.ts # 工具服务集成
│ ├── generalAgent.ts # 通用 Agent 实现
│ ├── llm.ts # LLM 服务封装
│ ├── mcp.ts # MCP 服务器集成
│ ├── tcb.ts # 云开发服务集成
│ └── util.ts # 工具函数
├── agent-config.yaml # Agent 配置文件
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
├── cloudbase-functions.json # 云开发函数配置
└── README.md # 项目文档
flowchart TD
A[用户输入] --> B[Supervisor<br/>智能调度Agent]
B -->|联网搜索需求| C[SearchNetwork Agent<br/>互联网搜索专家]
B -->|知识库查询| E[SearchKnowledge Agent<br/>知识库检索专家]
B -->|数据查询需求| F[SearchDatabase Agent<br/>数据模型查询专家]
C -->|搜索结果| B
E -->|检索结果| B
F -->|查询结果| B
B -->|协作完成后的消息流| H[总结LLM<br/>流式输出]
H -->|token级流式输出| A
%% 工具集成
C -.->|调用| C1[Tavily 搜索工具]
E -.->|调用| E1[云开发知识库]
F -.->|调用| F1[云开发数据模型]
%% 样式定义
classDef userInput fill:#e1f5fe,stroke:#01579b,stroke-width:2px
classDef supervisor fill:#f3e5f5,stroke:#4a148c,stroke-width:3px
classDef agents fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
classDef summary fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef tools fill:#fce4ec,stroke:#880e4f,stroke-width:1px
class A userInput
class B supervisor
class C,E,F agents
class H summary
class C1,E1,F1 tools
-
智能调度阶段:
- Supervisor 分析用户输入,判断需要哪些专业 Agent 参与
- 根据关键词和上下文自动分配任务
-
协作执行阶段:
- 各专业 Agent 并行或串行执行具体任务
- 调用相应的工具获取信息和结果
-
结果汇总阶段:
- Supervisor 收集所有 Agent 的执行结果
- 整合成完整的消息流
-
流式输出阶段:
- 总结 LLM 基于协作结果进行 token 级流式输出
- 用户实时看到生成过程
- 职责:获取最新互联网信息、实时数据
- 工具:联网搜索工具
- 触发场景:用户询问"最新"、"现在"、"今天"、"实时"等关键词
- 适用场景:新闻事件、股票价格、天气、体育赛事等
- 职责:检索企业内部知识库、业务文档
- 工具:云开发知识库检索
- 触发场景:企业 FAQ、政策流程、技术规范等查询
- 数据源:可配置多个知识库
- 职责:查询结构化业务数据
- 工具:云开发数据模型检索
- 触发场景:统计分析、历史记录、用户数据查询
- 数据源:可配置多个数据模型
项目使用 agent-config.yaml 进行配置化管理:
# Agent 基础信息
name: 智能小助手
model: deepseek-v3-function-call
agentSetting: 你什么都知道,无论用户问你什么问题,你都能输出长篇大论,滔滔不绝。
# 功能开关
searchNetworkEnable: true # 启用联网搜索
searchFileEnable: true # 启用文件解析
isNeedRecommend: true # 启用推荐问题
# 数据源配置
knowledgeBase: ['your-knowledge-base-id'] # 知识库 ID 列表
databaseModel: ['your-database-model-id'] # 数据模型列表
# MCP 服务器配置
mcpServerList:
- name: your-mcp-server-name # 腾讯地图 MCP 服务
url: https://${your-env}.api.tcloudbasegateway.com/v1/cloudrun/${your-mcp-server-name}/messages
tools:
- name: geocoder # 地理编码
- name: placeSearchNearby # 附近搜索
- name: your-mcp-server-name # 云开发 MCP 服务
url: https://${your-env}.api.tcloudbasegateway.com/v1/cloudrun/${your-mcp-server-name}/messages
tools:
- name: listEnvs # 列举环境创建 .env.development 文件进行本地开发配置:
# === 必需配置 ===
CLOUDBASE_ENV_ID=your-env-id # 云开发环境 ID
CLOUDBASE_API_KEY=your-api-key # 云开发 API Key
> **部署说明**:部署到线上时,可通过云开发控制台配置环境变量。| 技术 | 版本 | 说明 |
|---|---|---|
| LangGraph | 0.3.1+ | 多 Agent 协作框架 |
| LangGraph Supervisor | 0.0.13+ | 智能调度器 |
| LangChain | 0.3.27+ | LLM 应用开发框架 |
| 云开发 | - | 部署平台 |
MIT License