适用对象:AI-Agent 系统设计、智能体框架选型、企业级 Agent 平台建设、课程/技术报告整理。
核心问题:
- AI-Agent 中 Agents、Teams、Workflows 三者有什么区别?
- AI-Agent 中 AgentOS 的核心概念是什么?如何理解其架构?
- 什么是 AI-Agent 系统中的子 Agent 动态加载?
0. 结论先行
在 AI-Agent 工程体系中,可以把 Agent、Team、Workflow、AgentOS、动态子 Agent 理解为不同层次的抽象:
| 层级 | 核心问题 | 典型抽象 | 一句话理解 |
|---|---|---|---|
| 执行单元 | 谁来完成任务? | Agent | 带有模型、指令、工具、记忆的最小智能体 |
| 协作单元 | 多个智能体如何分工? | Team | 多个 Agent 围绕共同目标进行协作 |
| 编排单元 | 流程如何稳定运行? | Workflow | 用步骤、条件、循环、并行、检查点来控制执行路径 |
| 运行底座 | 如何生产化部署? | AgentOS | 把 Agent/Team/Workflow 变成 API、会话、权限、记忆、追踪、调度一体化服务 |
| 动态扩展 | 如何按需加载能力? | Dynamic Sub-Agent | 根据请求上下文临时选择或构造专用子智能体 |
可以用一句话概括:
Agent 解决"智能执行",Team 解决"多角色协作",Workflow 解决"稳定编排",AgentOS 解决"生产运行",动态子 Agent 解决"按需扩展与上下文隔离"。
1. Agents、Teams、Workflows 三者的区别
1.1 Agent:最小自主执行单元
Agent 是 AI-Agent 系统中的基本执行单元。一个 Agent 通常由以下部分组成:
- Model:底层大语言模型或多模态模型;
- Instructions / Prompt:角色、目标、约束、任务风格;
- Tools:外部 API、数据库、搜索、代码执行器、MCP Server 等;
- Memory / State:短期上下文、长期记忆、会话状态;
- Policy / Guardrails:安全策略、输出校验、权限控制;
- Output Schema:结构化输出格式。
典型运行链路如下:
#mermaid-svg-CMQZNZakAGOhHJZ3{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-CMQZNZakAGOhHJZ3 .error-icon{fill:#552222;}#mermaid-svg-CMQZNZakAGOhHJZ3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CMQZNZakAGOhHJZ3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .marker.cross{stroke:#333333;}#mermaid-svg-CMQZNZakAGOhHJZ3 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CMQZNZakAGOhHJZ3 p{margin:0;}#mermaid-svg-CMQZNZakAGOhHJZ3 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .cluster-label text{fill:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .cluster-label span{color:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .cluster-label span p{background-color:transparent;}#mermaid-svg-CMQZNZakAGOhHJZ3 .label text,#mermaid-svg-CMQZNZakAGOhHJZ3 span{fill:#333;color:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .node rect,#mermaid-svg-CMQZNZakAGOhHJZ3 .node circle,#mermaid-svg-CMQZNZakAGOhHJZ3 .node ellipse,#mermaid-svg-CMQZNZakAGOhHJZ3 .node polygon,#mermaid-svg-CMQZNZakAGOhHJZ3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .rough-node .label text,#mermaid-svg-CMQZNZakAGOhHJZ3 .node .label text,#mermaid-svg-CMQZNZakAGOhHJZ3 .image-shape .label,#mermaid-svg-CMQZNZakAGOhHJZ3 .icon-shape .label{text-anchor:middle;}#mermaid-svg-CMQZNZakAGOhHJZ3 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .rough-node .label,#mermaid-svg-CMQZNZakAGOhHJZ3 .node .label,#mermaid-svg-CMQZNZakAGOhHJZ3 .image-shape .label,#mermaid-svg-CMQZNZakAGOhHJZ3 .icon-shape .label{text-align:center;}#mermaid-svg-CMQZNZakAGOhHJZ3 .node.clickable{cursor:pointer;}#mermaid-svg-CMQZNZakAGOhHJZ3 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .arrowheadPath{fill:#333333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CMQZNZakAGOhHJZ3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-CMQZNZakAGOhHJZ3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CMQZNZakAGOhHJZ3 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-CMQZNZakAGOhHJZ3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .cluster text{fill:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 .cluster span{color:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CMQZNZakAGOhHJZ3 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-CMQZNZakAGOhHJZ3 rect.text{fill:none;stroke-width:0;}#mermaid-svg-CMQZNZakAGOhHJZ3 .icon-shape,#mermaid-svg-CMQZNZakAGOhHJZ3 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CMQZNZakAGOhHJZ3 .icon-shape p,#mermaid-svg-CMQZNZakAGOhHJZ3 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-CMQZNZakAGOhHJZ3 .icon-shape .label rect,#mermaid-svg-CMQZNZakAGOhHJZ3 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CMQZNZakAGOhHJZ3 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-CMQZNZakAGOhHJZ3 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-CMQZNZakAGOhHJZ3 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户输入
Agent
模型推理
工具调用
记忆/状态
最终响应
Agent 适合处理:
- 单领域问答;
- 工具调用任务;
- 数据查询与解释;
- 个人助手;
- 简单自动化。
但是,当一个 Agent 同时拥有过多工具、过长背景、多个专业角色时,容易出现:
- 工具选择混乱;
- 上下文窗口膨胀;
- 任务拆解能力下降;
- 调试困难;
- 权责不清。
这时就需要 Team 或 Workflow。
1.2 Team:多 Agent 协作组织
Team 是多个 Agent 的协作组织。它不是简单地把多个 Agent 放在一起,而是需要定义:
- 成员 Agent;
- 每个 Agent 的角色和工具;
- 队长、路由器或协调器;
- 成员间通信方式;
- 任务分配策略;
- 结果合成方式;
- 是否允许并行、广播、接力、投票或评审。
典型结构如下:
#mermaid-svg-vFke7pucdae1FQMz{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-vFke7pucdae1FQMz .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-vFke7pucdae1FQMz .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-vFke7pucdae1FQMz .error-icon{fill:#552222;}#mermaid-svg-vFke7pucdae1FQMz .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-vFke7pucdae1FQMz .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-vFke7pucdae1FQMz .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-vFke7pucdae1FQMz .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-vFke7pucdae1FQMz .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-vFke7pucdae1FQMz .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-vFke7pucdae1FQMz .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-vFke7pucdae1FQMz .marker{fill:#333333;stroke:#333333;}#mermaid-svg-vFke7pucdae1FQMz .marker.cross{stroke:#333333;}#mermaid-svg-vFke7pucdae1FQMz svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-vFke7pucdae1FQMz p{margin:0;}#mermaid-svg-vFke7pucdae1FQMz .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-vFke7pucdae1FQMz .cluster-label text{fill:#333;}#mermaid-svg-vFke7pucdae1FQMz .cluster-label span{color:#333;}#mermaid-svg-vFke7pucdae1FQMz .cluster-label span p{background-color:transparent;}#mermaid-svg-vFke7pucdae1FQMz .label text,#mermaid-svg-vFke7pucdae1FQMz span{fill:#333;color:#333;}#mermaid-svg-vFke7pucdae1FQMz .node rect,#mermaid-svg-vFke7pucdae1FQMz .node circle,#mermaid-svg-vFke7pucdae1FQMz .node ellipse,#mermaid-svg-vFke7pucdae1FQMz .node polygon,#mermaid-svg-vFke7pucdae1FQMz .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-vFke7pucdae1FQMz .rough-node .label text,#mermaid-svg-vFke7pucdae1FQMz .node .label text,#mermaid-svg-vFke7pucdae1FQMz .image-shape .label,#mermaid-svg-vFke7pucdae1FQMz .icon-shape .label{text-anchor:middle;}#mermaid-svg-vFke7pucdae1FQMz .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-vFke7pucdae1FQMz .rough-node .label,#mermaid-svg-vFke7pucdae1FQMz .node .label,#mermaid-svg-vFke7pucdae1FQMz .image-shape .label,#mermaid-svg-vFke7pucdae1FQMz .icon-shape .label{text-align:center;}#mermaid-svg-vFke7pucdae1FQMz .node.clickable{cursor:pointer;}#mermaid-svg-vFke7pucdae1FQMz .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-vFke7pucdae1FQMz .arrowheadPath{fill:#333333;}#mermaid-svg-vFke7pucdae1FQMz .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-vFke7pucdae1FQMz .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-vFke7pucdae1FQMz .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-vFke7pucdae1FQMz .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-vFke7pucdae1FQMz .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-vFke7pucdae1FQMz .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-vFke7pucdae1FQMz .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-vFke7pucdae1FQMz .cluster text{fill:#333;}#mermaid-svg-vFke7pucdae1FQMz .cluster span{color:#333;}#mermaid-svg-vFke7pucdae1FQMz div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-vFke7pucdae1FQMz .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-vFke7pucdae1FQMz rect.text{fill:none;stroke-width:0;}#mermaid-svg-vFke7pucdae1FQMz .icon-shape,#mermaid-svg-vFke7pucdae1FQMz .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-vFke7pucdae1FQMz .icon-shape p,#mermaid-svg-vFke7pucdae1FQMz .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-vFke7pucdae1FQMz .icon-shape .label rect,#mermaid-svg-vFke7pucdae1FQMz .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-vFke7pucdae1FQMz .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-vFke7pucdae1FQMz .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-vFke7pucdae1FQMz :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户任务
Team Leader / Coordinator
Research Agent
Analysis Agent
Writing Agent
Review Agent
综合结果
Team 的核心价值是:
- 专业化:每个 Agent 只负责一个明确领域;
- 并行化:多个 Agent 可以同时处理不同子任务;
- 可维护性:问题可以定位到具体 Agent;
- 可扩展性:新增能力时增加 Agent,而不是重写主 Agent;
- 上下文隔离:每个 Agent 只看自己需要的上下文。
Team 适合处理:
- 多角色研究报告;
- 复杂客服分流;
- 数据分析 + 文案写作 + 审核;
- 软件开发中的需求、编码、测试、审查;
- 多语言、多部门、多专业任务。
但 Team 也有明显代价:
- Agent 间通信会增加 token 成本;
- 协作策略设计不当会重复劳动;
- 多 Agent 结果可能互相冲突;
- 需要共享状态、权限和审计机制;
- 可解释性和调试复杂度上升。
1.3 Workflow:步骤化、可控、可重复的流程编排
Workflow 是一种显式流程编排方式。它不完全依赖模型自主判断,而是由开发者定义流程结构,例如:
- 顺序执行;
- 条件分支;
- 并行执行;
- 循环;
- Router 路由;
- 审批节点;
- 重试节点;
- 检查点;
- 人工确认。
典型结构如下:
#mermaid-svg-pqZX67BJlYpgLpN0{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pqZX67BJlYpgLpN0 .error-icon{fill:#552222;}#mermaid-svg-pqZX67BJlYpgLpN0 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pqZX67BJlYpgLpN0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pqZX67BJlYpgLpN0 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pqZX67BJlYpgLpN0 .marker.cross{stroke:#333333;}#mermaid-svg-pqZX67BJlYpgLpN0 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pqZX67BJlYpgLpN0 p{margin:0;}#mermaid-svg-pqZX67BJlYpgLpN0 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 .cluster-label text{fill:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 .cluster-label span{color:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 .cluster-label span p{background-color:transparent;}#mermaid-svg-pqZX67BJlYpgLpN0 .label text,#mermaid-svg-pqZX67BJlYpgLpN0 span{fill:#333;color:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 .node rect,#mermaid-svg-pqZX67BJlYpgLpN0 .node circle,#mermaid-svg-pqZX67BJlYpgLpN0 .node ellipse,#mermaid-svg-pqZX67BJlYpgLpN0 .node polygon,#mermaid-svg-pqZX67BJlYpgLpN0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pqZX67BJlYpgLpN0 .rough-node .label text,#mermaid-svg-pqZX67BJlYpgLpN0 .node .label text,#mermaid-svg-pqZX67BJlYpgLpN0 .image-shape .label,#mermaid-svg-pqZX67BJlYpgLpN0 .icon-shape .label{text-anchor:middle;}#mermaid-svg-pqZX67BJlYpgLpN0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pqZX67BJlYpgLpN0 .rough-node .label,#mermaid-svg-pqZX67BJlYpgLpN0 .node .label,#mermaid-svg-pqZX67BJlYpgLpN0 .image-shape .label,#mermaid-svg-pqZX67BJlYpgLpN0 .icon-shape .label{text-align:center;}#mermaid-svg-pqZX67BJlYpgLpN0 .node.clickable{cursor:pointer;}#mermaid-svg-pqZX67BJlYpgLpN0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pqZX67BJlYpgLpN0 .arrowheadPath{fill:#333333;}#mermaid-svg-pqZX67BJlYpgLpN0 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pqZX67BJlYpgLpN0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pqZX67BJlYpgLpN0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pqZX67BJlYpgLpN0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pqZX67BJlYpgLpN0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pqZX67BJlYpgLpN0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pqZX67BJlYpgLpN0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pqZX67BJlYpgLpN0 .cluster text{fill:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 .cluster span{color:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pqZX67BJlYpgLpN0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pqZX67BJlYpgLpN0 rect.text{fill:none;stroke-width:0;}#mermaid-svg-pqZX67BJlYpgLpN0 .icon-shape,#mermaid-svg-pqZX67BJlYpgLpN0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pqZX67BJlYpgLpN0 .icon-shape p,#mermaid-svg-pqZX67BJlYpgLpN0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pqZX67BJlYpgLpN0 .icon-shape .label rect,#mermaid-svg-pqZX67BJlYpgLpN0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pqZX67BJlYpgLpN0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pqZX67BJlYpgLpN0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pqZX67BJlYpgLpN0 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是
否
开始
输入校验
检索资料
Agent 分析
是否需要人工审批?
Human-in-the-loop
生成报告
质量检查
结束
Workflow 适合:
- 企业审批;
- 标准化报告生成;
- 数据清洗与 ETL;
- 客服工单处理;
- 周期性任务;
- 需要审计和恢复的长流程;
- 对安全、合规、可重复性要求高的场景。
Workflow 的最大优势是可控、可测、可恢复,但缺点是灵活性低,需要提前设计流程结构。
2. Agents / Teams / Workflows 对比总览

