forked from xiaohei/taiji-AI-PAD
6.0 KiB
6.0 KiB
删除 Agent 接口文档
本文档描述用户删除平台 Agent 和自定义 Agent 的 API 接口。
目录
通用说明
认证方式
所有接口需要 Bearer Token 认证。
请求头
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Authorization |
string | ✅ | Bearer Token,格式:Bearer <access_token> |
Content-Type |
string | ❌ | 无请求体时可省略 |
通用响应结构
成功响应 (SuccessResponse)
{
"success": true,
"data": {},
"message": "操作成功消息"
}
错误响应
{
"detail": {
"error": "错误代码",
"message": "错误描述",
"detail": "详细错误信息"
}
}
删除平台 Agent
删除用户正在运行的平台 Agent 实例,释放 Pod 配额,结算费用。
接口信息
| 项目 | 内容 |
|---|---|
| URL | DELETE /api/user/platform-agents/{agent_name} |
| Method | DELETE |
| 认证 | Bearer Token |
路径参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
agent_name |
string | ✅ | 平台 Agent 实例名称(Pod 名称) |
请求头
DELETE /api/user/platform-agents/my-agent-instance-12345678 HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
请求示例
curl -X DELETE "https://api.example.com/api/user/platform-agents/my-agent-instance-12345678" \
-H "Authorization: Bearer <your_access_token>"
响应
成功响应 (200 OK)
{
"success": true,
"message": "Agent my-agent-instance-12345678 已删除"
}
错误响应
404 Not Found - Agent 不存在
{
"detail": "Agent 不存在"
}
500 Internal Server Error - 删除 Pod 失败
{
"detail": {
"error": "agent_stop_failed",
"message": "删除失败: 无法连接到 Agent Manager",
"detail": "Connection refused"
}
}
401 Unauthorized - 未认证
{
"detail": "Not authenticated"
}
业务逻辑说明
- 验证用户身份和权限
- 查找用户拥有的指定平台 Agent
- 调用 Agent Manager 删除 Kubernetes Pod
- 结束计费记录,计算运行时长和费用
- 释放租户的 Pod 配额(
pod_used - 1) - 从数据库删除 Agent 记录
- 返回成功消息
计费说明
- 计费单位:EU(Energy Unit)
- 计算方式:1 EU = 10 秒运行时间,不足 10 秒按 1 EU 计算
- 费率:平台 Agent 固定费率 $0.10/小时
删除/删除自定义 Agent
删除用户创建的自定义 Agent,释放 CPU/内存配额,结算费用。
接口信息
| 项目 | 内容 |
|---|---|
| URL | DELETE /api/user/custom-agents/{name} |
| Method | DELETE |
| 认证 | Bearer Token |
路径参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name |
string | ✅ | 自定义 Agent 名称 |
请求头
DELETE /api/user/custom-agents/my-custom-mysql-agent HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
请求示例
curl -X DELETE "https://api.example.com/api/user/custom-agents/my-custom-mysql-agent" \
-H "Authorization: Bearer <your_access_token>"
响应
成功响应 (200 OK)
{
"success": true,
"message": "自定义 Agent my-custom-mysql-agent 已删除",
"data": {
"quotaReleased": {
"cpu": 0.5,
"memory": 1.0
}
}
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
success |
boolean | 操作是否成功 |
message |
string | 成功消息 |
data.quotaReleased.cpu |
number | 释放的 CPU 配额(核心数) |
data.quotaReleased.memory |
number | 释放的内存配额(GB) |
错误响应
404 Not Found - Agent 不存在或不属于当前用户
{
"detail": "未找到 Agent my-custom-mysql-agent 或该 Agent 不属于您"
}
500 Internal Server Error - 删除失败
{
"detail": {
"error": "delete_agent_failed",
"message": "删除失败: Agent Manager 服务不可用",
"detail": "Connection timeout"
}
}
401 Unauthorized - 未认证
{
"detail": "Not authenticated"
}
业务逻辑说明
- 验证用户身份和权限
- 查找用户拥有的自定义 Agent 计费记录
- 结束计费记录,计算运行时长和费用
- 按资源使用量计算费用并扣除用户余额
- 释放用户的 CPU/内存配额
- 提交数据库更改
- 调用 Agent Manager 删除 Kubernetes Pod
- 返回成功消息和释放的配额信息
计费说明
- 计费单位:EU(Energy Unit)
- 计算方式:根据 CPU 核心数和内存大小,按运行时长计费
- 公式:
cost = calculate_agent_cost_by_resources(cpu_cores, memory_gb, duration_seconds)
接口对比
| 特性 | 删除平台 Agent | 删除自定义 Agent |
|---|---|---|
| API 路径 | /api/user/platform-agents/{agent_name} |
/api/user/custom-agents/{name} |
| 配额类型 | Pod 配额(pod_used) |
CPU/内存配额 |
| 计费方式 | 固定费率 $0.10/小时 | 按资源使用量计费 |
| 返回数据 | 仅消息 | 消息 + 释放的配额详情 |
错误代码一览
| 错误代码 | HTTP 状态码 | 说明 |
|---|---|---|
agent_stop_failed |
500 | 删除平台 Agent 失败 |
delete_agent_failed |
500 | 删除自定义 Agent 失败 |
| - | 404 | Agent 不存在或不属于当前用户 |
| - | 401 | 未认证或 Token 无效 |
接口定义来源
| 接口 | 文件位置 |
|---|---|
| 删除平台 Agent | services/mcp-server/app/routes/platform_agent_quota.py 第 992-1093 行 |
| 删除自定义 Agent | services/mcp-server/app/routes/user.py 第 3180-3286 行 |
文档生成时间:2026-01-14