Deep Agents 编排模式
Deep Agents 是 Sira AI 新增的高级编排模式,基于 LangChain Deep Agents 框架构建,提供了更强大的智能体协作和任务管理能力。
什么是 Deep Agents
Deep Agents 是一个先进的智能体框架,为 AI 智能体提供了丰富的中间件支持,使其能够像人类一样管理复杂任务:
- 任务管理:通过 Todo List 中间件管理多步骤任务
- 文件系统:可以创建、读取、编辑文件
- 子智能体:支持将任务委托给专业的子智能体
- 记忆存储:支持多种存储后端(内存、持久化、文件系统、组合)
- 自动总结:自动总结长对话历史
核心特性
1. 中间件系统
Deep Agents 支持多种中间件,赋予智能体不同的能力:
| 中间件 | 功能 | 适用场景 |
|---|---|---|
| Todo List | 任务待办清单管理 | 需要多步骤规划和执行的复杂任务 |
| Filesystem | 文件系统操作 | 需要创建报告、保存数据、读取文件 |
| SubAgents | 子智能体委托 | 需要不同专业能力的协作任务 |
| Summarization | 对话历史总结 | 长对话保持上下文清晰 |
2. Backend(执行后端)
DeepAgents 支持三种代码执行后端,决定 Skill 脚本和文件操作运行在哪里:
| Backend | 执行环境 | 适用场景 |
|---|---|---|
| filesystem | 平台后端容器内的虚拟 FS | 仅需文件读写、无需真实命令 |
| local_shell | 平台后端容器内的 shell | 受控的命令执行,资源由 Sira 后端承担 |
| sandpod 🆕 | 独立部署的 SandrPod 沙箱 | 隔离执行、对接员工 PC 沙箱、需要权限审计 |
Sandpod 沙箱三种归属模式(由编排器 / 用户上下文自动选择):
- user_sandbox:每位员工拥有 1 个用户型沙箱(数据库以唯一索引保证 1:1)
- dedicated_sandbox:企业共享沙箱,由编排器的
deep_agents_config.backend_config.sandbox_id指定 - agent_direct:编排器在
deep_agents_config里直接配置沙箱连接,绕开用户解析
详见 Sandbox 集成 (P0 文档,批次 B 提供) 和
app/extensions/agent_system/services/deep_agents_executor.py::_resolve_sandrpod_target。
2.1 Skill 包(Skill Manager)🆕
DeepAgents 可以挂载 Skill 包——即一组 Markdown 剧本 / 工具脚本 / 示例文件——执行时这些文件会被挂到沙箱的 /skills/{subagent_name}/ 路径下,让智能体按照"读说明书 + 执行步骤"的方式工作。
- 主智能体的 Skill:在编排器的
deep_agents_config.skill_ids中配置 - SubAgent 的 Skill:在 Agent 自身的
skill_ids字段配置(仅当作为 SubAgent 时生效;普通 SINGLE 编排会自动透明路由到 DeepAgents 来启用)
Skill 的创建、版本管理、导入导出详见 Skill Manager (P0 文档,批次 B 提供)。
3. 子智能体系统
支持两种子智能体定义方式:
- predefined:预定义的子智能体(由 LangChain 提供)
- agent_ref:引用 Sira AI 平台中已创建的其他智能体
创建 Deep Agents 编排器
步骤 1:进入编排器创建页面
- 导航到 Agent System → Orchestrators
- 点击创建 Orchestrator 按钮
步骤 2:填写基本信息
名称: deep_analysis_orchestrator
显示名称: 深度分析编排器
描述: 使用 Deep Agents 框架进行深度任务分析和执行步骤 3:选择编排类型
- 选择 Deep Agents 编排类型
步骤 4:配置 Deep Agents
基础配置
AI 模型:选择主智能体使用的 AI 模型
- 推荐使用 Claude 3.5 Sonnet 或 GPT-4o(强推理能力)
系统提示词:定义智能体的行为和能力
你是一个深度分析专家,擅长将复杂任务分解为多个步骤。 你的能力: - 可以创建和管理待办清单(Todo List) - 可以创建和编辑文件 - 可以将任务委托给专业子智能体 工作方式: 1. 理解用户的任务需求 2. 创建详细的待办清单 3. 逐步执行任务 4. 必要时委托给子智能体 5. 汇总结果并保存
中间件配置
启用 Todo List:
- 开启后,智能体可以创建和管理任务清单
- 适合多步骤复杂任务
启用 Filesystem:
- 开启后,智能体可以创建、读取、编辑文件
- 适合需要保存报告、数据的场景
启用 SubAgents:
- 开启后,智能体可以将任务委托给其他智能体
- 需要配置可用的子智能体列表
启用 Summarization:
- 开启后,会自动总结长对话历史
- 保持上下文清晰,避免信息丢失
子智能体配置
如果启用了 SubAgents 中间件,需要配置可用的子智能体:
- 点击添加子智能体按钮
- 选择类型:
- agent_ref:选择平台中已创建的 Agent
- predefined:使用预定义的子智能体
- 为每个子智能体添加描述,说明其能力和适用场景
示例配置:
{
"subagents": [
{
"type": "agent_ref",
"agent_id": "research-agent-uuid",
"description": "研究专家,擅长搜索和整理信息"
},
{
"type": "agent_ref",
"agent_id": "writer-agent-uuid",
"description": "文案专家,擅长撰写专业文档"
}
]
}存储配置
Backend 类型:
- state:内存存储(默认)
- store:持久化存储(推荐)
- filesystem:文件系统存储
- composite:组合存储
PostgreSQL 配置(Store Backend):
- 如果选择 store 或 composite backend,需要配置 PostgreSQL 连接
步骤 5:MCP 工具配置(可选)
Deep Agents 也支持使用 MCP 工具扩展能力:
- 勾选需要的 MCP 工具
- 智能体会在需要时自动调用这些工具
步骤 6:保存并测试
- 点击创建按钮保存配置
- 使用测试功能验证效果
使用场景
场景 1:市场研究报告
需求:生成一份包含多个章节的市场研究报告
方案:
- 主智能体:项目经理,负责整体规划
- 中间件:Todo List + Filesystem + SubAgents
- 子智能体:
- 数据分析专家(分析市场数据)
- 行业研究员(研究竞争对手)
- 报告撰写专家(撰写各章节)
执行流程:
- 主智能体创建待办清单(市场概述、竞争分析、趋势预测等)
- 将数据分析任务委托给数据分析专家
- 将行业研究委托给行业研究员
- 将报告撰写委托给报告撰写专家
- 汇总所有内容并保存为报告文件
场景 2:软件开发任务
需求:开发一个新功能模块
方案:
- 主智能体:技术负责人
- 中间件:Todo List + Filesystem + SubAgents
- 子智能体:
- 需求分析专家
- 代码开发专家
- 测试专家
执行流程:
- 主智能体分析需求并创建开发清单
- 需求分析专家细化功能点
- 代码开发专家编写代码并保存文件
- 测试专家编写测试用例
- 主智能体汇总并生成开发文档
场景 3:客户问题深度分析
需求:深入分析复杂的客户问题并提供解决方案
方案:
- 主智能体:问题分析师
- 中间件:Todo List + SubAgents
- 子智能体:
- 技术专家(技术问题诊断)
- 产品专家(产品功能解答)
- 客服专家(沟通建议)
执行流程:
- 主智能体创建问题分析清单
- 技术专家诊断技术问题
- 产品专家提供功能说明
- 客服专家给出沟通建议
- 主智能体综合所有信息生成完整解决方案
场景 4:数据分析与可视化
需求:分析数据并生成图表报告
方案:
- 主智能体:数据分析师
- 中间件:Todo List + Filesystem + MCP Tools
- MCP 工具:数据库查询工具
执行流程:
- 创建分析任务清单
- 使用 MCP 工具查询数据库
- 分析数据并生成图表
- 保存图表和分析报告到文件
与其他编排模式的对比
| 特性 | Deep Agents | Supervisor | Collaboration | Workflow |
|---|---|---|---|---|
| 任务管理 | ✅ Todo List | ❌ | ❌ | ✅ 固定流程 |
| 文件操作 | ✅ Filesystem | ❌ | ❌ | ❌ |
| 子智能体 | ✅ 动态委托 | ✅ 静态分配 | ✅ 平等协作 | ❌ |
| 记忆存储 | ✅ 多种后端 | ✅ LangGraph | ✅ LangGraph | ✅ LangGraph |
| 适用场景 | 复杂多步骤任务 | 任务分解 | 多角度分析 | 固定流程 |
最佳实践
1. 中间件选择
根据任务特点选择合适的中间件:
- 简单对话:不需要任何中间件
- 多步骤任务:启用 Todo List
- 需要保存数据:启用 Filesystem
- 需要专业协作:启用 SubAgents
- 长对话:启用 Summarization
2. 子智能体设计
- 为每个子智能体定义清晰的职责
- 子智能体的描述要详细,帮助主智能体正确委托
- 避免子智能体之间的职责重叠
3. 提示词优化
主智能体的提示词应该:
- 明确说明可以使用哪些中间件
- 指导如何有效使用 Todo List
- 说明何时应该委托给子智能体
- 定义任务完成的标准
4. 存储选择
- 开发/测试:使用 state backend(内存)
- 生产环境:使用 store backend(PostgreSQL)
- 需要文件保存:使用 composite backend(组合)
常见问题
Q1: Deep Agents 和 Supervisor 模式有什么区别?
Deep Agents:
- 提供了更多中间件支持(Todo List、Filesystem)
- 支持动态任务管理
- 更适合需要多步骤规划和执行的场景
Supervisor:
- 专注于任务分配和协调
- 流程相对固定
- 更适合明确的任务分解场景
Q2: 如何选择存储后端?
- 内存 (state):临时会话,重启后丢失
- 持久化 (store):长期保存,支持跨会话
- 文件系统 (filesystem):保存结构化数据
- 组合 (composite):结合多种存储优势
Q3: 子智能体可以使用其他 Orchestrator 吗?
目前子智能体只能引用 Agent,不能引用 Orchestrator。如果需要复杂的编排逻辑,可以:
- 创建一个 Agent 并配置工具
- 或者使用 Supervisor/Collaboration 模式的 Orchestrator
Q4: Deep Agents 的性能如何?
- 优点:功能强大,支持复杂任务
- 成本:Token 消耗比简单模式高(因为有中间件的 Prompt)
- 速度:响应时间略长于简单模式
建议:
- 简单任务使用 Single 模式
- 复杂任务使用 Deep Agents
Q5: 如何调试 Deep Agents?
- 查看对话历史,观察 Todo List 的创建和更新
- 检查文件系统,查看保存的文件
- 查看子智能体调用记录,了解委托情况
- 使用测试功能进行迭代优化
技术细节
LangGraph 集成
Deep Agents 基于 LangGraph 框架构建,使用以下组件:
- CheckpointSaver:保存对话状态和中间结果
- MemorySaver:内存存储(开发环境)
- PostgresSaver:PostgreSQL 持久化存储(生产环境)
- AgentState:智能体状态管理
流式响应
Deep Agents 支持流式响应:
- 实时显示 Todo List 更新
- 实时显示子智能体调用过程
- 实时显示文件创建和编辑
API 兼容性
Deep Agents 完全兼容:
- OpenAI Chat Completions API
- LangGraph Assistants API
- Sira AI Agent System API
下一步
- 编排模式详解 - 了解所有编排模式
- Agent 配置指南 - 创建子智能体
- MCP 工具配置 - 为 Deep Agents 添加工具
- 最佳实践 - 优化 Deep Agents 性能
提示:Deep Agents 是一个强大的高级功能,建议先熟悉基本的编排模式(Single、Supervisor)后再使用。如需帮助,请参考示例配置或联系技术支持。