| 维度 | Agent | Team | Workflow |
|---|---|---|---|
| 基本定义 | 单个智能体 | 多个 Agent 协作 | 步骤化流程编排 |
| 核心目标 | 自主完成任务 | 分工协作解决复杂问题 | 稳定、可控、可重复执行 |
| 控制方式 | 模型动态决策 | 队长/路由器/协调器调度 | DAG/状态机/规则显式控制 |
| 组成元素 | 模型、指令、工具、记忆 | Leader、成员 Agent、共享目标 | 步骤、条件、循环、并行、检查点 |
| 灵活性 | 高 | 高 | 中低 |
| 可控性 | 中 | 中 | 高 |
| 可审计性 | 中 | 中高 | 高 |
| 成本 | 低到中 | 中到高 | 可控但开发成本较高 |
| 适用任务 | 开放式、单领域任务 | 多角色、多领域任务 | 标准化、稳定流程 |
| 常见风险 | 工具膨胀、上下文混乱 | 通信成本、协作失败 | 流程僵化、前期设计成本高 |
3. 什么时候用 Agent、Team、Workflow?

3.1 用 Agent 的情况
适合:
- 任务目标清晰;
- 工具数量不多;
- 上下文长度可控;
- 不需要多个专业角色;
- 允许模型自主决定下一步。
例如:
text
查询某个订单状态并给用户解释物流情况。
3.2 用 Team 的情况
适合:
- 任务涉及多个专业角色;
- 一个 Agent 无法同时掌握所有上下文;
- 需要并行处理;
- 需要审核、辩论、交叉验证;
- 每个角色需要不同工具和知识。
例如:
text
完成一份行业研究报告:
- Research Agent 负责资料检索;
- Data Agent 负责数据分析;
- Writing Agent 负责写作;
- Review Agent 负责审校。
3.3 用 Workflow 的情况
适合:
- 业务流程固定;
- 每一步输入输出清晰;
- 需要记录、回放、审计;
- 需要人工审批;
- 需要失败重试和断点恢复。
例如:
text
企业报销审核流程:
提交材料 → OCR识别 → 发票校验 → 风控规则判断 → 人工审批 → 入账。
3.4 混合模式
实际系统通常不是三选一,而是组合使用:
#mermaid-svg-zEzqr3S3NJlQkmvh{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-zEzqr3S3NJlQkmvh .error-icon{fill:#552222;}#mermaid-svg-zEzqr3S3NJlQkmvh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-zEzqr3S3NJlQkmvh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-zEzqr3S3NJlQkmvh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-zEzqr3S3NJlQkmvh .marker.cross{stroke:#333333;}#mermaid-svg-zEzqr3S3NJlQkmvh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-zEzqr3S3NJlQkmvh p{margin:0;}#mermaid-svg-zEzqr3S3NJlQkmvh .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh .cluster-label text{fill:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh .cluster-label span{color:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh .cluster-label span p{background-color:transparent;}#mermaid-svg-zEzqr3S3NJlQkmvh .label text,#mermaid-svg-zEzqr3S3NJlQkmvh span{fill:#333;color:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh .node rect,#mermaid-svg-zEzqr3S3NJlQkmvh .node circle,#mermaid-svg-zEzqr3S3NJlQkmvh .node ellipse,#mermaid-svg-zEzqr3S3NJlQkmvh .node polygon,#mermaid-svg-zEzqr3S3NJlQkmvh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-zEzqr3S3NJlQkmvh .rough-node .label text,#mermaid-svg-zEzqr3S3NJlQkmvh .node .label text,#mermaid-svg-zEzqr3S3NJlQkmvh .image-shape .label,#mermaid-svg-zEzqr3S3NJlQkmvh .icon-shape .label{text-anchor:middle;}#mermaid-svg-zEzqr3S3NJlQkmvh .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-zEzqr3S3NJlQkmvh .rough-node .label,#mermaid-svg-zEzqr3S3NJlQkmvh .node .label,#mermaid-svg-zEzqr3S3NJlQkmvh .image-shape .label,#mermaid-svg-zEzqr3S3NJlQkmvh .icon-shape .label{text-align:center;}#mermaid-svg-zEzqr3S3NJlQkmvh .node.clickable{cursor:pointer;}#mermaid-svg-zEzqr3S3NJlQkmvh .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-zEzqr3S3NJlQkmvh .arrowheadPath{fill:#333333;}#mermaid-svg-zEzqr3S3NJlQkmvh .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-zEzqr3S3NJlQkmvh .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-zEzqr3S3NJlQkmvh .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zEzqr3S3NJlQkmvh .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-zEzqr3S3NJlQkmvh .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zEzqr3S3NJlQkmvh .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-zEzqr3S3NJlQkmvh .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-zEzqr3S3NJlQkmvh .cluster text{fill:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh .cluster span{color:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-zEzqr3S3NJlQkmvh .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-zEzqr3S3NJlQkmvh rect.text{fill:none;stroke-width:0;}#mermaid-svg-zEzqr3S3NJlQkmvh .icon-shape,#mermaid-svg-zEzqr3S3NJlQkmvh .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zEzqr3S3NJlQkmvh .icon-shape p,#mermaid-svg-zEzqr3S3NJlQkmvh .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-zEzqr3S3NJlQkmvh .icon-shape .label rect,#mermaid-svg-zEzqr3S3NJlQkmvh .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zEzqr3S3NJlQkmvh .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-zEzqr3S3NJlQkmvh .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-zEzqr3S3NJlQkmvh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Workflow
Step 1: 数据准备函数
Step 2: Research Team
Step 3: Writing Agent
Step 4: Human Approval
Search Agent
Analysis Agent
这类设计可以同时获得:
- Workflow 的稳定性;
- Team 的协作能力;
- Agent 的智能判断能力。
4. AgentOS 的核心概念
4.1 什么是 AgentOS?
AgentOS 可以理解为 AI-Agent 的"运行操作系统"或"生产级运行底座"。
如果说 Agent 是"智能应用程序",那么 AgentOS 就是让这些智能程序能够稳定运行的基础设施。它需要解决的问题包括:
- 如何把 Agent 暴露成 API?
- 如何管理多用户、多会话?
- 如何保存记忆和状态?
- 如何做权限控制?
- 如何连接工具和外部系统?
- 如何观察每一次工具调用?
- 如何支持长任务、重试、暂停、恢复?
- 如何让 Agent、Team、Workflow 可以统一部署?
- 如何做版本管理、评估、审计和回滚?
因此,AgentOS 的核心不是"又一个 Agent",而是一个平台化运行环境。
4.2 AgentOS 的核心模块

