核心概念¶
Note: ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
FlexAI 应用¶
FlexAI 专为智能体应用构建而设计。在 Studio 中,你可以通过拖拽界面快速构建智能体工作流并将其发布为应用。你可以通过 API、Web 或作为 MCP 服务器访问已发布的应用。FlexAI 提供两种主要的应用类型:工作流和对话流。在创建新应用时,你需要选择一种应用类型。
Info:
我们推荐选择工作流或对话流作为你的应用类型。但除了这些之外,FlexAI 还提供 3 种更基础的应用类型:聊天机器人、智能代理和文本生成器。
这些应用类型在底层运行相同的工作流引擎,但提供了更简单的传统界面:
工作流¶
构建工作流应用来处理单轮任务。Web 应用界面和 API 提供了便捷的批量执行多个任务的访问方式。
Info:
在底层,工作流构成了 FlexAI 中所有其他应用类型的基础。
你可以指定如何以及何时启动工作流。有两种类型的开始节点:
用户输入和触发器开始节点是互斥的——它们不能在同一画布上使用。要在它们之间切换,请右键单击当前开始节点 > 更改节点。或者,删除当前开始节点并添加一个新节点。
Note:
只有由用户输入启动的工作流才能发布为独立的 Web 应用程序或 MCP 服务器,通过后端服务 API 公开,或在其他 FlexAI 应用程序中用作工具。
对话流¶
对话流是一种特殊类型的工作流应用,在对话的每一轮都会被触发。除了工作流功能外,对话流还具有存储和更新自定义对话特定变量的能力,在大型语言模型节点中启用记忆功能,并在对话流运行的不同节点流式传输格式化的文本、图像和文件。
与工作流不同,对话流不能使用触发器来启动。
FlexAI 领域特定语言¶
所有 FlexAI 应用都可以导出为 FlexAI 自有领域特定语言的 YAML 文件,你也可以直接从这些领域特定语言文件创建 FlexAI 应用。这使得将应用移植到其他 FlexAI 实例并与他人分享变得容易。
变量¶
变量是存储信息的标记容器,因此你可以通过引用其名称来查找和使用该信息。在构建 FlexAI 应用时,你会遇到不同类型的变量:
输入:你可以在用户输入节点为你的应用最终用户指定任意数量的输入变量来填写。

此外,用户输入节点还带有一组输入变量,你可以在流程中稍后引用。根据应用程序类型(工作流或对话流),会提供不同的变量。
工作流:
| 变量名 | <div style={{width: '70px'}}>数据类型</div> | 描述 | 注释 |
|:----------------|:-----------|:-------------|:--------|
| `sys.user_id` | String | 用户 ID:系统在用户使用工作流应用程序时自动分配给每个用户的唯一标识符。用于区分不同的用户。 | |
| `sys.app_id` | String | 应用程序 ID:系统自动分配给每个应用程序的唯一标识符。此参数用于记录当前应用程序的基本信息。 | 此参数用于具有开发能力的用户区分和定位不同的工作流应用程序。 |
| `sys.workflow_id` | String | 工作流 ID:此参数记录当前工作流应用程序中所有节点的信息。 | 此参数可供具有开发能力的用户用于跟踪和记录工作流中包含的节点信息。 |
| `sys.workflow_run_id` | String | 工作流运行 ID:用于记录工作流应用程序的运行时状态和执行日志。 | 此参数可供具有开发能力的用户用于跟踪应用程序的历史执行记录。 |
| `sys.timestamp` | Number | 每次工作流执行的开始时间。 | |
对话流:
| 变量名 | <div style={{width: '70px'}}>数据类型</div> | 描述 | 注释 |
|:----------------|:-----------|:-------------|:--------|
| `sys.conversation_id` | String | 聊天框交互会话的唯一 ID,将所有相关消息分组到同一对话中,确保 LLM 在相同的主题和上下文中继续聊天。 | |
| `sys.dialogue_count` | Number | 用户与对话流应用程序交互期间的对话轮次数。每次聊天轮次后计数自动增加 1,可与 if-else 节点结合使用以创建丰富的分支逻辑。<br /><br />例如,LLM 将在第 X 个对话轮次时审查对话历史并自动提供分析。 | |
| `sys.user_id` | String | 为每个应用程序用户分配一个唯一 ID,以区分不同的对话用户。 | 服务 API 不共享 WebApp 创建的对话。这意味着具有相同 ID 的用户将在 API 和 WebApp 界面之间具有单独的对话历史记录。 |
| `sys.app_id` | String | 应用程序 ID:系统自动分配给每个应用程序的唯一标识符。此参数用于记录当前应用程序的基本信息。 | 此参数用于具有开发能力的用户区分和定位不同的工作流应用程序。 |
| `sys.workflow_id` | String | 工作流 ID:此参数记录当前工作流应用程序中所有节点的信息。 | 此参数可供具有开发能力的用户用于跟踪和记录工作流中包含的节点信息。 |
| `sys.workflow_run_id` | String | 工作流运行 ID:用于记录工作流应用程序的运行时状态和执行日志。 | 此参数可供具有开发能力的用户用于跟踪应用程序的历史执行记录。 |
用户输入在每次工作流运行开始时设置,无法更新。
输出:每个节点产生一个或多个输出,可以在后续节点中引用。例如,大型语言模型节点有以下输出:

与输入一样,节点输出也无法更新。
环境变量:使用环境变量来存储你应用特定的敏感信息,如 API 密钥。这允许在密钥和 FlexAI 应用本身之间进行清晰分离,因此在分享你的应用领域特定语言时,你不必承担暴露密码和密钥的风险。环境变量也是常量,无法更新。
会话变量(仅对话流):这些变量是对话特定的——意味着它们在单个对话的多轮对话流运行中持续存在,因此你可以存储和访问动态信息,如待办事项列表和令牌成本。你可以通过变量分配器节点更新会话变量的值:

变量引用¶
在配置输入字段时,你可以通过从下拉菜单中选择,轻松将变量传递给任何节点:

你还可以通过键入 / 斜杠并从下拉菜单中选择所需变量,将变量值插入到复杂的文本输入中。

这些应用类型在底层运行相同的工作流引擎,但提供了更简单的传统界面:
