# 应用调用与工作流工具节点

> 在工作流中调用子应用（runApp），或配置工作流工具的自定义输入（pluginInput）、输出（pluginOutput）与工具参数（toolParams）。

Source: https://doc.fastgpt.cn/zh-CN/guide/build/workflow/nodes/run_app

FastGPT 支持将已发布的应用或工作流工具嵌入其他工作流中复用，实现模块化编排。本页涵盖子应用调用节点以及构建工作流工具专用的三个系统节点。

## 一、应用调用节点（`appModule` / `runApp`）

将团队内已有的对话 Agent、对话 Agent V2 或工作流作为当前画布上的一个步骤执行，或挂载到 [工具调用节点](/zh-CN/guide/build/workflow/nodes/tool) 供模型按需调用。

### 输入、配置与输出

| 项目                        | 类型              | 说明                                                 |
| ------------------------- | --------------- | -------------------------------------------------- |
| **选择应用**                  | 资源绑定            | 选择当前团队具有访问权限的目标应用；节点标题栏的版本选择器可选“保持最新版本”，或固定某个已发布版本 |
| **用户问题**（`userChatInput`） | `String`        | 传递给被调用应用的输入文本，可填写固定文本或引用上游变量                       |
| **聊天记录**（`history`）       | `ChatHistory`   | 传递给子应用的上下文轮次或上游聊天记录变量                              |
| **文件链接**（`fileUrlList`）   | `Array<string>` | 传递给子应用处理的文件 URL 数组                                 |
| **子应用全局变量**               | 动态字段            | 自动映射目标应用声明的必填与选填全局变量                               |
| **AI 回复内容**（`answerText`） | `String`        | 子应用执行完成后返回的完整文本结果                                  |
| **新的上下文**（`history`）      | `ChatHistory`   | 附加了子应用本轮问答后的更新上下文                                  |

节点输出区标题右侧提供 **报错捕获** 开关，开启后可将子应用的运行错误引导至容错分支，见[调试与报错捕获](/zh-CN/guide/build/workflow/debug-and-error-handling)。

## 二、工作流工具专用节点

当你在“工作台 → 我的工具”中通过列表的“新建”卡片创建工作流工具时，画布默认包含 **插件开始**（`pluginInput`）和 **插件输出**（`pluginOutput`）两个节点，替代普通工作流的开始节点；两个节点内分别为 **自定义输入**、**自定义输出** 分区，详见 [创建与复用工作流工具](/zh-CN/guide/build/tools/workflow-tools)。

![工作流工具中的参数变量配置](/imgs/optimized/current/tool-variables.png.webp)

### 1. 插件开始（`pluginInput`）

* **职责**：声明调用方（父工作流、工具调用节点或 Agent）在调用该工作流工具时必须或可选传入的参数契约（JSON Schema）。
* **配置项**：在“自定义输入”分区点击“新增”，配置字段名（`key`）、显示标签（`label`）、数据类型（`String`、`Number`、`Boolean`、`Object`、强类型数组或 `选择知识库`）、工具参数描述（供大模型理解如何填值）以及是否必填。
* **输出**：每个声明的输入字段自动成为该节点的同名输出端口，供画布下游节点直接引用。

### 2. 插件输出（`pluginOutput`）

* **职责**：汇总工作流工具内部节点的处理结果，按固定字段名返回给父级调用方或大模型。
* **配置项**：在“自定义输出”分区点击“新增”，声明输出变量名、类型与说明，并通过变量选择器绑定画布内上游节点（如 HTTP 请求、代码运行、AI 对话）的输出值。

### 3. 自定义工具变量（`toolParams`）

* **职责**：在通过工具连接线挂载到[工具调用节点](/zh-CN/guide/build/workflow/nodes/tool)的子工作流中，额外声明需要大模型在运行期动态生成并注入的参数字段。
* **生效条件**：仅在画布中存在工具调用节点或连接在 `selectedTools` 工具连线路径上时可用；声明的字段会合并到工具调用的 Function Calling Schema 中，并在执行时作为该节点的输出供下游节点引用。

## 示例：封装并调用订单查询子流程

1. 创建一个工作流工具 `订单状态查询`，在**自定义输入**中添加字符串字段 `orderId`（描述：`8 位订单编号`）。
2. 连接 HTTP 请求节点查询订单服务，再将返回的物流状态绑定到**自定义输出**的 `statusText` 字段，点击发布。
3. 在主工作流中添加该工作流工具节点，将上游提取出的订单号连接到 `orderId` 输入端口，即可在下游引用 `statusText` 输出。
