跳转到主要内容
PUT /v1/agents/{agent_id} 更新指定 Agent 的配置。使用乐观并发控制(OCC),需要在请求体中提供当前 version 值。

请求头

头部必选说明
AuthorizationBearer <PAT>
Content-Typeapplication/json

路径参数

参数类型必选说明
agent_idstringAgent 唯一标识

请求体

字段类型必选说明
versioninteger当前版本号(OCC 校验),必须与服务端当前版本一致
namestringAgent 名称,长度 1-256 字符
modelstring模型标识。可通过 列出模型 查询可用值
systemstring系统提示词,最长 100000 字符
descriptionstringAgent 描述,最长 2048 字符
toolsAgent tool 数组替换已保存的工具配置列表,最多 128 个
mcp_serversMCP server 数组替换已保存的 MCP server 列表,最多 20 个。tools 中的 mcp_toolset 必须引用此列表里的名称
skillsSkill binding 数组替换已保存的 Skill 绑定列表,最多 20 个
metadataMetadata 对象Metadata 补丁;字段会合并到已保存的 metadata,value 必须是 string

示例请求

curl -X PUT "https://api.qoder.com/api/v1/cloud/agents/agent_019eXXXX..." \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "doc-test-agent-updated",
    "model": "ultimate",
    "system": "你是更新后的文档测试助手",
    "description": "用于 API 文档测试",
    "version": 1
  }'

示例响应

HTTP 200 OK
{
  "type": "agent",
  "id": "agent_019eXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "name": "doc-test-agent-updated",
  "description": "用于 API 文档测试",
  "model": "ultimate",
  "system": "你是更新后的文档测试助手",
  "tools": [],
  "mcp_servers": [],
  "skills": [],
  "metadata": {},
  "version": 2,
  "archived": false,
  "archived_at": null,
  "created_at": "2026-05-18T15:26:39.61669Z",
  "updated_at": "2026-05-18T15:27:07.967138Z"
}

响应字段

字段类型说明
typestring固定值 "agent"
idstringAgent 唯一标识,前缀为 agent_
namestringAgent 名称
descriptionstringAgent 描述
modelstring模型标识
systemstring系统提示词
toolsAgent tool 数组工具配置列表
mcp_serversMCP server 数组MCP 服务器配置
skillsSkill binding 数组Skill 绑定列表
metadataMetadata 对象自定义元数据
versioninteger更新后的新版本号
archivedboolean是否已归档
archived_atstring|null归档时间(ISO 8601),未归档时为 null
created_atstring创建时间(ISO 8601)
updated_atstring最后更新时间(ISO 8601)

乐观并发控制(OCC)

更新操作使用版本号进行乐观锁校验:
  1. 客户端先通过 GET 获取 Agent 当前的 version
  2. 更新时将该 version 放入请求体
  3. 服务端校验 version 是否与当前值一致
  4. 一致则更新成功,version 自动 +1
  5. 不一致则返回 409 Conflict
这确保了多个客户端并发修改同一 Agent 时不会互相覆盖。

错误码

HTTPtype触发条件
400invalid_request_error请求体格式错误或字段值不合法
400invalid_request_errortools 数量超过 128 个上限
400invalid_request_errormcp_servers 数量超过 20 个上限
400invalid_request_errorskills 数量超过 20 个上限
401authentication_errorPAT 无效或过期
403permission_error无权限更新此 Agent
404not_found_error指定 ID 的 Agent 不存在
409conflict_errorversion 不匹配,存在并发冲突
版本冲突(409)错误响应示例:
{
  "type": "error",
  "error": {
    "type": "conflict_error",
    "message": "Version conflict. Expected version 99, got 1."
  }
}

注意事项

  • version 字段是必须的,不传会导致更新失败
  • 每次成功更新后 version 自动递增
  • 更新为部分更新(merge)语义:请求体中未传入的可选字段将保持原值不变,仅显式传入的字段会被更新
  • 显式传入 toolsmcp_serversskills 时,该字段的数组会整体替换为请求中的数组
  • 显式传入 metadata 时,请求中的 key 会合并到已保存的 metadata 对象
  • 可通过 列出 Agent 版本 查看历史版本

相关

定义 Agent

创建可复用、可版本化的 Agent 配置。