Agent 智能体
Agent 是对话型应用:模型自己判断下一步——思考、调用工具、读结果、再思考——直到能回答用户。你不画完整流水线,而是提供提示词 + 工具(+ 可选知识库),并限制最大迭代次数。
这与 LangChain 的 Agent 循环 是同一件事:Model ⇔ Tools。Dify 把循环做成 Studio 配置;LangChain 用 create_agent 和 @tool。
官方还有一种较新的 Agent(文档称其可在沙箱中构建,并复用为独立聊天应用或工作流里的节点)。本课以「基础 Agent 应用」为主,概念同样适用于图中的 Agent 节点。
和 Workflow 怎么选
需要整体可控、局部灵活时:外层 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 更干净;ReAct 有时会把推理过程写进可见文本。对比模型可用多模型调试。会话历史有上限(官方曾写约 500 条消息或 2 000 token 量级,超出丢最旧的)——超长会话不要假设「它还记得第一天」。
安全
工具能打到真实系统。生产环境:最小权限凭据、提示词禁止破坏性操作、高危工具先走人工确认(或改放到 Workflow 的 Human Input)。日志里应能看到每次工具名与参数,便于审计。这与 LangChain 里「不要把裸 eval 和未沙箱 Shell 交给 Agent」是同一条纪律。
下一步
- 发布与 API
- 工作流 — 需要固定图时回来
- LangChain 工具与 Agent