Agent 策略与推理
Agent(智能体) 与工作流相反:你不规定步骤,而是给模型目标、工具和推理框架,让它自己决定「先做什么、调哪个工具、下一步怎么办」。本章讲清它的原理与配置。
1. 什么是 Agent
- 工作流:你画好流程图,机器照走
- Agent:你给目标 + 工具箱,模型自己规划路径
Agent 适合开放、路径不确定的任务:订机票、排查故障、跨系统办事。
ℹ️Agent 不是魔法
Agent 的可靠性高度依赖「工具质量 + 提示词约束 + 推理策略」。工具描述不清、目标模糊,Agent 就会乱来或陷入循环。
2. ReAct 推理范式
Dify 的 Agent 多基于 ReAct(Reason + Act) 循环:
Thought(思考):我需要先查订单状态
Action(行动):调用 query_order(ORD-123)
Observation(观察):返回「已发货」
Thought:用户还问了预计到货,我调用物流查询
Action:call_logistics(ORD-123)
Observation:预计明天
Thought:信息齐了,可以回答了
Final Answer:您的订单已发货,预计明天送达。模型在「思考—行动—观察」间循环,直到认为能给出最终答案。
3. 推理模式与策略
Dify 提供不同 Agent 策略(随版本演进):
- Function Calling(工具调用):模型直接输出结构化工具调用,稳定高效(主流推荐)
- ReAct:以自然语言 Thought/Action 循环,兼容性强
- 可在 Agent 设置中选择策略并配置最大迭代次数(防死循环)
Agent 设置:
推理策略:Function Calling
最大迭代轮数:5
失败重试:2⚠️务必设最大迭代
不设上限,Agent 可能在「调工具→不满意→再调」里无限循环,既慢又烧 token。5–10 轮通常足够,超限就让它诚实说「无法完成」。
4. 给 Agent 配工具
Agent 的能力 = 你挂载的工具集合。常见组合:
- 搜索工具(获取实时信息)
- 内部 API 工具(查/办业务)
- 代码工具(计算、解析)
- 知识库检索(基于私有资料)
工具的 description 越清楚,Agent 选得越准(回看第 9 章)。
5. 提示词约束 Agent
用系统提示框定边界:
你是一个运维助手。可以调用查询类工具,但禁止执行任何写操作。
每步先说明你要做什么,再调用工具。
若两次尝试仍无结果,停止并说明原因。💡Agent + 工作流混合
复杂系统常这样设计:外层 Agent 负责「理解意图、拆解任务」,把确定性的子任务交给工作流/工具执行。兼顾灵活与可控。
🎯动手做
创建一个 Agent 应用,挂载「Web 搜索」+ 一个查询类自定义工具,设最大迭代 5 轮,问一个需要多步查证的问题(如「对比 A 和 B 两款产品的价格与特性」),观察它的推理过程。
小结
- Agent 自主规划步骤,适合开放不确定任务
- ReAct / Function Calling 是主流推理范式
- 必须设最大迭代防死循环;工具描述决定调用准确率
- 用提示词约束边界;常与工作流混合使用
- 下一步:接入你自己的大模型 →