Learn
Dify/12-agent-strategy

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 是主流推理范式
  • 必须设最大迭代防死循环;工具描述决定调用准确率
  • 用提示词约束边界;常与工作流混合使用
  • 下一步:接入你自己的大模型 →