mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-02-28 13:38:10 +08:00
feat: 添加 4 个全局技能到 builtin 通道
- 新增 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>
This commit is contained in:
243
skills/delete-agent/SKILL.md
Normal file
243
skills/delete-agent/SKILL.md
Normal file
@@ -0,0 +1,243 @@
|
||||
---
|
||||
name: delete-agent
|
||||
description: 安全删除指定的智能体及其关联数据。删除前会验证智能体状态,支持可选地删除所有会话历史。Use when 用户需要删除不再使用的智能体。
|
||||
type: meta
|
||||
risk_level: high
|
||||
status: enabled
|
||||
disable-model-invocation: true
|
||||
metadata:
|
||||
author: desirecore
|
||||
version: "1.0.0"
|
||||
updated_at: "2026-02-17"
|
||||
---
|
||||
|
||||
# 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'`
|
||||
|
||||
**请求示例**:
|
||||
```bash
|
||||
curl -X DELETE "http://127.0.0.1:<agentServicePort>/api/agents/legal-assistant?deleteRuns=true"
|
||||
```
|
||||
|
||||
### 阶段 6:返回操作结果
|
||||
|
||||
**成功响应处理**:
|
||||
```json
|
||||
{
|
||||
"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` 参数如何都会被删除:
|
||||
|
||||
1. **AgentFS 目录**:`~/.desirecore/agents/{agentId}/`
|
||||
- agent.json(入口配置)
|
||||
- persona.md(人格定义)
|
||||
- principles.md(行为原则)
|
||||
- skills/(技能目录)
|
||||
- tools/(工具目录)
|
||||
- memory/(记忆目录)
|
||||
- heartbeat/(心跳配置)
|
||||
|
||||
2. **用户偏好数据**:`~/.desirecore/users/{userId}/agents/{agentId}/`
|
||||
- 工作目录配置
|
||||
- 用户特定设置
|
||||
|
||||
3. **内存状态**
|
||||
- 调度定时器(全部停止)
|
||||
- 队列中的请求(全部取消)
|
||||
- 消息订阅(全部取消)
|
||||
- MCP 连接(全部关闭)
|
||||
|
||||
4. **注册表条目**:从 AgentRegistry 中注销
|
||||
|
||||
### 可选删除的数据
|
||||
|
||||
仅当 `deleteRuns=true` 时删除:
|
||||
|
||||
- **会话历史**:`~/.desirecore/runs/` 中该智能体的所有记录
|
||||
- **话题索引**:相关话题的索引和元数据
|
||||
|
||||
### 保留的数据
|
||||
|
||||
以下数据不会被删除:
|
||||
|
||||
- 其他智能体的数据
|
||||
- 用户配置文件
|
||||
- 全局设置
|
||||
- 市场缓存数据
|
||||
|
||||
## 权限要求
|
||||
|
||||
- 需要调用 `fetch_api` 工具访问删除 API
|
||||
- 删除操作需要用户显式确认(高风险操作)
|
||||
|
||||
## 依赖
|
||||
|
||||
- Agent Service HTTP API
|
||||
- Agent Registry 状态查询
|
||||
Reference in New Issue
Block a user