一个完整 AgentOS 通常可以分为以下几层。
4.2.1 接入层 Interfaces
负责把 Agent 能力暴露给用户或外部系统。
常见接入方式包括:
- Web Chat;
- REST API;
- SSE / WebSocket Streaming;
- Slack / Telegram / WhatsApp;
- 企业应用;
- A2A Agent-to-Agent 接口;
- AG-UI 等前端协议。
作用是让同一个 Agent 系统可以被多个入口调用。
4.2.2 控制平面 Control Plane
控制平面用于管理、调试和运维 Agent 系统。
包括:
- Agent Studio 可视化构建;
- Registry 组件注册;
- 模型、工具、数据库、Schema 管理;
- 会话查看;
- Trace 调试;
- Memory 查看和编辑;
- Knowledge 管理;
- Eval 评测;
- 版本发布与回滚;
- 审批流和人工介入。
控制平面解决的是:
text
如何让 Agent 系统从"能跑"变成"可管理、可调试、可迭代"?
4.2.3 Runtime / API Gateway
Runtime 是 AgentOS 的执行核心。
它负责:
- 接收请求;
- 创建或恢复会话;
- 加载 Agent / Team / Workflow;
- 调用模型;
- 调用工具;
- 流式返回结果;
- 持久化运行状态;
- 记录 trace;
- 权限校验;
- 调度长任务;
- 处理取消、暂停、恢复。
在工程上,它通常表现为一个后端服务,例如 FastAPI、Node 服务、云函数或容器化 Agent Runtime。
4.2.4 Orchestration 编排层
编排层负责管理不同执行单元之间的关系。
包括:
- Agent;
- Team;
- Workflow;
- Router;
- Handoff;
- Dynamic Factory;
- Remote Agent;
- Multi-framework Adapter。
它解决的是:
text
当前请求应该交给哪个 Agent?
是否需要多个 Agent?
是否要走固定 Workflow?
是否要动态加载子 Agent?
是否要远程执行?
4.2.5 能力层 Capabilities
能力层是 Agent 能够完成现实任务的基础能力集合。
包括:
- LLM / 多模态模型;
- Tools;
- MCP Servers;
- Memory;
- Knowledge / RAG;
- Context Providers;
- Guardrails;
- Human-in-the-loop;
- Structured I/O;
- Evaluation;
- Observability;
- Scheduling。
4.2.6 基础设施层 Infrastructure
基础设施层负责保存和运行 Agent 系统依赖的数据和服务。
包括:
- SQL Database;
- Vector Store;
- Object Storage;
- Secret Manager;
- Message Queue;
- Logging / Tracing Backend;
- Model Provider;
- 企业 API;
- 权限系统;
- 外部业务系统。
5. AgentOS 架构的完整运行流程
一个典型 AgentOS 运行流程如下:
Session/Memory/Trace DB Tools/MCP/External APIs Agent/Team/Workflow Orchestrator Agent Runtime Auth/RBAC AgentOS API User / App Session/Memory/Trace DB Tools/MCP/External APIs Agent/Team/Workflow Orchestrator Agent Runtime Auth/RBAC AgentOS API User / App #mermaid-svg-FjCRv4c8OEarzEcf{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FjCRv4c8OEarzEcf .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FjCRv4c8OEarzEcf .error-icon{fill:#552222;}#mermaid-svg-FjCRv4c8OEarzEcf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FjCRv4c8OEarzEcf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FjCRv4c8OEarzEcf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FjCRv4c8OEarzEcf .marker.cross{stroke:#333333;}#mermaid-svg-FjCRv4c8OEarzEcf svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FjCRv4c8OEarzEcf p{margin:0;}#mermaid-svg-FjCRv4c8OEarzEcf .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FjCRv4c8OEarzEcf text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-FjCRv4c8OEarzEcf .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-FjCRv4c8OEarzEcf .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-FjCRv4c8OEarzEcf .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-FjCRv4c8OEarzEcf .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-FjCRv4c8OEarzEcf #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-FjCRv4c8OEarzEcf .sequenceNumber{fill:white;}#mermaid-svg-FjCRv4c8OEarzEcf #sequencenumber{fill:#333;}#mermaid-svg-FjCRv4c8OEarzEcf #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-FjCRv4c8OEarzEcf .messageText{fill:#333;stroke:none;}#mermaid-svg-FjCRv4c8OEarzEcf .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FjCRv4c8OEarzEcf .labelText,#mermaid-svg-FjCRv4c8OEarzEcf .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-FjCRv4c8OEarzEcf .loopText,#mermaid-svg-FjCRv4c8OEarzEcf .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-FjCRv4c8OEarzEcf .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-FjCRv4c8OEarzEcf .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-FjCRv4c8OEarzEcf .noteText,#mermaid-svg-FjCRv4c8OEarzEcf .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-FjCRv4c8OEarzEcf .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FjCRv4c8OEarzEcf .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FjCRv4c8OEarzEcf .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-FjCRv4c8OEarzEcf .actorPopupMenu{position:absolute;}#mermaid-svg-FjCRv4c8OEarzEcf .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-FjCRv4c8OEarzEcf .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-FjCRv4c8OEarzEcf .actor-man circle,#mermaid-svg-FjCRv4c8OEarzEcf line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-FjCRv4c8OEarzEcf :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 发送任务请求校验身份与权限返回权限上下文创建/恢复会话读取 session / memory / config选择 Agent/Team/Workflow注入上下文并运行调用外部工具返回工具结果返回中间事件和最终结果写入 trace、memory、metrics流式或完整返回输出结果
6. AgentOS 与普通 Agent 框架的区别
| 维度 | 普通 Agent 框架 | AgentOS |
|---|---|---|
| 重点 | 构建 Agent 逻辑 | 运行、管理和治理 Agent 系统 |
| 典型功能 | Prompt、Tools、Memory、Workflow | API、Session、Auth、RBAC、Trace、Scheduler、Registry |
| 使用阶段 | 开发阶段 | 生产部署与运营阶段 |
| 面向对象 | 开发者 | 开发者 + 运维 + 业务团队 |
| 状态管理 | 常需自行实现 | 平台统一管理 |
| 可观测性 | 依赖外部工具 | 内置运行日志、Trace、指标 |
| 多租户 | 通常需要二次开发 | AgentOS 层统一隔离 |
| 安全治理 | 应用侧实现 | 平台级权限、审计、审批 |
7. 什么是子 Agent 动态加载?
7.1 基本定义
子 Agent 动态加载是指:
主 Agent 在运行时根据当前任务、用户身份、权限、租户、上下文和输入参数,动态选择、创建、加载或调用一个专用子 Agent 来完成局部任务。
它不是把所有能力都塞进一个超级 Agent,而是采用"按需加载"的方式:
text
主 Agent 保持轻量
需要什么能力,就临时加载什么子 Agent
子 Agent 完成后,把结果返回给主 Agent
7.2 子 Agent 动态加载架构图

