mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-07-23 06:03:45 +08:00
## 摘要 / Summary ### 中文 主仓库 desirecore#1225 新增 `ManageAgent` 内置工具后,智能体 CRUD 四技能从"调本机 HTTP API/curl"改写为调用该工具(实例鉴权上线后 Agent 直接访问本机 API 会 401): - **create-agent 2.5.0**:`POST /api/agents` → `ManageAgent(action='create', ...)`;补充保留标识(core/desirecore)拒创、config 仅允许 llm 白名单的错误处理 - **delete-agent 2.5.0**:`DELETE /api/agents/:id` → `action='delete'`(工具层强制用户确认);错误处理改为工具拒绝语义(核心智能体/自删/活跃状态);补团队级联说明 - **discover-agent 2.6.0**:`GET /api/agents(/:id)` → `action='list'/'get'` - **update-agent 3.1.0**:结构化字段(name/description/llm/persona/principles)改经 `action='update'`(白名单+schema 校验+字段级合并语义),自由格式文件仍 Read/Write 四技能声明 `market.required_client_version: 10.0.90`,老客户端在市场端被门控禁装。中英双语正文同步改写,i18n source_hash 已重算(validate-i18n.py 通过);manifest 1.2.10。 ### English After desirecore#1225 shipped the `ManageAgent` builtin tool, the four agent-CRUD skills are rewritten from local-HTTP-API/curl instructions to tool calls (direct local API access now returns 401 under instance auth). Each skill declares `market.required_client_version: 10.0.90` so older clients are gated from installing. Both locales are rewritten in sync and i18n source hashes recomputed (validate-i18n.py passes); manifest bumped to 1.2.10. 主仓库回填:合并后将在 desirecore 主仓库执行 `npm run sync-market` 生成新的 defaults/market.zip 并单独提 PR。
8.1 KiB
8.1 KiB
delete-agent 技能
L0:一句话摘要
安全删除指定的智能体及其关联数据,包括文件系统、内存状态和可选的会话历史。
L1:概述与使用场景
能力描述
delete-agent 是一个元技能(Meta-Skill),赋予 DesireCore 安全删除其他智能体的能力。它通过进程内内置工具 ManageAgent 执行完整的前置检查、状态验证,并清理所有关联数据。
使用场景
- 用户想要清理不再使用的智能体
- 删除测试或实验性质的临时智能体
- 释放存储空间,删除旧智能体及其历史记录
- 用户明确要求"删除"、"移除"某个智能体
核心价值
- 安全性:工具层多重拒绝规则确保不会误删核心智能体、调用方自身或活跃智能体
- 完整性:清理文件系统、内存状态、消息订阅等所有关联数据,并处理团队级联
- 可恢复性:默认保留会话历史,可选择是否删除
L2:详细规范
执行流程
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 列出可选 │ ──→ │ 确认意图 │ ──→ │ 询问选项 │
│ 智能体 │ │ 与目标 │ │ (删除历史?) │
└──────────────┘ └──────────────┘ └──────────────┘
│
↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 返回结果 │ ←── │ 执行删除 │ ←── │ 告知会弹确认 │
│ 与回执 │ │ ManageAgent │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
阶段 1:列出可删除的智能体
触发条件:用户表达删除意图但未指定具体智能体
操作:
- 调用
ManageAgent(action='list')获取所有智能体列表 - 筛选出状态为
offline或error的智能体(可安全删除) - 标注出
online/busy/recovery状态的智能体(需先停止,否则会被工具拒绝) - 如需查看某个智能体的详细信息,调用
ManageAgent(action='get', id='<agent-id>')
输出示例:
可删除的智能体:
1. 法律顾问助手 (legal-assistant) - 状态: offline
2. 测试机器人 (test-bot) - 状态: offline
当前活跃的智能体(需先停止才能删除):
- 数据分析师 (data-analyst) - 状态: online
阶段 2:确认用户意图与目标
确认要点:
- 用户指定的智能体名称/ID
- 明确告知删除操作不可恢复
- 展示智能体基本信息供用户确认
对话示例:
您要删除智能体 "法律顾问助手" (legal-assistant)。
⚠️ 警告:此操作不可恢复,该智能体的所有配置、技能、工具将被永久删除。
确认删除?(是/否)
阶段 3:询问删除选项
询问内容:
是否同时删除该智能体的所有会话历史?
- 是:删除智能体及其所有对话记录
- 否:保留会话历史,仅删除智能体本身
默认选项:否(保留历史)
参数映射:
- 用户选择"是" →
deleteRuns=true - 用户选择"否" →
deleteRuns=false(默认,可省略)
阶段 4:告知工具级确认
ManageAgent 的 delete 动作在工具层始终触发用户确认弹窗,无需在技能层再重复一遍二次确认话术。但在调用前应先告知用户:
即将删除智能体 "法律顾问助手" (legal-assistant),删除范围为智能体 + 会话历史(如用户选择)。
系统会弹出确认窗口,请在弹窗中确认执行。
阶段 5:执行删除(ManageAgent 工具)
工具调用:
ManageAgent(action='delete', id='legal-assistant', deleteRuns=true)
参数:
id:目标智能体 ID(必填)deleteRuns:true一并删除全部会话历史;false(默认)保留历史,可省略
工具会在执行前弹出用户确认;确认后完成删除,包含团队级联处理:目标是组长的团队自动解散,是成员的自动移除。
阶段 6:返回操作结果
成功回执处理:工具返回删除结果,包含已清理路径、删除的会话数量、内存状态清理详情等字段。据此生成报告。
结果报告模板:
✅ 智能体 "法律顾问助手" 已成功删除
清理详情:
- 文件系统:已删除 2 个目录
- 调度器:已停止所有定时任务
- 消息订阅:已取消 3 个订阅
- MCP 连接:已关闭
- 会话历史:已删除 5 条记录
- 团队级联:目标所在团队已解散/已从团队移除(如涉及)
状态验证与错误处理
删除前状态检查
在阶段 1 列出智能体时,通过 ManageAgent(action='list') 返回的状态筛选:
| 状态 | 可否删除 | 阶段 1 展示方式 |
|---|---|---|
offline / error |
✅ 可删除 | 列入"可删除"列表 |
online / busy / recovery |
❌ 需先停止 | 标注"需先停止",不进入后续流程 |
活跃状态(online/busy/recovery)的智能体会被
ManageAgent的 delete 动作直接拒绝。应提示用户在 UI 中手动停止该智能体,或等待其完成当前任务后再删除。
工具返回的错误语义
ManageAgent(action='delete', ...) 在以下情形会返回明确错误,应据此向用户解释并给出下一步建议:
| 拒绝场景 | 触发条件 | 处理方式 |
|---|---|---|
| 核心智能体拒绝 | 目标为核心智能体(desirecore/core/绑定 UUID) | 告知用户核心智能体不可删除 |
| 自删拒绝 | 目标为调用方自身 | 告知用户智能体不能删除自己 |
| 活跃状态拒绝 | 目标处于 online/busy/recovery 状态 |
提示用户先在 UI 中停止该智能体 |
| 不存在 | 目标 ID 对应的智能体不存在 | 告知用户智能体已被删除或 ID 有误 |
删除范围说明
| 类别 | 删除内容 | 条件 |
|---|---|---|
| 始终删除 | AgentFS 目录(配置、人格、规则、技能、工具、记忆)、用户偏好数据、内存状态(调度器、队列、消息订阅、MCP 连接)、注册表条目 | 无条件 |
| 可选删除 | 会话历史、话题索引 | deleteRuns=true |
| 团队级联 | 目标是组长 → 解散其团队;目标是成员 → 从团队移除 | 自动 |
| 保留不删 | 其他智能体数据、用户配置、全局设置、市场缓存 | — |
权限要求
- 通过进程内内置工具
ManageAgent完成智能体的列出、查询与删除 - delete 动作为高风险操作,工具层会强制弹出用户确认
依赖
- 进程内内置工具
ManageAgent(action='list' | 'get' | 'delete')