
# API操作指引
Agent发布，发布渠道选择"API"时，会将Agent生成为API接口。用户调用此接口时，调用流程如下。
#### 前提条件
Agent已发布，且发布渠道选择"API"，发布Agent具体操作请参考[在AI原生应用引擎中发布Agent](https://support.huaweicloud.com/usermanual-wiseagent/wiseagent_04_0007.html)。
 #### 获取API接口信息
1. [进入AI原生应用引擎](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0638.html#appstage_04_0638__section439520293419)。
2. 在AI原生应用引擎左侧导航，选择"Agent编排中心 \> 我的Agent"。
3. 在"我创建的"页签，在需要调用的Agent对应的"发布地址"列下，鼠标移动至![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002363534090.png)上，如[图1]所示，查看复制API接口地址。
   
   图1获取API信息   
   ![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002363374218.png "点击放大")
   
   
 
 #### 获取鉴权信息
调用API需要进行平台鉴权，API Key获取方法请参考[创建AK/SK访问密钥](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0703.html)。
#### 构造请求
```
curl命令调用agent请求示例：
{
  curl --location --request POST '{{ 第二步获得的Api地址 }}'
  --header 'Authorization: Bearer {{ 第三步获得的APIKey }}'
  --header 'Content-Type: application/json'
  --data-raw '{
      "query": "{{ 输入问题 }}",
      "memory": [], // 包含迄今为止历史对话的消息列表List[Dict]这是一个结构体的列表，每个元素类似如下：{"role": "user", "content": "你好"} role 只支持user,assistant,tool 其一，content 不得为空。
  }'
}
```
```
Python调用Agent代码示例：
import requests
url = {{ 获取API接口信息获取的API地址 }}
payload="{\n \"query\": \"您好"\n}"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{ 获取鉴权信息获取的APIKey }}',
}
response = requests.request("POST", url, headers=headers, data=payload)
```
#### 请求参数
表1请求参数说明 
| 参数              | 是否必选            | 参数类型 | 描述                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| query           | string          | true | 用户的问题。                                                                                                                                                                                                 |
| memory          | Array\[Object\] | true | 历史对话内容。 示例：{"role": "user", "content": "你好"}，role支持user、assistant、tool。                                                                                              |
| user_id         | string          | true | 自定义的用户ID，与conversation_id共同使用可以使Agent自动获取相同对话ID下的前几轮对话内容。与memory不同时生效，memory存在时memory优先生效。                                                                                                             |
| conversation_id | string          | true | 自定义的对话ID，与user_id共同使用可以使Agent自动获取相同对话ID下的前几轮对话内容。与memory不同时生效，memory存在时memory优先生效。                                                                                                                     |
| variables       | Object          | true | 填写一般变量和敏感变量。 示例：{"common_variables":{"k1":"v1"}, "sensitive_variables":{"k2":"v2"}}}，其中common_variables表示一般变量，sensitive_variables表示敏感变量。如果Agent中设置了敏感变量，敏感变量为必传。 |
   
#### 响应参数
表2响应参数说明 
| 参数              | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| request_id      | string | 请求ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| agent_id        | string | Agent的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| user_id         | string | 用户ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| conversation_id | string | 会话ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| type            | string | 返回类型。 - hint：表示提示将要调用的工具、知识库和工作流。  - tool：表示工具调用结果。  - knowledge：表示知识库调用结果。  - workflow：表示工作流调用结果。  - message：表示大模型返回的对话或总结内容。               |
| data            | Object | 返回的具体内容。 - [表3]：type为hint时，返回ToolHintChunk。  - [表4]：type为tool、knowledge、workflow时，返回ToolInvokeChunk。  - [表5 ModelResponseChunk]：type为message时，返回ModelResponseChunk。   |
   
 表3ToolHintChunk 
| 参数   | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| id   | string | 工具、工作流或者知识库的唯一ID。                                                                                                                                                                                                                                                                                                      |
| name | string | 工具、工作流或者知识库的名称。                                                                                                                                                                                                                                                                                                        |
| type | string | - tool：表示工具。  - workflow：表示工作流。  - knowledge：表示知识库。   |
   
 表4ToolInvokeChunk 
| 参数       | 参数类型   | 描述                                                                                                         |
|:---|:---|:---|
| id       | string | 工具、工作流或者知识库的唯一ID。                                                                                          |
| name     | string | 工具、工作流或者知识库的名称。                                                                                            |
| status   | string | 调用状态。 SUCCESS：表示调用成功。 FAILED：标识调用失败。 |
| request  | Object | 调用请求。                                                                                                      |
| response | Object | 调用结果。                                                                                                      |
   
 表5ModelResponseChunk 
| 参数      | 参数类型   | 描述              |
|:---|:---|:---|
| id      | string | 唯一ID            |
| content | string | 返回消息内容，当前只支持流式。 |
| url     | Object | 图片、视频的URL。      |
| raw     | Object | 大模型的原始返回。       |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-appstage/ErrorCode.html)。
