# AI 智能体

Source: https://openflow.run/zh-cn/docs/nodes/agent/
Language: zh-CN
Product version: 0.1.0-beta.77

在明确的数据、工具和审批权限范围内，让模型多轮推理并调用工具。

任务需要多轮推理或多次使用工具时，可以使用 AI 智能体（Agent）节点。声明的模型、工具、账号、固定参数和审批策略，共同限定模型能够执行的操作。

## 配置任务

编写提示词，选择可用模型，并绑定 Agent 所需的信息。

```json
{
  "op": "node.add", "as": "reply", "type": "agent", "name": "Draft a reply",
  "prompt": "Draft a brief reply. Identify facts that need confirmation. Do not invent a resolution.",
  "config": { "model": "deepseek-v4-flash", "maxRounds": 5 },
  "inputs": { "input": { "kind": "value", "value": "The customer's parcel has not arrived." } }
}
```

模型必须由当前部署环境支持。可以直接绑定具名业务输入，需要明确约束时使用 `config.inputs`。Agent 默认返回文本；需要结构化 JSON 时，应设置 `config.resultSchema`，无需声明内部输出端口。

Agent 接收客服请求，在设定范围内起草回复。本例没有授予外部工具权限。

**输入**
{"text":"My parcel has not arrived. Can you confirm its status?"}

**预期结果**
生成回复草稿并指出需要确认的事实，不会发送邮件。

**运行前准备**
运行前，配置部署端模型服务，并选择可用模型。

[下载工作流](https://openflow.run/docs/examples/draft-with-agent.openflow.json)

## 声明工具

工具可以是应用操作，也可以是选定的已发布工作流。每个工具都要配置对外名称、说明、账号和审批策略。参数可以来自固定值、Agent 输入，或由模型填写。

平台会生成应用操作和工作流的输入定义。模型不能自行获得新账号、修改固定参数或关闭审批。被推迟配置且尚未就绪的工具，不会出现在可调用工具列表中。

## 等待与恢复

工具可以要求人工审批。待处理决定和受支持的 Agent 后续执行信息由本次运行管理。工具结果持久化后，恢复时可以继续执行，无需为了重建数据而重复已完成的外部调用。

Agent 临时执行代码计算，不会修改工作流，也不会自动继承外部能力。需要时，应明确配置受支持的代码工具。

## 限制

Agent 的轮数、节点执行时间和整次运行时间都有上限。它不支持代码和 LLM 节点使用的普通节点重试及 `onError` 处理。模型生成的回复不能证明外部操作已经成功，应查看实际工具结果。

## 资料来源

*   [docs/authoring/node-authoring.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/authoring/node-authoring.md)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#11-agent-task)
*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#wait-and-agent)
*   [packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts)
