
# 调用工作流应用 - runWorkflow
#### 功能介绍
该接口用于运行场景化应用，支持在指定的项目、工作流和对话上下文中执行工作流逻辑。接口支持流式响应模式，可以根据需要返回增量执行结果，适用于实时交互场景。
适用场景：
- 在项目中运行预定义的工作流。
  
- 支持调试模式和发布模式，适用于不同开发和生产环境。
  
- 支持流式响应，适用于需要实时反馈的场景（如聊天机器人、实时数据分析等）。
  
 
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-agentarts0/agentarts_07_0003.html)。
#### URI
POST /v1/{project_id}/workflows/{workflow_id}/conversations/{conversation_id}
表1路径参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| project_id      | 是    | String | **参数解释**： 当前租户项目ID。 获取方法请参考[获取项目ID](https://support.huaweicloud.com/api-agentarts0/agentarts_07_0018.html)。 **约束限制**： 不涉及。 **取值范围**： 由英文，数字，"-"，"_"组成，不超过64位字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                    |
| workflow_id     | 是    | String | **参数解释**： 工作流应用的ID。 获取方式： 1. 进入AgentArts智能体开发平台。   2. 在左侧导航栏中选择"开发中心 \> 智能体管理 "，单击"工作流"页签。   3. 在待复制ID的工作流应用卡片上，单击"更多 \> 复制ID"。    **约束限制**： 不涉及。 **取值范围**： 由英文，数字，"-"，"_"组成，不超过64位字符。 **默认取值**： 不涉及。 |
| conversation_id | 是    | String | **参数解释**： 会话ID，每个会话的唯一标识符。用户可将会话ID设置为任意字符串，例如"123e4567e89b12d3a456426614174000"，无需在其他地方获取。 **约束限制**： 不涉及。 **取值范围**： 由英文，数字，"-"，"_"组成，不超过64位字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
表2Query参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| workspace_id | 否    | String | **参数解释**： 工作空间ID，用于标识特定的工作空间。 获取方法请参考[获取工作空间ID](https://support.huaweicloud.com/api-agentarts0/agentarts_07_0020.html)。 **约束限制**： 不涉及。 **取值范围**： 由英文，数字，"-"，"_"组成，不超过64位字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| version      | 否    | String | **参数解释**： 发布版本。 获取方式： 1. 进入AgentArts智能体开发平台。   2. 在左侧导航栏中选择"开发中心 \> 智能体管理 "，单击"工作流"页签。   3. 选择需要查找的工作流应用。   4. 在工作流界面右上角，单击"版本历史"，获取ID。    **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
#### 请求参数
表3请求Header参数 
| 参数            | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| X-Auth-Token  | 是    | String  | **参数解释**： 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。  **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| X-Invoke-Mode | 否    | String  | **参数解释**： 该参数用于标识工作流应用运行的模式。 **约束限制**： 不涉及。 **取值范围**： - X-Invoke-Mode的值为debug时，工作流应用的运行模式为调试模式。调试模式会生成日志、详细的执行步骤，便于排查问题。   - X-Invoke-Mode的值为published时，工作流应用的运行模式为发布模式。    **默认取值**： published。                                                                                                                                                                                                                                                               |
| stream        | 否    | Boolean | **参数解释**： 是否开启流式调用。 - 当stream为true时，服务器以流式方式逐步返回结果，适合需要实时反馈的场景。   - 当stream为false时，服务器在处理完成后一次性返回结果，适合处理较小数据或不需要实时反馈的场景。    **约束限制**： 不涉及。 **取值范围**： - true：开启。   - false：不开启。    **默认取值**： true。 |
| Content-Type  | 是    | String  | **参数解释**： 发送的实体的MIME类型。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： application/json。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
表4请求Body参数 
| 参数             | 是否必选 | 参数类型                                                                | 描述                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| inputs         | 是    | Map\<String,Object\>                                                | **参数解释**： 用户提出的问题，作为运行工作流的输入，与工作流开始节点输入参数对应。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                      |
| plugin_configs | 否    | Array of [PluginConfig] objects | **参数解释**： 插件配置信息。 **约束限制**： 不涉及。 **取值范围**： 当工作流关联插件节点，并且插件是"用户级鉴权"时，需要配置对应的鉴权信息。其他情况该参数无需传值，plugin_configs传空数组。 **默认取值**： 不涉及。 |
   
 表5PluginConfig 
| 参数        | 是否必选 | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| plugin_id | 否    | String               | **参数解释**： 插件ID。 获取方式： 1. 进入AgentArts智能体开发平台。   2. 在左侧导航选择"开发中心 \> 组件库 \> 插件"。   3. 鼠标移动至待复制ID的插件卡片上，单击"更多 \> 复制ID"。    **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
| config    | 否    | Map\<String,String\> | **参数解释**： 配置插件信息。当工作流关联插件节点，并且插件是"用户级鉴权"时，需要在此配置对应的鉴权信息。例如，针对如下插件，config可以配成：{"key2": "value"}。其他情况该参数无需传值，plugin_configs传空数组即可。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数    | 参数类型                                       | 描述                                                                                                                                            |
|:---|:---|:---|
| event | Map\<String,Object\>                       | **参数解释**： 工作流最终输出内容表示工作流运行。 **取值范围**： 不涉及。       |
| data  | [data] object | **参数解释**： 工作流助手回复内容。例如，提问器节点问题消息。 **取值范围**： 不涉及。 |
   
 表7data 
| 参数            | 参数类型    | 描述                                                                                                                                |
|:---|:---|:---|
| text          | String  | **参数解释**： 工作流输出内容消息块。 **取值范围**： 不涉及。 |
| index         | Integer | **参数解释**： 消息块索引。 **取值范围**： 不涉及。      |
| node_id       | String  | **参数解释**： 节点ID。 **取值范围**： 不涉及。       |
| node_type     | String  | **参数解释**： 节点类型。 **取值范围**： 不涉及。       |
| node_name     | String  | **参数解释**： 节点名称。 **取值范围**： 不涉及。       |
| workflow_id   | String  | **参数解释**： 工作流ID。 **取值范围**： 不涉及。      |
| workflow_name | String  | **参数解释**： 工作流名称。 **取值范围**： 不涉及。      |
| createdTime   | Integer | **参数解释**： 创建时间。 **取值范围**： 不涉及。       |
   
**状态码：500**
表8响应Body参数 
| 参数    | 参数类型                                       | 描述                                                                                                                                            |
|:---|:---|:---|
| event | Map\<String,Object\>                       | **参数解释**： 工作流最终输出内容表示工作流运行。 **取值范围**： 不涉及。       |
| data  | [data] object | **参数解释**： 工作流助手回复内容。例如，提问器节点问题消息。 **取值范围**： 不涉及。 |
   
表9data 
| 参数            | 参数类型   | 描述                                                                                                                           |
|:---|:---|:---|
| node_id       | String | **参数解释**： 节点ID。 **取值范围**： 不涉及。  |
| node_type     | String | **参数解释**： 节点类型。 **取值范围**： 不涉及。  |
| node_name     | String | **参数解释**： 节点名称。 **取值范围**： 不涉及。  |
| code          | String | **参数解释**： 错误码。 **取值范围**： 不涉及。   |
| message       | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。  |
| workflow_id   | String | **参数解释**： 工作流ID。 **取值范围**： 不涉及。 |
| workflow_name | String | **参数解释**： 工作流名称。 **取值范围**： 不涉及。 |
   
#### 请求示例
- 调用工作流
  ```
  {
    "method" : "POST",
    "url" : "https://api.example.com/v1/12345/workflows/67890/conversations/67890",
    "headers" : {
      "Content-Type" : "application/json",
      "X-Auth-Token" : "MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...",
      "stream" : true
    },
    "body" : {
      "inputs" : {
        "query" : "你好"
      },
      "plugin_configs" : [ {
        "plugin_id" : "xxxxxxxxx",
        "config" : {
          "key" : "value"
        }
      } ]
    }
  }
  ```
  
 
#### 响应示例
**状态码：200**
成功响应。
```
{
  "event" : "message",
  "data" : {
    "text" : null,
    "index" : 11,
    "node_id" : "node_end",
    "node_type" : "End",
    "node_name" : "结束",
    "workflow_id" : "cd7a8f33-66e3-455c-b008-a6b18dd27319",
    "workflow_name" : "flowouttest",
    "createdTime" : 1760169416635
  },
  "createdTime" : 1760169416635
}
```
**状态码：500**
错误响应。
```
{
  "event" : "error",
  "data" : {
    "text" : null,
    "index" : 11,
    "node_id" : "node_end",
    "node_type" : "End",
    "node_name" : "结束",
    "code" : "101563",
    "message" : "执行报错，错误码：101563，错误信息：Get model streaming output error， msg-Model request error: ",
    "workflow_id" : "cd7a8f33-66e3-455c-b008-a6b18dd27319",
    "workflow_name" : "flowouttest",
    "createdTime" : 1760169416635
  },
  "createdTime" : 1760169416635
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 成功响应。 |
| 500 | 错误响应。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-agentarts0/ErrorCode.html)。
