mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-02-28 14:38:11 +08:00
- 新增 builtin-skills.json 清单 - 添加 create-agent / delete-agent / discover-agent / update-agent SKILL.md - 添加 _protected-paths.yaml 共享配置 - 与捆绑源版本一致,启用 Phase 2 热更新通道 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
7.1 KiB
7.1 KiB
name, description, type, risk_level, status, disable-model-invocation, metadata
| name | description | type | risk_level | status | disable-model-invocation | metadata | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| delete-agent | 安全删除指定的智能体及其关联数据。删除前会验证智能体状态,支持可选地删除所有会话历史。Use when 用户需要删除不再使用的智能体。 | meta | high | enabled | true |
|
delete-agent 技能
L0:一句话摘要
安全删除指定的智能体及其关联数据,包括文件系统、内存状态和可选的会话历史。
L1:概述与使用场景
能力描述
delete-agent 是一个元技能(Meta-Skill),赋予 DesireCore 安全删除其他智能体的能力。它会执行完整的前置检查、状态验证,并清理所有关联数据。
使用场景
- 用户想要清理不再使用的智能体
- 删除测试或实验性质的临时智能体
- 释放存储空间,删除旧智能体及其历史记录
- 用户明确要求"删除"、"移除"某个智能体
核心价值
- 安全性:多重检查确保不会误删活跃智能体
- 完整性:清理文件系统、内存状态、消息订阅等所有关联数据
- 可恢复性:默认保留会话历史,可选择是否删除
L2:详细规范
执行流程
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 列出可选 │ ──→ │ 确认意图 │ ──→ │ 询问选项 │
│ 智能体 │ │ 与目标 │ │ (删除历史?) │
└──────────────┘ └──────────────┘ └──────────────┘
│
↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 返回结果 │ ←── │ 执行删除 │ ←── │ 最终确认 │
│ 与回执 │ │ API 调用 │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
阶段 1:列出可删除的智能体
触发条件:用户表达删除意图但未指定具体智能体
操作:
- 调用
GET /api/agents获取所有智能体列表 - 筛选出状态为
offline或error的智能体(可安全删除) - 标注出
online/busy/recovery状态的智能体(需先停止)
输出示例:
可删除的智能体:
1. 法律顾问助手 (legal-assistant) - 状态: offline
2. 测试机器人 (test-bot) - 状态: offline
当前活跃的智能体(需先停止才能删除):
- 数据分析师 (data-analyst) - 状态: online
阶段 2:确认用户意图与目标
确认要点:
- 用户指定的智能体名称/ID
- 明确告知删除操作不可恢复
- 展示智能体基本信息供用户确认
对话示例:
您要删除智能体 "法律顾问助手" (legal-assistant)。
⚠️ 警告:此操作不可恢复,该智能体的所有配置、技能、工具将被永久删除。
确认删除?(是/否)
阶段 3:询问删除选项
询问内容:
是否同时删除该智能体的所有会话历史?
- 是:删除智能体及其所有对话记录
- 否:保留会话历史,仅删除智能体本身
默认选项:否(保留历史)
参数映射:
- 用户选择"是" →
deleteRuns=true - 用户选择"否" →
deleteRuns=false(默认)
阶段 4:最终确认
确认摘要:
请确认删除操作:
- 目标智能体:法律顾问助手 (legal-assistant)
- 删除范围:智能体 + 会话历史(如用户选择)
- 风险等级:高(不可恢复)
确认执行删除?(是/否)
阶段 5:执行删除 API 调用
API 端点:DELETE /api/agents/{agentId}
查询参数:
deleteRuns:'true'或'false'
请求示例:
curl -X DELETE "http://127.0.0.1:<agentServicePort>/api/agents/legal-assistant?deleteRuns=true"
阶段 6:返回操作结果
成功响应处理:
{
"deleted": true,
"cleanedPaths": [
"/Users/xxx/.desirecore/agents/legal-assistant",
"/Users/xxx/.desirecore/users/xxx/agents/legal-assistant"
],
"deletedRunsCount": 5,
"memoryCleaned": {
"scheduler": true,
"queue": 0,
"messaging": 3,
"mcp": true
}
}
结果报告模板:
✅ 智能体 "法律顾问助手" 已成功删除
清理详情:
- 文件系统:已删除 2 个目录
- 调度器:已停止所有定时任务
- 消息订阅:已取消 3 个订阅
- MCP 连接:已关闭
- 会话历史:已删除 5 条记录
前置检查
智能体状态验证
在调用删除 API 前,系统会自动检查:
| 状态 | 是否可删除 | 处理方式 |
|---|---|---|
offline |
✅ 是 | 直接删除 |
error |
✅ 是 | 直接删除 |
online |
❌ 否 | 返回 409 错误,提示先停止 |
busy |
❌ 否 | 返回 409 错误,提示等待完成 |
recovery |
❌ 否 | 返回 409 错误,提示等待恢复 |
API 返回 409 时的处理:
无法删除智能体 "xxx":当前处于 online 状态。
请先停止该智能体,或等待其完成任务后再删除。
停止命令:...
错误处理
| 错误码 | 场景 | 处理方式 |
|---|---|---|
| 400 | Agent ID 格式无效 | 提示用户检查智能体名称 |
| 404 | 智能体不存在 | 告知用户智能体已被删除或 ID 错误 |
| 409 | 智能体处于活跃状态 | 提示先停止智能体或等待任务完成 |
| 500 | 服务器内部错误 | 记录错误,提示用户稍后再试 |
删除范围说明
始终删除的数据
以下数据无论 deleteRuns 参数如何都会被删除:
-
AgentFS 目录:
~/.desirecore/agents/{agentId}/- agent.json(入口配置)
- persona.md(人格定义)
- principles.md(行为原则)
- skills/(技能目录)
- tools/(工具目录)
- memory/(记忆目录)
- heartbeat/(心跳配置)
-
用户偏好数据:
~/.desirecore/users/{userId}/agents/{agentId}/- 工作目录配置
- 用户特定设置
-
内存状态
- 调度定时器(全部停止)
- 队列中的请求(全部取消)
- 消息订阅(全部取消)
- MCP 连接(全部关闭)
-
注册表条目:从 AgentRegistry 中注销
可选删除的数据
仅当 deleteRuns=true 时删除:
- 会话历史:
~/.desirecore/runs/中该智能体的所有记录 - 话题索引:相关话题的索引和元数据
保留的数据
以下数据不会被删除:
- 其他智能体的数据
- 用户配置文件
- 全局设置
- 市场缓存数据
权限要求
- 需要调用
fetch_api工具访问删除 API - 删除操作需要用户显式确认(高风险操作)
依赖
- Agent Service HTTP API
- Agent Registry 状态查询