Agent 智能体

Agent 是对话型应用:模型自己判断下一步——思考、调用工具、读结果、再思考——直到能回答用户。你不画完整流水线,而是提供提示词 + 工具(+ 可选知识库),并限制最大迭代次数。

这与 LangChain 的 Agent 循环 是同一件事:Model ⇔ Tools。Dify 把循环做成 Studio 配置;LangChain 用 create_agent@tool

flowchart LR
  U[用户] --> M[模型推理]
  M --> T{调用工具?}
  T -->|是| E[执行工具]
  E --> M
  T -->|否| R[回复用户]

官方还有一种较新的 Agent(文档称其可在沙箱中构建,并复用为独立聊天应用或工作流里的节点)。本课以「基础 Agent 应用」为主,概念同样适用于图中的 Agent 节点


和 Workflow 怎么选

选 Agent选 Workflow / Chatflow
工具集合开放,路径事先列不全路径要固定、可回归
「去查一下再算一下再总结」「永远先分类,再检索,再生成」
接受一定不确定性审计要求每一步都是画布上的边

需要整体可控、局部灵活时:外层 Chatflow,内层一个 Agent 节点只处理「查外部系统」这一步。不要既做 20 个 If-Else,又指望模型完全无视它们。


提示词怎么写

Agent 的提示词除了人设,还要点名工具、约定何时用、禁止何时用

你是内部运维助手。先判断问题是否需要工具。
- 查天气或网页时使用对应搜索类工具,不要编造实时数据。
- 算术用计算器工具,不要心算长表达式。
- 知识库已覆盖的制度问题优先检索,不要用训练记忆替代。
找不到依据就说明缺什么信息。回答用简体中文。

可用 / 插入变量(短文本、段落、下拉、数字、勾选,或运行时 API 变量),让同一 Agent 服务不同部门。官方建议写清:人设、输出格式、约束、工具使用时机、粗步骤。


工具、迭代、知识库

在 Agent 上添加 Dify Tools(Marketplace / 工作空间已装的工具插件:搜索、数据库、业务 API 等)。需要鉴权的工具在 Integrations → Tools 里配凭据。模型根据用户问题自己选工具;提示词里写工具名会更稳。

Maximum Iterations 限制单次请求里「想 → 调工具 → 看结果」的圈数。调高能做更长任务,但延迟和 token 上升,也更容易死循环。从较小值(例如个位数)做起,看预览里的工具轨迹。

挂知识库时:Agent 没有应用级统一检索旋钮,而是按各库自己的设置检索;模型靠知识库描述决定查哪一个。描述写成「涵盖 2024 差旅报销,不含薪酬」比只写「公司文档」有用得多。可再加元数据过滤,避免全库扫描。


Function Calling 与 ReAct

预览里选擅长推理、且原生支持 tool calling 的模型。Agent Settings 会显示模式:

模式含义
Function Calling模型 API 原生返回 tool calls,可靠、省 prompt
ReAct用提示词引导「Reason + Act」,兼容较弱模型

同一任务在两种模式下轨迹不同:Function Calling 更干净;ReAct 有时会把推理过程写进可见文本。对比模型可用多模型调试。会话历史有上限(官方曾写约 500 条消息或 2 000 token 量级,超出丢最旧的)——超长会话不要假设「它还记得第一天」。


安全

工具能打到真实系统。生产环境:最小权限凭据、提示词禁止破坏性操作、高危工具先走人工确认(或改放到 Workflow 的 Human Input)。日志里应能看到每次工具名与参数,便于审计。这与 LangChain 里「不要把裸 eval 和未沙箱 Shell 交给 Agent」是同一条纪律。


下一步

评论