```mdx
---
title: "智能代理"
description: "Give LLMs autonomous control over tools for complex task execution"
icon: "robot"
---

智能代理节点赋予您的大型语言模型（LLM）对工具的自主控制，使其能够反复决定使用哪些工具以及何时使用这些工具。智能代理不是预先规划每一步，而是动态地通过问题进行推理，根据需要调用工具以完成复杂任务。

<Frame caption="智能代理节点配置界面">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/1f4d803ff68394d507abd3bcc13ba0f3.png" alt="Agent node interface" />
</Frame>

## 智能代理策略

智能代理策略定义了您的智能代理如何思考和行动。选择最符合您的模型能力和任务需求的方法。

<Frame caption="可用的智能代理策略选项">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/f14082c44462ac03955e41d66ffd4cca.png" alt="Agent strategies selection" />
</Frame>

<Tabs>
  <Tab title="函数调用">
    使用LLM的本地函数调用能力，通过工具参数直接传递工具定义。LLM使用其内置机制决定何时以及如何调用工具。
    
    最适合像GPT-4、Claude 3.5以及其他具有强大函数调用支持的模型。
  </Tab>
  
  <Tab title="推理与行动 (ReAct)">
    使用结构化提示词指导LLM通过明确的推理步骤。遵循**思维 → 行动 → 观察**周期以实现透明的决策过程。
    
    适用于可能没有本地函数调用的模型或当您需要明确的推理轨迹时。
  </Tab>
</Tabs>

<Info>
  从**市场 → 智能代理策略**安装其他策略或向[社区仓库](https://github.com/langgenius/dify-plugins)贡献自定义策略。
</Info>

<Frame caption="函数调用策略配置">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/10505cd7c6f0b3ba10161abb88d9e36b.png" alt="Function calling setup" />
</Frame>

## 配置

### 模型选择

选择支持您所选智能代理策略的LLM。能力更强的模型能更好地处理复杂推理，但每次迭代的成本更高。如果使用该策略，请确保您的模型支持函数调用。

### 工具配置

配置您的智能代理可以访问的工具。每个工具需要：

**授权** - 在您的工作空间中配置的外部服务的API密钥和凭证

**描述** - 对工具的功能及使用时机的清晰解释（这将指导智能代理的决策过程）

**参数** - 工具接受的必需和可选输入，并进行适当验证

### 说明和上下文

使用自然语言说明定义智能代理的角色、目标和上下文。使用Jinja2语法引用上游工作流节点的变量。

**查询**指定智能代理应该处理的用户输入或任务。这可以是来自之前工作流节点的动态内容。

<Frame caption="智能代理配置参数">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/54c8e4f0eaa7379bd8c1b5ac6305b326.png" alt="Agent configuration interface" />
</Frame>

### 执行控制

**最大迭代次数**设置一个安全限制以防止无限循环。根据任务复杂性进行配置——简单任务需要3-5次迭代，而复杂研究可能需要10-15次。

**记忆**控制智能代理使用TokenBufferMemory记住多少前面的消息。更大的记忆窗口提供更多的上下文，但增加了标记成本。这使得用户可以在多轮对话中引用先前的操作。

### 工具参数自动生成

工具可以配置为**自动生成**或**手动输入**参数。自动生成的参数（`auto: false`）由智能代理自动填充，而手动输入参数需要明确的值，并成为工具永久配置的一部分。

<video controls src="https://assets-docs.dify.ai/2025/04/1801b96763eb8f22f1e2158645897885.mp4" width="100%" />

## 输出变量

智能代理节点提供全面的输出，包括：

**最终答案** - 智能代理对查询的最终回应

**工具输出** - 执行过程中每次工具调用的结果

**推理轨迹** - 步骤决策过程（特别是在使用ReAct策略时详细）可在JSON输出中查看

**迭代次数** - 使用的推理循环次数

**成功状态** - 智能代理是否成功完成任务

**智能代理日志** - 结构化的日志事件和元数据，用于调试和监控工具调用

## 用例

**研究和分析** - 智能代理可以自主搜索多个来源，综合信息并提供全面答案。

**故障排除** - 诊断任务中，智能代理需要收集信息，测试假设，并根据发现调整其方法。

**多步数据处理** - 复杂的工作流中，下一步操作取决于中间结果。

**动态API集成** - 在响应和条件无法预先确定的情况下，API调用顺序可能依赖于场景。

## 最佳实践

**清晰的工具描述**帮助智能代理有效理解何时和如何使用每个工具。

**适当的迭代限制**防止费用失控，同时为复杂任务提供足够的灵活性。

**详细的说明**提供关于智能代理角色、目标以及任何限制或偏好的上下文。

**记忆管理**根据您的用例需求，在上下文保留和标记效率之间找到平衡。
```