From b4473c190676c4914b876907d72e97c28e61c176 Mon Sep 17 00:00:00 2001 From: yi-ge Date: Tue, 24 Feb 2026 23:34:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E5=B7=B2?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E8=87=B3=E5=85=A8=E5=B1=80=E5=B1=82=E7=9A=84?= =?UTF-8?q?=204=20=E4=B8=AA=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit create-agent、update-agent、delete-agent、discover-agent 及 _protected-paths.yaml 已迁移至主仓库 defaults/global-skills/,由 syncBuiltinSkills() 捆绑源同步到 ~/.desirecore/skills/(全局层),不再随 Agent 仓库分发。 --- skills/_index.md | 71 ++----- skills/_protected-paths.yaml | 104 ----------- skills/create-agent/SKILL.md | 255 -------------------------- skills/delete-agent/SKILL.md | 246 ------------------------- skills/discover-agent/SKILL.md | 229 ----------------------- skills/update-agent/SKILL.md | 325 --------------------------------- 6 files changed, 18 insertions(+), 1212 deletions(-) delete mode 100644 skills/_protected-paths.yaml delete mode 100644 skills/create-agent/SKILL.md delete mode 100644 skills/delete-agent/SKILL.md delete mode 100644 skills/discover-agent/SKILL.md delete mode 100644 skills/update-agent/SKILL.md diff --git a/skills/_index.md b/skills/_index.md index 0af901f..eb83f5d 100644 --- a/skills/_index.md +++ b/skills/_index.md @@ -1,88 +1,53 @@ # 技能索引 — DesireCore +> create-agent、update-agent、delete-agent、discover-agent 已迁移至全局技能层(`~/.desirecore/skills/`), +> 由 `syncBuiltinSkills()` 捆绑源自动同步,不再随 Agent 仓库分发。 + ## 元技能(Meta-Skills) -元技能管理 Agent 的完整生命周期:创建、更新、删除、进化。 - | 技能 ID | 描述 | 风险 | |---------|------|------| -| [create-agent](./create-agent/SKILL.md) | 通过对话收集需求,调用 API 创建新 Agent | medium | -| [update-agent](./update-agent/SKILL.md) | 安全修改 Agent 配置、人格、规则和技能 | high | -| [delete-agent](./delete-agent/SKILL.md) | 安全删除指定的智能体及其关联数据 | high | | [self-evolve](./self-evolve/SKILL.md) | 在交互中学习,自主提出改进建议 | high | -### 元技能共享配置 - -| 配置文件 | 说明 | -|---------|------| -| [_protected-paths.yaml](./_protected-paths.yaml) | 受保护路径配置(所有元技能共享) | - ## 流程型技能(Procedural Skills) -流程型技能封装了具体业务流程,面向特定场景提供结构化执行能力。 - | 技能 ID | 描述 | 风险 | |---------|------|------| | [task-management](./task-management/SKILL.md) | 任务创建、分配、跟踪与多 Agent 编排 | low | -| [discover-agent](./discover-agent/SKILL.md) | 根据用户需求推荐最匹配的智能体 | low | ## 技能协作关系 ``` - Agent 生命周期(元技能) + Agent 级技能 +┌──────────────────────────────────────────────┐ +│ ┌─────────────┐ ┌──────────────────┐ │ +│ │ self-evolve │ │ task-management │ │ +│ │ (进化) │ │ (任务管理) │ │ +│ └─────────────┘ └──────────────────┘ │ +└──────────────────────────────────────────────┘ + + 全局技能(~/.desirecore/skills/) ┌──────────────────────────────────────────────┐ -│ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ create-agent │ │ delete-agent │ │ │ │ (创建) │ │ (删除) │ │ │ └──────┬──────┘ └─────────────┘ │ -│ │ 创建后可更新 │ +│ │ │ │ ↓ │ -│ ┌─────────────┐ ┌─────────────┐ │ -│ │ update-agent │←─│ self-evolve │ │ -│ │ (更新) │ │ (进化) │ │ -│ └─────────────┘ └─────────────┘ │ -│ │ -└──────────────────────────────────────────────┘ - - 业务流程(流程型技能) -┌──────────────────────────────────────────────┐ -│ │ -│ ┌─────────────┐ ┌──────────────────┐ │ -│ │discover-agent│─→│ task-management │ │ -│ │ (发现) │ │ (任务管理) │ │ -│ └──────┬──────┘ └──────────────────┘ │ -│ │ 无匹配时 │ -│ ↓ │ -│ ┌─────────────┐ │ -│ │ create-agent │ ← 跨层调用 │ -│ └─────────────┘ │ -│ │ +│ ┌─────────────┐ ┌──────────────┐ │ +│ │ update-agent │ │discover-agent│ │ +│ │ (更新) │ │ (发现) │ │ +│ └─────────────┘ └──────────────┘ │ └──────────────────────────────────────────────┘ ``` -**协作说明**: -- `self-evolve` 在应用进化变更时调用 `update-agent` 的能力 -- `task-management` 在未指定执行者时调用 `discover-agent` 推荐候选 -- `discover-agent` 在无匹配时建议调用 `create-agent` 创建新 Agent -- `delete-agent` 删除前通过 `GET /api/agents` 检查 Agent 状态 - ## 目录结构 ``` skills/ ├── _index.md # 本文件:技能索引 -├── _protected-paths.yaml # 受保护路径配置(元技能共享) -├── create-agent/ # 元技能:创建新 Agent -│ └── SKILL.md -├── update-agent/ # 元技能:修改 Agent 配置 -│ └── SKILL.md -├── delete-agent/ # 元技能:删除 Agent -│ └── SKILL.md ├── self-evolve/ # 元技能:自主学习与进化 │ └── SKILL.md -├── task-management/ # 流程技能:任务管理与编排 -│ └── SKILL.md -└── discover-agent/ # 流程技能:智能体发现与推荐 +└── task-management/ # 流程技能:任务管理与编排 └── SKILL.md ``` diff --git a/skills/_protected-paths.yaml b/skills/_protected-paths.yaml deleted file mode 100644 index 37b580a..0000000 --- a/skills/_protected-paths.yaml +++ /dev/null @@ -1,104 +0,0 @@ -# 受保护路径配置 -# 此配置由元技能(update-agent, delete-agent, self-evolve)共享 -# 定义了不可被自动修改的敏感路径 -# 注意:create-agent 通过 HTTP API 创建,不直接操作文件,因此不受此配置约束 - -version: 2 - -# 保护级别定义 -protection_levels: - block: - description: 完全阻断,不可通过技能修改 - requires: manual_edit - owner_only: - description: 需要 owner 角色显式确认 - requires: owner_confirmation - confirm: - description: 需要用户确认 - requires: user_confirmation - -# 受保护路径列表(AgentFS v2 扁平结构) -protected_paths: - - # ============================================ - # 核心身份(不可自动修改) - # ============================================ - - path: "persona.md" - section: "L0" - protection: block - reason: "核心身份定义,不可被对话或进化改变" - description: "L0 部分包含 Agent 的核心身份定义,是人格的根基" - - # ============================================ - # 安全红线(不可自动修改) - # ============================================ - - path: "principles.md" - section: "绝不做" - protection: block - reason: "安全边界,必须由人类显式修改" - description: "绝不做部分定义了不可逾越的安全红线" - - # ============================================ - # 权限配置(需 owner 确认) - # ============================================ - - path: "agent.json" - section: "access_control" - protection: owner_only - reason: "权限配置敏感,需 owner 审批" - description: "访问控制配置影响整个 Agent 的权限体系" - - - path: "agent.json" - section: "privacy" - protection: owner_only - reason: "隐私配置敏感,需 owner 审批" - description: "隐私配置影响数据处理和共享策略" - - # ============================================ - # 工具权限(需 owner 确认) - # ============================================ - - path: "tools/" - pattern: "**/permissions.yaml" - protection: owner_only - reason: "工具权限敏感,需 owner 审批" - description: "工具权限决定 Agent 可执行的操作范围" - - - path: "tools/" - pattern: "**/credentials.yaml" - protection: block - reason: "凭证文件不可通过技能修改" - description: "凭证文件包含敏感信息,必须手动管理" - - # ============================================ - # 用户隐私(需用户本人确认) - # ============================================ - - path: "~/.desirecore/users/*/privacy.md" - protection: owner_only - reason: "隐私设置需用户本人或 owner 修改" - description: "用户隐私边界配置" - - - path: "~/.desirecore/users/*/agents/*/relationship.md" - section: "禁区" - protection: confirm - reason: "关系禁区需用户确认" - description: "用户定义的交互禁区" - -# 验证规则 -validation: - # 在应用变更前必须检查是否触及受保护路径 - pre_change_check: true - # 触及受保护路径时的默认行为 - default_action: block_and_notify - # 是否记录所有受保护路径访问尝试 - audit_access_attempts: true - -# 例外规则(谨慎使用) -exceptions: - # 系统初始化时可以写入所有路径 - - context: system_initialization - paths: ["*"] - allowed_operations: [create] - - # owner 可以在显式确认后修改 owner_only 路径 - - context: owner_explicit_confirmation - paths: ["owner_only"] - allowed_operations: [update] diff --git a/skills/create-agent/SKILL.md b/skills/create-agent/SKILL.md deleted file mode 100644 index 04fe61b..0000000 --- a/skills/create-agent/SKILL.md +++ /dev/null @@ -1,255 +0,0 @@ ---- -name: create-agent -description: 通过多轮对话收集需求,调用 HTTP API 创建新的 AgentFS v2 智能体,支持自定义 persona 和 principles。Use when 用户要求创建新智能体、培养某领域助手、或快速基于模板生成可治理 Agent。 -version: "2.0.0" -type: meta -risk_level: medium -status: enabled -disable-model-invocation: true -requires: - tools: - - fetch_api -tags: [agent, creation, meta] -metadata: - author: desirecore - updated_at: "2026-02-21" ---- - -# create-agent 技能 - -## L0:一句话摘要 - -通过自然语言对话收集需求,调用 HTTP API 创建专业化的数字智能体。 - -## L1:概述与使用场景 - -### 能力描述 - -create-agent 是一个**元技能(Meta-Skill)**,赋予 DesireCore 创建其他 Agent 的能力。它通过多轮对话收集用户需求,生成 persona 和 principles 内容,调用 `POST /api/agents` 完成创建。 - -### 使用场景 - -- 用户想要一个专业领域的数字助手(如法律顾问、财务分析师) -- 企业需要快速部署定制化的业务 Agent -- 开发者需要基于模板快速创建 Agent 原型 - -### 核心价值 - -- **降低门槛**:无需编程知识,用对话就能创建 Agent -- **专业化**:根据领域模板生成合适的 persona 和 principles -- **可治理**:创建的仓库符合 AgentFS v2 规范,支持版本管理 - -## L2:详细规范 - -### 对话流程 - -``` -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ 意图识别 │ ──→ │ 需求收集 │ ──→ │ 内容生成 │ -└──────────────┘ └──────────────┘ └──────────────┘ - │ - ↓ -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ 回执生成 │ ←── │ API 创建 │ ←── │ 用户确认 │ -└──────────────┘ └──────────────┘ └──────────────┘ -``` - -### 阶段 1:意图识别 - -**触发条件**(任一满足): -- 用户明确说"创建一个 Agent"或"帮我做一个助手" -- 用户描述需要某领域的专业帮助,且当前 Agent 不具备该能力 -- 用户询问"能不能帮我培养一个..." - -**输出**:确认用户的创建意图,进入需求收集阶段。 - -### 阶段 2:需求收集 - -**必填信息**: - -| 字段 | 说明 | 引导问题示例 | -|------|------|------------| -| `name` | 智能体名称 | "你想给这个智能体起什么名字?" | -| `role` | 核心职责 | "它主要负责什么工作?" | -| `target_users` | 目标用户 | "谁会使用这个智能体?" | -| `domain` | 专业领域 | "它需要哪些专业知识?" | - -**选填信息**: - -| 字段 | 说明 | 默认值 | -|------|------|-------| -| `style` | 沟通风格 | 根据领域模板决定 | -| `boundaries` | 禁区/红线 | 根据领域模板决定 | -| `language` | 主要语言 | 中文 | - -**收集策略**: -- 优先通过用户的自然描述推断信息 -- 仅追问用户未提及的必填项 -- 每轮最多追问 2 个问题 - -### 阶段 3:内容生成 - -根据收集的需求,为新 Agent 生成以下内容: - -**persona.md 生成规范**: - -```markdown -# L0 — 核心身份 - -你是 {name},{一句话角色定位}。 - -# L1 — 行为风格 - -- {风格特征 1} -- {风格特征 2} -- {风格特征 3} - -# L2 — 深层动机 - -{2-3 句话描述深层价值观和驱动力} -``` - -**principles.md 生成规范**: - -```markdown -# L0 — 基础约束 - -- {安全红线 1} -- {安全红线 2} - -# L1 — 行为边界 - -- {行为规则 1} -- {行为规则 2} -- {行为规则 3} - -# L2 — 治理原则 - -{2-3 句话描述最高治理原则} -``` - -**领域匹配参考**: - -| 领域关键词 | 推荐风格 | 默认边界 | -|-----------|---------|---------| -| 法律、合同、法务 | 专业、严谨、审慎 | 不提供诉讼代理、不替代正式法律意见 | -| 财务、会计、投资 | 精确、分析性、保守 | 不提供投资建议、不处理真实交易 | -| 代码、开发、架构 | 逻辑、务实、直接 | 不直接访问生产环境、不存储凭证 | -| 通用/其他 | 友好、有帮助 | 通用安全规范 | - -### 阶段 4:用户确认 - -**展示预览**: - -``` -即将创建智能体: - -名称:法律顾问小助手 -描述:专注于合同审查和法律风险评估的数字智能体 - ---- persona.md 预览 --- -# L0 — 核心身份 -你是法律顾问小助手,专注于合同审查和法律风险评估... -[完整内容] - ---- principles.md 预览 --- -# L0 — 基础约束 -- 不提供诉讼代理 -[完整内容] ---- - -确认创建? -[确认] [修改] [取消] -``` - -### 阶段 5:调用 API 创建 - -**API 端点**:`POST /api/agents` - -**请求体**: - -```json -{ - "name": "法律顾问小助手", - "description": "专注于合同审查和法律风险评估的数字智能体", - "persona": "# L0 — 核心身份\n\n你是法律顾问小助手...", - "principles": "# L0 — 基础约束\n\n- 不提供诉讼代理..." -} -``` - -**可选**:如需指定 slug ID,可根据 name 生成合理的 kebab-case slug(如 "法律顾问" → "legal-advisor"),在请求体中附带 `"id": ""`。不指定时系统会自动从 name 生成。 - -**成功响应** (`201 Created`): - -```json -{ - "agentId": "fa-lv-gu-wen-xiao-zhu-shou" -} -``` - -**验证创建结果**:创建成功后可调用 `GET /api/agents/{agentId}` 确认(agentId 为 slug)。 - -### 阶段 6:回执生成 - -**回执报告**: - -``` -✅ 智能体 "法律顾问小助手" 创建成功 - -详情: -- Agent Slug: fa-lv-gu-wen-xiao-zhu-shou -- 仓库路径: ~/.desirecore/agents/fa-lv-gu-wen-xiao-zhu-shou -- 已生成文件: agent.json, persona.md, principles.md -- AgentFS 规范: v2(扁平结构) - -下一步建议: -- 为它添加技能(通过 update-agent 技能) -- 直接开始对话 -``` - -### AgentFS 知识(创建后的仓库结构) - -DesireCore 应理解创建后的 Agent 仓库遵循 AgentFS v2 扁平结构: - -``` -/ -├── agent.json # 入口配置(name, version, description, engine, skills, tools, mcp_servers) -├── persona.md # 人格定义(L0 核心身份 / L1 行为风格 / L2 深层动机) -├── principles.md # 行为原则(L0 基础约束 / L1 行为边界 / L2 治理原则) -├── memory/ # 记忆目录(timeline/topics/pinned/product/lessons) -│ └── _index.md -├── skills/ # 技能目录 -│ └── _index.md -├── tools/ # 工具目录 -│ └── _index.md -└── heartbeat/ # 心跳配置 - └── HEARTBEAT.md -``` - -**关键文件职责**: - -| 文件 | 职责 | AI Agent 关注点 | -|------|------|----------------| -| `agent.json` | Agent 元数据与运行时配置 | engine 字段决定使用哪个推理引擎 | -| `persona.md` | 人格与沟通风格定义 | L0 不可自动修改(受保护路径) | -| `principles.md` | 行为规则与安全红线 | "绝不做" section 不可自动修改 | -| `memory/` | 对话记忆、知识积累 | 随交互自动积累 | -| `skills/` | Agent 拥有的技能 | 可通过 update-agent 添加 | -| `tools/` | Agent 可用的工具 | MCP Server、脚本工具等 | - -### 错误处理 - -| 错误码 | 场景 | 处理方式 | -|--------|------|---------| -| 400 | 缺少 name 或 ID 格式无效 | 提示用户检查输入 | -| 409 | Agent ID 已存在 | 建议使用其他名称 | -| 500 | 服务器内部错误 | 提示用户稍后再试 | - -### 权限要求 - -- 需要调用 `fetch_api` 工具访问创建 API -- 创建操作需要用户确认 - -### 依赖 - -- Agent Service HTTP API(`POST /api/agents`) diff --git a/skills/delete-agent/SKILL.md b/skills/delete-agent/SKILL.md deleted file mode 100644 index 7e3ed7b..0000000 --- a/skills/delete-agent/SKILL.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -name: delete-agent -description: 安全删除指定的智能体及其关联数据。删除前会验证智能体状态,支持可选地删除所有会话历史。Use when 用户需要删除不再使用的智能体。 -type: meta -risk_level: high -status: enabled -disable-model-invocation: true -requires: - tools: - - fetch_api -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:/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 状态查询 diff --git a/skills/discover-agent/SKILL.md b/skills/discover-agent/SKILL.md deleted file mode 100644 index fb7d05d..0000000 --- a/skills/discover-agent/SKILL.md +++ /dev/null @@ -1,229 +0,0 @@ ---- -name: discover-agent -description: 根据用户需求推荐最匹配的智能体,展示候选列表并引导选择。Use when 用户描述需求但不确定该找哪个智能体帮忙,或想浏览可用的智能体。 -version: "1.0.0" -type: procedural -risk_level: low -status: enabled -disable-model-invocation: false -requires: - tools: - - fetch_api -tags: [agent, discovery, recommendation] -metadata: - author: desirecore - updated_at: "2026-02-17" ---- - -# discover-agent 技能 - -## L0:一句话摘要 - -根据用户需求描述,在已注册的智能体中匹配并推荐最合适的 Agent。 - -## L1:概述与使用场景 - -### 能力描述 - -discover-agent 是一个**流程型技能(Procedural Skill)**,赋予 DesireCore 为用户发现和推荐合适智能体的能力。它通过理解用户需求描述,在已注册的 Agent 列表中进行多维度匹配,展示候选列表供用户选择。 - -### 使用场景 - -- 用户描述了一个需求,但不知道该找哪个智能体帮忙 -- 用户想浏览当前可用的智能体及其能力 -- 用户需要为特定任务找到最合适的专业助手 -- 新用户初次使用系统,需要了解有哪些智能体可用 - -### 核心价值 - -- **降低门槛**:用户无需记住每个智能体的名称和能力 -- **精准匹配**:基于需求语义进行智能推荐,而非简单关键词搜索 -- **流畅衔接**:无匹配时自动建议创建新 Agent(衔接 create-agent 技能) - -## L2:详细规范 - -### 执行流程 - -``` -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ 需求理解 │ ──→ │ Agent 检索 │ ──→ │ 匹配评分 │ -└──────────────┘ └──────────────┘ └──────────────┘ - │ - ↓ -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ 引导选择 │ ←── │ 结果展示 │ ←── │ 候选排序 │ -└──────────────┘ └──────────────┘ └──────────────┘ -``` - -### 阶段 1:需求理解 - -**触发条件**(任一满足): -- 用户说"帮我找一个..."、"有没有..."、"谁能帮我..." -- 用户描述了一个任务但未指定具体智能体 -- 用户说"有哪些智能体"、"看看都有谁" -- 系统检测到用户需求与当前 Agent 能力不匹配 - -**需求解析**: - -从用户描述中提取以下维度: - -| 维度 | 说明 | 示例 | -|------|------|------| -| `domain` | 专业领域 | 法律、财务、技术、教育 | -| `task_type` | 任务类型 | 咨询、审查、分析、创作 | -| `keywords` | 关键词 | 合同、报表、代码、论文 | -| `urgency` | 紧急程度 | 日常 / 紧急 | - -### 阶段 2:Agent 检索 - -**数据源**:调用 `GET /api/agents` 获取所有已注册的智能体列表。 - -**API 调用**: -```bash -GET /api/agents -``` - -**返回数据中的关键字段**: -- `id` — 智能体唯一标识 -- `name` — 智能体名称 -- `description` — 智能体描述 -- `skills` — 技能列表 -- `status` — 当前状态(online/offline/busy) - -**过滤规则**: -- 默认只展示 `status: online` 或 `status: offline` 的智能体 -- 排除系统内部智能体(如 DesireCore 自身,除非用户显式要求) - -### 阶段 3:匹配评分 - -**匹配维度与权重**: - -| 维度 | 权重 | 说明 | -|------|------|------| -| 描述相似度 | 40% | 智能体 description 与用户需求的语义相似度 | -| 技能匹配 | 30% | 智能体拥有的 skills 与任务类型的关联度 | -| 领域匹配 | 20% | 智能体专业领域与用户需求领域的匹配度 | -| 可用性 | 10% | 智能体当前状态(online 优先于 offline) | - -**评分规则**: -- 每个维度 0-100 分 -- 加权计算综合得分 -- 综合得分 >= 60 为"推荐" -- 综合得分 40-59 为"可能相关" -- 综合得分 < 40 不展示 - -### 阶段 4:候选排序 - -**排序规则**: -1. 按综合得分降序排列 -2. 同分时 online 状态优先 -3. 最多展示 5 个候选 - -### 阶段 5:结果展示 - -**有匹配结果时**: - -``` -根据你的需求,我推荐以下智能体: - -┌─────────────────────────────────────────────────────┐ -│ 1. 法律顾问助手 匹配度: 92% │ -│ 专注合同审查和法律风险评估 │ -│ 技能:合同审查、风险评估、法律研究 │ -│ 状态:在线 │ -├─────────────────────────────────────────────────────┤ -│ 2. AI 文书助手 匹配度: 71% │ -│ 专业文书撰写和格式优化 │ -│ 技能:文书撰写、格式排版、合规检查 │ -│ 状态:在线 │ -├─────────────────────────────────────────────────────┤ -│ 3. 数据分析师 匹配度: 45% │ -│ 数据分析和可视化报告 │ -│ 技能:数据分析、报表生成、趋势预测 │ -│ 状态:离线 │ -└─────────────────────────────────────────────────────┘ - -请选择一个智能体,或告诉我更具体的需求。 -``` - -**无匹配结果时**: - -``` -目前没有找到完全匹配你需求的智能体。 - -你可以: -1. 用更具体的描述再试一次 -2. 创建一个新的专业智能体(我可以帮你) -3. 浏览所有可用的智能体 - -你想怎么做? -``` - -**浏览模式**(用户要求查看所有): - -``` -当前可用的智能体: - -在线: - - 法律顾问助手 — 合同审查和法律风险评估 - - AI 文书助手 — 专业文书撰写和格式优化 - -离线: - - 数据分析师 — 数据分析和可视化报告 - - 翻译助手 — 多语言翻译和本地化 - -共 4 个智能体。需要了解某个智能体的详细信息吗? -``` - -### 阶段 6:引导选择 - -**用户选择后的操作**: - -| 用户选择 | 后续操作 | -|---------|---------| -| 选择了某个智能体 | 切换到该智能体的对话,传递用户需求上下文 | -| 要求了解更多 | 展示该智能体的详细信息(persona、skills、最近活跃时间) | -| 不满意候选 | 引导用户细化需求或建议创建新 Agent | -| 选择"创建新的" | 调用 create-agent 技能,传递已收集的需求信息 | - -**切换上下文传递**: - -```yaml -context_handoff: - source_agent: desirecore - target_agent: legal-assistant - user_intent: "帮我审查这份合同的风险点" - discovery_metadata: - match_score: 92 - match_dimensions: - description: 95 - skills: 90 - domain: 88 - availability: 100 -``` - -### 与其他技能的协作 - -| 协作技能 | 协作方式 | -|---------|---------| -| create-agent | 无匹配时建议创建新 Agent,传递用户需求作为初始信息 | -| task-management | 匹配成功后可自动创建任务并分配给目标 Agent | - -### 错误处理 - -| 错误场景 | 处理方式 | -|---------|---------| -| API 调用失败 | 提示网络错误,建议稍后重试 | -| Agent 列表为空 | 引导用户创建第一个智能体 | -| 用户描述过于模糊 | 追问具体需求,提供领域选项引导 | -| 推荐的 Agent 状态异常 | 标注状态,建议选择其他在线 Agent | - -### 权限要求 - -- 需要调用 `fetch_api` 工具访问 Agent 列表 API -- 只读操作,无风险 - -### 依赖 - -- Agent Service HTTP API(`GET /api/agents`) -- Agent Registry 状态查询 diff --git a/skills/update-agent/SKILL.md b/skills/update-agent/SKILL.md deleted file mode 100644 index 96c1d43..0000000 --- a/skills/update-agent/SKILL.md +++ /dev/null @@ -1,325 +0,0 @@ ---- -name: update-agent -description: 安全更新现有智能体的配置、人格、原则、技能与记忆,输出可审阅 diff 并在确认后应用与提交。Use when 用户要求修改 Agent 行为、安装/卸载技能、调整配置、回滚变更或修订规则。 -version: "1.1.0" -type: meta -risk_level: high -status: enabled -disable-model-invocation: true -requires: - tools: - - read_file - - write_file - - edit_file - - list_directory - - execute_command - optional_tools: - - search_files - - grep -tags: [agent, update, meta] -metadata: - author: desirecore - updated_at: "2026-02-17" ---- - -# update-agent 技能 - -## L0:一句话摘要 - -通过自然语言对话,安全地修改 Agent 的配置、人格、规则和技能。 - -## L1:概述与使用场景 - -### 能力描述 - -update-agent 是一个**元技能(Meta-Skill)**,允许用户通过对话方式修改 Agent 的各项配置。所有修改都会生成可审阅的 diff 补丁,经用户确认后才会应用,并支持版本回滚。 - -### 使用场景 - -- 用户想要调整 Agent 的沟通风格("说话再正式一点") -- 需要添加新的行为规则("以后遇到敏感话题要先提醒我") -- 安装或卸载技能包("学会写合同吧") -- 批量更新多项配置("全面升级一下你的能力") - -### 核心价值 - -- **安全可控**:所有变更需用户确认,支持回滚 -- **透明可见**:变更以 diff 形式展示,清晰明了 -- **版本管理**:通过 Git 管理版本,可追溯历史 - -## L2:详细规范 - -### 支持的更新类型 - -| 更新类型 | 目标文件 | 风险等级 | 示例 | -|---------|---------|---------|------| -| Persona 更新 | `persona.md` | 中 | 修改沟通风格、价值观 | -| Principles 更新 | `principles.md` | 高 | 添加/修改行为规则 | -| Skills 安装 | `skills/` | 中 | 添加新技能包 | -| Skills 卸载 | `skills/` | 低 | 移除技能包 | -| Memory 更新 | `memory/` | 低 | 添加知识条目 | -| Tools 配置 | `tools/` | 高 | 修改工具权限 | - -### 对话流程 - -``` -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ 意图识别 │ ──→ │ 变更分析 │ ──→ │ Diff 生成 │ -└──────────────┘ └──────────────┘ └──────────────┘ - │ - ↓ -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ 回执生成 │ ←── │ 变更应用 │ ←── │ 用户确认 │ -└──────────────┘ └──────────────┘ └──────────────┘ -``` - -### 阶段 1:意图识别 - -**触发条件**(任一满足): -- 用户说"修改你的..."、"更新你的..."、"调整一下..." -- 用户说"你以后要..."、"记住这个规则..." -- 用户说"安装/卸载这个技能..." -- 用户描述对当前行为的不满并期望改变 - -**输出**:识别更新类型和目标范围。 - -### 阶段 2:变更分析 - -**分析维度**: - -| 维度 | 说明 | -|------|------| -| 影响范围 | 影响哪些文件、哪些行为 | -| 风险等级 | 低/中/高(见风险分级表) | -| 依赖检查 | 是否影响其他配置 | -| 冲突检测 | 是否与现有规则冲突 | - -**风险分级表**: - -| 风险等级 | 条件 | 确认要求 | -|---------|------|---------| -| 低 | 仅影响非核心配置(如记忆条目) | 简单确认 | -| 中 | 影响 persona 或普通 principles | 展示 diff 后确认 | -| 高 | 影响核心 principles 或工具权限 | 详细说明 + diff + 确认 | -| 受保护 | 触及受保护路径 | 阻断,需 owner 权限 | - -### 阶段 3:Diff 生成 - -**Diff 格式示例**: - -```diff -# persona.md - -## 沟通风格 - -- 友好、随和、轻松幽默 -+ 专业、严谨、适度幽默 - -## 决策偏好 - - 保持不变... -``` - -**Diff 元数据**: - -```yaml -diff_metadata: - files_affected: 1 - lines_added: 1 - lines_removed: 1 - risk_level: medium - reversible: true - estimated_impact: "沟通风格会变得更正式" -``` - -### 阶段 4:用户确认 - -**确认界面**: - -``` -变更预览 - -影响文件: persona.md -风险等级: 中 -影响说明: 沟通风格会从"友好随和"变为"专业严谨" - ---- 变更内容 --- -[展示 diff] ----------------- - -请确认是否应用此变更? -[应用] [取消] [修改] -``` - -**确认选项**: -- **应用**:执行变更 -- **取消**:放弃变更 -- **修改**:进入编辑模式微调 - -### 阶段 5:变更应用 - -**应用步骤**: - -1. **备份当前版本**: -```bash -git stash push -m "backup before update-agent" -``` - -2. **应用变更**: -```bash -# 写入修改后的文件 -``` - -3. **Git 提交**: -```bash -git add -git commit -m "refactor(persona): 调整沟通风格为专业严谨 - -- 修改 persona.md 中的沟通风格描述 -- 从'友好随和'调整为'专业严谨' - -Updated by: update-agent skill -Risk level: medium -User confirmed: true -" -``` - -4. **验证变更**: -```bash -# 检查文件语法 -# 验证配置完整性 -``` - -### 阶段 6:回执生成 - -**回执内容**: - -```yaml -# ~/.desirecore/runs//receipts/update-.yaml -receipt: - type: agent-update - timestamp: "2024-01-15T10:30:00Z" - - request: - user_intent: "说话正式一点" - update_type: persona - target_files: - - persona.md - - changes: - files_modified: 1 - diff_summary: "沟通风格从'友好随和'改为'专业严谨'" - git_commit: "def456..." - previous_commit: "abc123..." - - metadata: - risk_level: medium - user_confirmed: true - rollback_available: true -``` - -### 特殊操作:版本回滚 - -**触发条件**: -- 用户说"撤销刚才的修改" -- 用户说"回滚到之前的版本" -- 用户说"恢复原来的设置" - -**回滚流程**: - -1. **列出可回滚版本**: -``` -可回滚的版本 - -1. [2小时前] 调整沟通风格为专业严谨 -2. [1天前] 添加合同审查技能 -3. [3天前] 初始化仓库 - -请选择要回滚到的版本: -``` - -2. **确认回滚**: -``` -回滚确认 - -将回滚到版本 #2(1天前) -以下变更将被撤销: -- 沟通风格调整 - -确认回滚? [确认] [取消] -``` - -3. **执行回滚**: -```bash -git revert --no-edit -# 或 -git reset --soft -``` - -### 受保护路径 - -变更应用前**必须**检查是否触及受保护路径。完整定义见共享配置文件 [`_protected-paths.yaml`](../_protected-paths.yaml)。 - -**关键规则摘要**: -- `persona.md` L0 section → **block**(核心身份不可自动修改) -- `principles.md` "绝不做" section → **block**(安全红线不可自动修改) -- `agent.json` access_control / privacy → **owner_only**(需 owner 确认) -- `tools/` permissions / credentials → **owner_only / block** - -### 错误处理 - -| 错误场景 | 处理方式 | -|---------|---------| -| 尝试修改受保护路径 | 阻断操作,提示需要 owner 权限 | -| Diff 应用冲突 | 展示冲突内容,请用户手动解决 | -| Git 操作失败 | 保留修改文件,提示用户手动提交 | -| 回滚版本不存在 | 列出可用版本,请用户重新选择 | - -### 权限要求 - -| 操作 | 所需角色 | -|------|---------| -| 更新 persona | owner, member | -| 更新 principles(普通规则) | owner, member | -| 更新 principles(安全红线) | owner | -| 安装/卸载 skills | owner, member | -| 修改 tools 权限 | owner | -| 版本回滚 | owner | - ---- - -## 附录:Principles 更新示例 - -### 添加新规则 - -**用户输入**:"以后遇到法律问题,先提醒我找专业律师" - -**生成的 Diff**: - -```diff -# principles.md - -## 必须做 - - - 始终保持礼貌和尊重 - - 不确定时主动询问 -+ - 遇到法律相关问题时,提醒用户咨询专业律师 - -## 绝不做 - ... -``` - -### 修改现有规则 - -**用户输入**:"不要每次都提醒我,太啰嗦了" - -**生成的 Diff**: - -```diff -# principles.md - -## 必须做 - -- - 每次回答后都提醒用户检查内容 -+ - 仅在重要决策时提醒用户检查内容 -```