Steps vs DAG 依赖图具体结构设计(Agent 执行模型底层结构)
📌 Steps vs DAG 依赖图具体结构设计(Agent 执行模型底层结构)
🎯 一、问题背景
在 Agent 系统中,Planner 输出的核心不是“文本步骤”,而是“结构化执行图”。 常见两种结构:Steps(线性结构)与 DAG(依赖图结构)。
本质差异在于:Steps 描述执行顺序,DAG 描述任务依赖关系。
🚀 二、核心结构定义
1. Steps 结构(线性链表模型)
📌 JSON 结构定义:
```{
"type": "steps",
"steps": [
{
"id": "step1",
"name": "获取财报数据",
"tool": "financial_api",
"input": "company_name",
"output": "report_data"
},
{
"id": "step2",
"name": "行业分析",
"tool": "web_search",
"input": "report_data",
"output": "industry_insight"
},
{
"id": "step3",
"name": "生成报告",
"tool": "llm",
"input": "industry_insight",
"output": "final_report"
}
]
}
```
📌 执行关系:step1 → step2 → step3 → result
2. DAG 结构(图模型)
📌 JSON 结构定义:
```{
"type": "dag",
"nodes": [
{
"id": "A",
"name": "获取财报",
"tool": "financial_api"
},
{
"id": "B",
"name": "行业数据",
"tool": "web_search"
},
{
"id": "C",
"name": "综合分析",
"tool": "llm"
}
],
"edges": [
{
"from": "A",
"to": "C"
},
{
"from": "B",
"to": "C"
}
]
}
```
📌 执行关系:A || B(并行) → C(汇总)
📊 三、结构对比(本质模型差异)
Steps
- 线性数组结构(List<Step>)
- 隐式依赖(i → i+1)
- 执行顺序固定
- 不支持并行
DAG
- 图结构(Node + Edge)
- 显式依赖(A → C)
- 支持并行执行(A || B)
- 支持拓扑排序调度
⚙️ 四、执行调度结构
1. Steps 调度模型
Step1 → Step2 → Step3 → Step4 → Result
执行器采用 FIFO 顺序执行模型,无状态分支能力。
2. DAG 调度模型
入度=0节点 → 并行执行 → 状态回写 → 解锁下游节点
核心算法:拓扑排序 + Ready Queue 调度 + 并行 Worker Pool。
🔄 五、Spring Cloud Alibaba 落地结构
Planner Service → Nacos注册中心 → RocketMQ任务队列 → Executor Worker集群 → Sentinel限流 → Feign工具调用
🧪 六、实际结构案例
Steps 示例
```Step1: 获取公司信息 Step2: 获取财务数据 Step3: 分析数据 Step4: 输出报告```
DAG 示例
```A: 财务数据获取 B: 行业数据获取 C: 用户画像分析 D: 综合报告生成(依赖A+B+C)```
⚖️ 七、优缺点结构化对比
Steps
- 结构简单(List模型)
- 执行稳定
- 扩展能力弱
- 无并行能力
DAG
- 结构复杂(Graph模型)
- 支持并行执行
- 支持动态调度
- 实现成本高
💡 八、面试常见追问
- DAG 如何做拓扑排序调度?
- Steps 为什么无法并行?
- Planner 如何生成 edges?
- 如何保证 DAG 无环?
- Executor 如何做并行 Worker 调度?
🎯 九、总结
Steps 是“线性执行结构(List)”,DAG 是“依赖关系结构(Graph)”。
在 Agent 系统设计中,Steps 偏流程控制,DAG 偏调度系统,是从“流程思维”升级到“系统思维”的关键分水岭。
相关文章
-
你是怎么判断问题主要来自模型幻觉,还是 RAG、Prompt、工具链路本身?
你是怎么判断问题主要来自模型幻觉,还是 RAG、Prompt、工具链路本身?
NEW个对象 2026-06-20
-
Agent 架构核心:Planner / Executor / Replanner 全景解析
Agent 架构核心:Planner / Executor / Replanner 全景解析
NEW个对象 2026-06-20
-
:使用spring alibaba ai实现完整的链路日志结构?
使用spring alibaba ai实现完整的链路日志结构
NEW个对象 2026-06-19