7.3 子 Agent 动态加载的完整流程
#mermaid-svg-GVaW4C187rd8pnwJ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-GVaW4C187rd8pnwJ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GVaW4C187rd8pnwJ .error-icon{fill:#552222;}#mermaid-svg-GVaW4C187rd8pnwJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GVaW4C187rd8pnwJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GVaW4C187rd8pnwJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GVaW4C187rd8pnwJ .marker.cross{stroke:#333333;}#mermaid-svg-GVaW4C187rd8pnwJ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GVaW4C187rd8pnwJ p{margin:0;}#mermaid-svg-GVaW4C187rd8pnwJ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GVaW4C187rd8pnwJ .cluster-label text{fill:#333;}#mermaid-svg-GVaW4C187rd8pnwJ .cluster-label span{color:#333;}#mermaid-svg-GVaW4C187rd8pnwJ .cluster-label span p{background-color:transparent;}#mermaid-svg-GVaW4C187rd8pnwJ .label text,#mermaid-svg-GVaW4C187rd8pnwJ span{fill:#333;color:#333;}#mermaid-svg-GVaW4C187rd8pnwJ .node rect,#mermaid-svg-GVaW4C187rd8pnwJ .node circle,#mermaid-svg-GVaW4C187rd8pnwJ .node ellipse,#mermaid-svg-GVaW4C187rd8pnwJ .node polygon,#mermaid-svg-GVaW4C187rd8pnwJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GVaW4C187rd8pnwJ .rough-node .label text,#mermaid-svg-GVaW4C187rd8pnwJ .node .label text,#mermaid-svg-GVaW4C187rd8pnwJ .image-shape .label,#mermaid-svg-GVaW4C187rd8pnwJ .icon-shape .label{text-anchor:middle;}#mermaid-svg-GVaW4C187rd8pnwJ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-GVaW4C187rd8pnwJ .rough-node .label,#mermaid-svg-GVaW4C187rd8pnwJ .node .label,#mermaid-svg-GVaW4C187rd8pnwJ .image-shape .label,#mermaid-svg-GVaW4C187rd8pnwJ .icon-shape .label{text-align:center;}#mermaid-svg-GVaW4C187rd8pnwJ .node.clickable{cursor:pointer;}#mermaid-svg-GVaW4C187rd8pnwJ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-GVaW4C187rd8pnwJ .arrowheadPath{fill:#333333;}#mermaid-svg-GVaW4C187rd8pnwJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GVaW4C187rd8pnwJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GVaW4C187rd8pnwJ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GVaW4C187rd8pnwJ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-GVaW4C187rd8pnwJ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GVaW4C187rd8pnwJ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-GVaW4C187rd8pnwJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GVaW4C187rd8pnwJ .cluster text{fill:#333;}#mermaid-svg-GVaW4C187rd8pnwJ .cluster span{color:#333;}#mermaid-svg-GVaW4C187rd8pnwJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GVaW4C187rd8pnwJ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-GVaW4C187rd8pnwJ rect.text{fill:none;stroke-width:0;}#mermaid-svg-GVaW4C187rd8pnwJ .icon-shape,#mermaid-svg-GVaW4C187rd8pnwJ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GVaW4C187rd8pnwJ .icon-shape p,#mermaid-svg-GVaW4C187rd8pnwJ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-GVaW4C187rd8pnwJ .icon-shape .label rect,#mermaid-svg-GVaW4C187rd8pnwJ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GVaW4C187rd8pnwJ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-GVaW4C187rd8pnwJ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-GVaW4C187rd8pnwJ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户请求
主 Agent / Planner
意图识别与任务拆解
Agent Registry / Factory
权限与上下文构造
动态加载子 Agent
隔离执行
结构化结果返回
主 Agent 综合
最终输出
写入记忆/日志/评估
具体步骤如下:
-
主 Agent 接收任务
理解用户目标、约束、上下文。
-
任务拆解与路由判断
判断是否需要专用能力,例如代码审查、财务分析、法律检索、医学知识、图片理解等。
-
查询 Agent Registry
在 Agent 注册表中查找可用子 Agent,包括:
- 名称;
- 描述;
- 输入输出 Schema;
- 所需工具;
- 权限范围;
- 适用领域;
- 成本与模型配置;
- 版本。
-
策略与权限校验
判断当前用户是否有权调用该子 Agent,以及该子 Agent 是否能访问对应数据源。
-
动态构造上下文
只把子任务相关的上下文传给子 Agent,避免把主会话全部暴露出去。
-
加载或实例化子 Agent
可以加载静态注册的 Agent,也可以通过 Factory 按请求创建一个新的 Agent。
-
子 Agent 隔离执行
子 Agent 在自己的上下文、工具集、模型配置和数据权限内执行任务。
-
返回结构化结果
子 Agent 返回答案、证据、工具调用记录、置信度、错误信息。
-
主 Agent 综合结果
主 Agent 负责把多个子 Agent 的结果整合成最终答案。
-
写入记忆、日志与评测系统
保存执行过程,用于调试、审计、后续优化。
8. 子 Agent 动态加载与 Handoff、Tool、Skill 的区别
| 概念 | 核心含义 | 控制权是否转移 | 典型用途 |
|---|---|---|---|
| Tool | 一个函数或外部能力 | 不转移,主 Agent 调函数 | 查数据库、搜索、计算、发邮件 |
| Skill | 一组提示词、知识、工具的能力包 | 通常不转移 | 给主 Agent 按需补充能力 |
| Sub-Agent | 一个独立 Agent 作为子能力 | 通常由主 Agent 调用并收回结果 | 专家任务、隔离工具、上下文裁剪 |
| Handoff | 把对话或任务交给另一个 Agent | 会转移控制权 | 客服分流、角色切换、长流程接力 |
| Dynamic Agent Factory | 运行时构造 Agent/Team/Workflow | 视设计而定 | 多租户、个性化、权限隔离 |
简化理解:
text
Tool 是"调用一个函数"
Skill 是"加载一组能力"
Sub-Agent 是"请一个专家来做局部任务"
Handoff 是"把主导权交给另一个 Agent"
Dynamic Factory 是"运行时现造一个适配当前请求的 Agent"
9. 为什么需要子 Agent 动态加载?
9.1 解决主 Agent 工具膨胀
如果把所有工具都挂到一个 Agent 上,模型可能面对几十甚至上百个工具,导致:
- 工具选择错误;
- Prompt 变长;
- 推理成本增加;
- 调试困难;
- 安全边界不清。
动态加载可以让主 Agent 只看到当前任务所需的子 Agent 或能力。
9.2 实现上下文隔离
不同子 Agent 可以拥有不同上下文:
- 财务 Agent 只看财务数据;
- 客服 Agent 只看工单数据;
- 研发 Agent 只看代码仓库;
- 审核 Agent 只看最终结果和证据。
这样可以减少隐私泄露和上下文污染。
9.3 支持多租户和个性化
在企业系统中,不同用户、部门、客户、租户可能需要不同配置。
例如:
text
A 公司用户调用客服 Agent,只能访问 A 公司的知识库;
B 公司用户调用客服 Agent,只能访问 B 公司的知识库;
管理员用户可以调用高级审计 Agent;
普通用户只能调用查询 Agent。
动态加载可以根据 JWT、用户角色、租户 ID、请求参数来生成不同的 Agent 配置。
9.4 降低成本
子 Agent 可以使用更小模型完成专用任务,而主 Agent 使用更强模型做整体推理和综合。
例如:
text
主 Agent:强模型,负责推理和综合
Gmail 子 Agent:小模型,负责搜索邮件
Calendar 子 Agent:小模型,负责查询日程
Drive 子 Agent:小模型,负责读取文件
这比一个大模型 Agent 携带所有工具和所有上下文更高效。
9.5 提升系统可维护性
每个子 Agent 都可以独立开发、测试、部署、评估和回滚。
例如:
- Search Agent 升级不会影响 Writing Agent;
- Finance Agent 可以单独做权限审计;
- Legal Agent 可以单独绑定法规知识库;
- Code Agent 可以单独限制文件读写权限。
10. 子 Agent 动态加载的实现方式
10.1 Registry-Based 动态加载
维护一个 Agent Registry:
json
{
"agent_id": "finance_agent",
"description": "处理财务报表分析",
"input_schema": "FinanceTask",
"required_permissions": ["finance:read"],
"tools": ["sql_query", "spreadsheet_reader"],
"model": "gpt-5.5"
}
主 Agent 根据任务匹配合适子 Agent。
10.2 Factory-Based 动态构造
通过 Factory 在每次请求时构造 Agent。
伪代码:
python
def build_agent(request_context):
tenant_id = request_context.tenant_id
role = request_context.user_role
return Agent(
instructions=f"你是 {tenant_id} 的专属客服 Agent",
tools=get_tools_by_role(role),
memory=get_memory_scope(tenant_id),
knowledge=get_knowledge_base(tenant_id)
)
适合:
- 多租户系统;
- 个性化助手;
- 权限敏感任务;
- 每个请求配置不同的场景。
10.3 Router-Based 动态路由
使用路由器判断任务类型:
text
用户问题 → Router → 选择 Search Agent / Code Agent / Data Agent / Writing Agent
适合客服、知识问答、企业助手等。
10.4 Handoff-Based 动态接力
当任务需要另一个 Agent 接管时,主 Agent 可以 handoff。
例如:
text
Triage Agent 判断用户需要退款 → Handoff 给 Refund Agent
Refund Agent 完成退款流程
适合对话式业务分流。
10.5 Remote Sub-Agent
子 Agent 不一定在同一进程中,也可以部署在远程 AgentOS、微服务或 A2A Server 上。
适合:
- 分布式架构;
- 独立团队维护;
- 高安全隔离;
- 跨组织 Agent 协作;
- 统一网关调用多个 Agent 服务。
11. 典型系统案例:企业研究报告 Agent 平台
假设要构建一个"企业研究报告自动生成系统"。
11.1 Agent 设计
- Search Agent:检索资料;
- Data Agent:处理表格和财务数据;
- Industry Agent:行业分析;
- Writing Agent:生成报告;
- Review Agent:事实校验和格式审查。
11.2 Team 设计
text
Research Team = Search Agent + Data Agent + Industry Agent
Writing Team = Writing Agent + Review Agent
11.3 Workflow 设计
text
输入主题
→ 检索资料
→ 数据分析
→ 多 Agent 讨论
→ 生成初稿
→ 审核事实
→ 人工确认
→ 输出报告
11.4 AgentOS 设计
AgentOS 提供:
- API 调用入口;
- 用户身份和租户隔离;
- 会话历史;
- 报告版本;
- 工具调用 Trace;
- 知识库管理;
- 定时任务;
- 人工审批;
- 结果评估。
11.5 动态子 Agent 设计
当用户选择"金融行业"时,加载 Finance Agent;
当用户选择"医药行业"时,加载 Healthcare Agent;
当用户选择"跨境电商"时,加载 E-commerce Agent。
这样系统既有通用流程,又能按行业动态加载专业能力。
12. 设计建议
12.1 从单 Agent 开始
不要一开始就设计复杂多 Agent 系统。
推荐演进路径:
text
单 Agent
→ Agent + 工具
→ Agent + 动态 Skill
→ Team
→ Workflow
→ AgentOS
→ 动态子 Agent / 多租户 / 远程 Agent
12.2 能用函数解决的,不要强行用 Agent
如果任务是确定性逻辑,例如:
text
金额计算
字段校验
格式转换
数据库写入
优先使用普通函数或 Workflow 节点,而不是 LLM Agent。
12.3 复杂任务用 Workflow 控制主干
推荐设计:
text
Workflow 控制主流程
Agent 处理开放式推理
Team 处理多专业协作
Tool 处理确定性动作
Human-in-the-loop 处理高风险决策
12.4 子 Agent 要有清晰边界
每个子 Agent 应明确:
- 它解决什么问题;
- 它不能做什么;
- 它能访问哪些工具;
- 它能访问哪些数据;
- 输入输出 Schema 是什么;
- 谁可以调用它;
- 如何记录和审计。
12.5 加强治理能力
生产级 Agent 系统必须具备:
- 身份认证;
- RBAC;
- 最小权限;
- Trace;
- Audit Log;
- Versioning;
- Eval;
- Human Approval;
- Rate Limit;
- 数据隔离;
- Prompt 注入防护。
13. 关键风险
| 风险 | 说明 | 解决思路 |
|---|---|---|
| 过度多 Agent 化 | 简单问题被拆得过于复杂 | 先单 Agent,再逐步拆分 |
| 上下文泄露 | 子 Agent 获得不该看的信息 | 最小上下文注入 |
| 权限混乱 | 子 Agent 调用了越权工具 | RBAC + Tool Scope |
| 结果冲突 | 多个 Agent 给出不同答案 | 加入 Judge/Review 节点 |
| 成本失控 | 多 Agent 通信造成 token 增长 | 路由、缓存、小模型子 Agent |
| 调试困难 | 多步调用难以复现 | Trace + Replay + Checkpoint |
| 供应链风险 | 外部 Agent/Skill 不可信 | Registry 审核、签名、版本锁定 |
| 动态加载错误 | 选错子 Agent | Router 评测、置信度阈值、fallback |
14. 最终总结
AI-Agent 系统不是只有"一个 Agent 调工具"这么简单。成熟系统通常需要形成如下结构:
text
Agent:智能执行单元
Team:多 Agent 协作单元
Workflow:确定性流程编排单元
AgentOS:生产级运行与治理底座
Dynamic Sub-Agent:按需加载的专家能力扩展机制
它们之间的关系可以概括为:
#mermaid-svg-Hqol4lX9YW1tZCVV{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Hqol4lX9YW1tZCVV .error-icon{fill:#552222;}#mermaid-svg-Hqol4lX9YW1tZCVV .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Hqol4lX9YW1tZCVV .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Hqol4lX9YW1tZCVV .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Hqol4lX9YW1tZCVV .marker.cross{stroke:#333333;}#mermaid-svg-Hqol4lX9YW1tZCVV svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Hqol4lX9YW1tZCVV p{margin:0;}#mermaid-svg-Hqol4lX9YW1tZCVV .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV .cluster-label text{fill:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV .cluster-label span{color:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV .cluster-label span p{background-color:transparent;}#mermaid-svg-Hqol4lX9YW1tZCVV .label text,#mermaid-svg-Hqol4lX9YW1tZCVV span{fill:#333;color:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV .node rect,#mermaid-svg-Hqol4lX9YW1tZCVV .node circle,#mermaid-svg-Hqol4lX9YW1tZCVV .node ellipse,#mermaid-svg-Hqol4lX9YW1tZCVV .node polygon,#mermaid-svg-Hqol4lX9YW1tZCVV .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Hqol4lX9YW1tZCVV .rough-node .label text,#mermaid-svg-Hqol4lX9YW1tZCVV .node .label text,#mermaid-svg-Hqol4lX9YW1tZCVV .image-shape .label,#mermaid-svg-Hqol4lX9YW1tZCVV .icon-shape .label{text-anchor:middle;}#mermaid-svg-Hqol4lX9YW1tZCVV .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Hqol4lX9YW1tZCVV .rough-node .label,#mermaid-svg-Hqol4lX9YW1tZCVV .node .label,#mermaid-svg-Hqol4lX9YW1tZCVV .image-shape .label,#mermaid-svg-Hqol4lX9YW1tZCVV .icon-shape .label{text-align:center;}#mermaid-svg-Hqol4lX9YW1tZCVV .node.clickable{cursor:pointer;}#mermaid-svg-Hqol4lX9YW1tZCVV .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Hqol4lX9YW1tZCVV .arrowheadPath{fill:#333333;}#mermaid-svg-Hqol4lX9YW1tZCVV .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Hqol4lX9YW1tZCVV .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Hqol4lX9YW1tZCVV .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Hqol4lX9YW1tZCVV .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Hqol4lX9YW1tZCVV .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Hqol4lX9YW1tZCVV .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Hqol4lX9YW1tZCVV .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Hqol4lX9YW1tZCVV .cluster text{fill:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV .cluster span{color:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Hqol4lX9YW1tZCVV .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Hqol4lX9YW1tZCVV rect.text{fill:none;stroke-width:0;}#mermaid-svg-Hqol4lX9YW1tZCVV .icon-shape,#mermaid-svg-Hqol4lX9YW1tZCVV .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Hqol4lX9YW1tZCVV .icon-shape p,#mermaid-svg-Hqol4lX9YW1tZCVV .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Hqol4lX9YW1tZCVV .icon-shape .label rect,#mermaid-svg-Hqol4lX9YW1tZCVV .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Hqol4lX9YW1tZCVV .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Hqol4lX9YW1tZCVV .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Hqol4lX9YW1tZCVV :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} AgentOS 生产运行底座
Workflows 流程编排
Teams 多智能体协作
Agents 单智能体
Sub-Agent 1
Sub-Agent 2
Dynamic Sub-Agent / Skill / Tool
安全、权限、记忆、追踪、调度、评估
最终目标不是让系统"看起来更智能",而是让它:
- 能稳定运行;
- 能被调试;
- 能被审计;
- 能被治理;
- 能安全调用外部工具;
- 能根据任务动态扩展能力;
- 能在企业环境中长期迭代。
15. 参考资料
- Agno Documentation:Agent SDK、Agents / Teams / Workflows、AgentOS、Dynamic Agents、Context Providers、Remote Execution。
- Microsoft Agent Framework Documentation:Agents 与 Workflows 的官方划分、session state、context providers、middleware、MCP clients、graph-based workflows。
- OpenAI Agents SDK Documentation:Agents、Tools、Handoffs、Guardrails、Tracing、Sessions。
- LangChain / LangGraph Documentation:Multi-agent patterns、Subagents、Handoffs、Skills、Router、Context Engineering。
- AIOS: LLM Agent Operating System, arXiv:2403.16971。
- Agent Operating Systems (AOS): Integrating Agentic Control Planes into, and Beyond, Traditional Operating Systems, arXiv:2606.01508。