
# 更新Agent（Token认证）
#### 功能介绍
更新智能体的配置。
通过此API可更新通过Versatile平台或API方式创建的所有智能体。通过API方式修改智能体名称和描述、头像、人设与回复逻辑及开场白。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-appstage/appstage_07_0008.html)。
#### URI
PUT https://aiae.appstage.myhuaweicloud.com/open/user/agent/{agentId}
表1路径参数 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| agentId | 是    | String | **参数解释：** Agent的唯一ID。进入[AI原生应用引擎](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0638.html#section0)，在左侧导航栏选择"Agent编排中心 \> 我的Agent"，选择"我创建的"页签，选择列表操作列的" 修改"，在浏览器地址栏查看ID。 **约束限制：** 不涉及。 **取值范围：** 由英文字母和数字组成，长度为32个字符。 **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 鉴权信息。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| region     | 是    | String           | 资产所属的地区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| tags       | 否    | Array of strings | **参数解释：** 描述资产的标签（键值对列表形式）。 标签名称不能包含：\< \> \* % \& : \\ ? + / 以及任何控制字符。 每个资产最多关联15 个标签，每个标签的key不超过 512 个字符，value不超过 256 个字符。 对于"label"字段，建议AP不要将其作为单独的属性，而是利用这些标签做分组。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| properties | 是    | Object           | **参数解释：** 用户自定义属性，用于配置或描述资产，比如可以有资产名称属性（name）。请求中参数的顺序未指定，建议蛇形命名。包含了资产配置模板的参数以及AP自定义的内容。 **约束限制：** - Name: 由1\~20字符组成，包含中文、字母、数字和下划线。不能以数字或下划线开头。同一租户下名称不能重复。   - description：少于200字符。   - knowledgeSetting：可以为空，但必须少于5000字符。   - instructions：少于4000字符。   - prologue：少于200字符。   - agentWorkType：支持agent_llm、agent_single_workflow、agent_operator。   - fileBox：当"agentWorkType"值为"agent_llm"时，才支持文件盒子。其他类型，则为空。    **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| region     | String           | 资产所属的地区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| tags       | Array of strings | **参数解释：** 描述资产的标签（键值对列表形式）。 标签名称不能包含：\< \> \* / %\& : \\ ? + / 以及任何控制字符。 每个资产最多关联15 个标签，每个标签的key不超过 512 个字符，value不超过 256 个字符。 对于"label"字段，建议AP不要将其作为单独的属性，而是利用这些标签做分组。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| properties | Object           | **参数解释：** 用户自定义属性，用于配置或描述资产，比如可以有资产名称属性（name）。请求中参数的顺序未指定，建议蛇形命名。包含了资产配置模板的参数以及AP自定义的内容。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                          |
   
**状态码：400**
表5响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                       |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。 |
| error_msg  | String | **参数解释：** 错误信息。 **取值范围：** 不涉及。  |
   
**状态码：500**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。    |
| error_msg  | String | **参数解释：** 错误信息。 **取值范围：** 不涉及。 |
   
#### 请求示例
```
https://xxx.x.x.x:xxxx/open/user/agent/{agentId}
{
  "region" : "cn-north-5",
  "tags" : [ ],
  "properties" : {
    "instructions" : "**角色定义**:<br>作为JAVA专家，我精通JAVA编程语言及各种设计模式的应用，能够为复杂问题提供优雅的解决方案。我的任务是针对特定问题场景，选择合适的设计模式，并运用JAVA语言实现高效、可维护的代码。<br><br>**工具能力**:<br>1. 设计模式理解与应用：我能深入理解并应用诸如单例模式、工厂模式、观察者模式等在内的多种设计模式。<br>2. JAVA编程：我具备扎实的JAVA编程基础，能够使用JAVA语言实现设计模式，并确保代码的优化和性能。<br>3. 代码审查与重构：我能够对现有代码进行审查，识别设计上的不足，并进行重构以提升代码质量。<br><br>**要求与限制**:<br>1. 代码规范性：编写的JAVA代码必须遵循标准的编码规范，确保代码的可读性和可维护性。<br>2. 设计模式适用性：选择的设计模式必须适合问题的实际场景，避免过度设计或设计模式误用。<br>3. 性能优化：在实现设计模式时，必须考虑代码的性能，避免因设计模式的使用而造成性能瓶颈。",
    "variable_settings" : "{\"content\":[]}",
    "qa_model_id" : "",
    "rag_flows" : [ ],
    "description" : "你是一个JAVA专家，熟悉JAVA各种设计模式",
    "qa_model_setting" : "{\"frequency_penalty\":0.0,\"max_tokens\":2048,\"presence_penalty\":0.0,\"temperature\":0.3,\"top_p\":0.3}",
    "type" : 1,
    "tools" : [ ],
    "isEnable" : false,
    "data_sets" : [ ],
    "agent_uri" : null,
    "flows" : [ ],
    "model_setting" : "{\"frequency_penalty\":0.0,\"max_tokens\":2048,\"presence_penalty\":0.0,\"temperature\":0.3,\"top_p\":0.3}",
    "logo" : "",
    "knowledge_setting" : "{\"call_method\":\"auto\",\"knowledge_prompt\":\"\",\"maximum_recalls\":3,\"prompt_conf\":\"custom\",\"retrieval_method\":\"full-text\",\"similarity_min\":0.7}",
    "workflow_settings" : "{\"call_method\":\"summary\"}",
    "id" : "1945302373868744706",
    "prologue" : "",
    "mcp_servers" : null,
    "file_box" : "{\"is_open\":false}",
    "agent_work_type" : "agent_llm",
    "model_id" : "publisher:zhipu:glm-4",
    "asset_status" : "0",
    "suggest_query" : [ "" ],
    "web_uri" : null,
    "audio_settings" : "{\"audio_input\":\"false\",\"audio_output\":\"false\"}",
    "api_key" : null,
    "name" : "大话设计模式",
    "fragment_memory_settings" : "{\"auto_update\":true,\"enable\":false}"
  }
}
```
#### 响应示例
**状态码：200**
请求响应成功。
```
{
  "region" : "cn-north-5",
  "tags" : [ ],
  "properties" : {
    "instructions" : "**角色定义**:<br>作为JAVA专家，我精通JAVA编程语言及各种设计模式的应用，能够为复杂问题提供优雅的解决方案。我的任务是针对特定问题场景，选择合适的设计模式，并运用JAVA语言实现高效、可维护的代码。<br><br>**工具能力**:<br>1. 设计模式理解与应用：我能深入理解并应用诸如单例模式、工厂模式、观察者模式等在内的多种设计模式。<br>2. JAVA编程：我具备扎实的JAVA编程基础，能够使用JAVA语言实现设计模式，并确保代码的优化和性能。<br>3. 代码审查与重构：我能够对现有代码进行审查，识别设计上的不足，并进行重构以提升代码质量。<br><br>**要求与限制**:<br>1. 代码规范性：编写的JAVA代码必须遵循标准的编码规范，确保代码的可读性和可维护性。<br>2. 设计模式适用性：选择的设计模式必须适合问题的实际场景，避免过度设计或设计模式误用。<br>3. 性能优化：在实现设计模式时，必须考虑代码的性能，避免因设计模式的使用而造成性能瓶颈。",
    "variable_settings" : "{\"content\":[]}",
    "qa_model_id" : "",
    "rag_flows" : [ ],
    "description" : "你是一个JAVA专家，熟悉JAVA各种设计模式",
    "qa_model_setting" : "{\"frequency_penalty\":0.0,\"max_tokens\":2048,\"presence_penalty\":0.0,\"temperature\":0.3,\"top_p\":0.3}",
    "type" : 1,
    "tools" : [ ],
    "isEnable" : false,
    "data_sets" : [ ],
    "agent_uri" : null,
    "flows" : [ ],
    "model_setting" : "{\"frequency_penalty\":0.0,\"max_tokens\":2048,\"presence_penalty\":0.0,\"temperature\":0.3,\"top_p\":0.3}",
    "logo" : "",
    "knowledge_setting" : "{\"call_method\":\"auto\",\"knowledge_prompt\":\"\",\"maximum_recalls\":3,\"prompt_conf\":\"custom\",\"retrieval_method\":\"full-text\",\"similarity_min\":0.7}",
    "workflow_settings" : "{\"call_method\":\"summary\"}",
    "id" : "1945302373868744706",
    "prologue" : "",
    "mcp_servers" : null,
    "file_box" : "{\"is_open\":false}",
    "agent_work_type" : "agent_llm",
    "model_id" : "publisher:zhipu:glm-4",
    "asset_status" : "0",
    "suggest_query" : [ "" ],
    "web_uri" : null,
    "audio_settings" : "{\"audio_input\":\"false\",\"audio_output\":\"false\"}",
    "api_key" : null,
    "name" : "大话设计模式222",
    "fragment_memory_settings" : "{\"auto_update\":true,\"enable\":false}"
  }
}
```
**状态码：400**
缺少请求体。
```
[ {
  "error_code" : "AIAE.00001400",
  "error_msg" : "Request body is missing"
}, {
  "error_code" : "AIAE.20000400",
  "error_msg" : "AgentId can not be null"
}, {
  "error_code" : "AIAE.20002042",
  "error_msg" : "Agent已经发布过，不能修改"
}, {
  "error_code" : "AIAE.20002037",
  "error_msg" : "Agent当前工作模式类型不支持文件盒子"
}, {
  "error_code" : "AIAE.20002053",
  "error_msg" : "MCP Service超限"
}, {
  "error_code" : "AIAE.20002023",
  "error_msg" : "Agent不存在"
}, {
  "error_code" : "AIAE.20002054",
  "error_msg" : "MCP状态不合法"
} ]
```
**状态码：500**
服务器内部错误或三方服务器内部错误。
```
{
  "error_code" : "AIAE.00001500",
  "error_msg" : "Internal Server Error."
}
```
#### 状态码
| 状态码 | 描述                 |
|:---|:---|
| 200 | 请求响应成功。            |
| 400 | 缺少请求体。             |
| 500 | 服务器内部错误或三方服务器内部错误。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-appstage/ErrorCode.html)。
