Files
market/skills/discover-agent/SKILL.zh-CN.md
Yige 1c00b8e6c8 feat(skills): 智能体 CRUD 四技能改经 ManageAgent 内置工具(实例鉴权适配) (#52)
## 摘要 / 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。
2026-07-18 23:05:18 +08:00

9.5 KiB
Raw Blame History

discover-agent 技能

L0一句话摘要

根据用户需求描述,在已注册的智能体中匹配并推荐最合适的 Agent。

L1概述与使用场景

能力描述

discover-agent 是一个流程型技能Procedural Skill,赋予 DesireCore 为用户发现和推荐合适智能体的能力。它通过理解用户需求描述,在已注册的 Agent 列表中进行多维度匹配,展示候选列表供用户选择。

使用场景

  • 用户描述了一个需求,但不知道该找哪个智能体帮忙
  • 用户想浏览当前可用的智能体及其能力
  • 用户需要为特定任务找到最合适的专业助手
  • 新用户初次使用系统,需要了解有哪些智能体可用
  • 用户对当前智能体的表现不满意,想寻找更合适的替代者

核心价值

  • 降低门槛:用户无需记住每个智能体的名称和能力
  • 精准匹配:基于需求语义进行智能推荐,而非简单关键词搜索
  • 流畅衔接:无匹配时自动建议创建新 Agent衔接 create-agent 技能)

L2详细规范

执行流程

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   需求理解    │ ──→ │   Agent 检索  │ ──→ │   匹配评分    │
└──────────────┘     └──────────────┘     └──────────────┘
                                                  │
                                                  ↓
┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   引导选择    │ ←── │   结果展示    │ ←── │   候选排序    │
└──────────────┘     └──────────────┘     └──────────────┘

阶段 1需求理解

触发条件(任一满足):

  • 用户说"帮我找一个..."、"有没有..."、"谁能帮我..."
  • 用户描述了一个任务但未指定具体智能体
  • 用户说"有哪些智能体"、"看看都有谁"
  • 系统检测到用户需求与当前 Agent 能力不匹配

需求解析

从用户描述中提取以下维度:

维度 说明 示例
domain 专业领域 法律、财务、技术、教育
task_type 任务类型 咨询、审查、分析、创作
keywords 关键词 合同、报表、代码、论文
urgency 紧急程度 日常 / 紧急

阶段 2Agent 检索

数据源:调用 ManageAgent(action='list') 获取所有已注册的智能体列表。

工具调用

ManageAgent(action='list')

返回内容:一份紧凑列表,每行包含以下关键字段:

  • name — 智能体名称
  • id — 智能体唯一标识
  • status — 当前状态online/busy/idle/offline
  • description — 智能体描述

list 为只读查询,无需用户确认、免审批。

过滤规则

  • 默认展示除 offline 之外的智能体offline 智能体仅在无更优候选时作为补充展示
  • 排除系统内部智能体(如 DesireCore 自身,除非用户显式要求)

阶段 3匹配评估

根据以下维度综合判断匹配度(使用 LLM 语义理解,非公式计算):

维度 说明
描述相关性 智能体 description / persona 与用户需求的语义相关度
技能匹配度 智能体拥有的 skills 与任务类型的关联度
领域契合度 智能体专业领域与用户需求领域的契合程度
状态可用性 智能体当前状态online 优先于 offline

展示规则

  • 高度匹配(明确适合该任务)→ 标为"推荐"
  • 部分匹配(可能有帮助)→ 标为"可能相关"
  • 无明显关联 → 不展示

阶段 4候选排序

排序规则

  1. 按综合得分降序排列
  2. 同分时 online 状态优先
  3. 最多展示 5 个候选

阶段 5结果展示

有匹配结果时

根据你的需求,我推荐以下智能体:

┌─────────────────────────────────────────────────────┐
│ 1. 法律顾问助手                          匹配度: 92% │
│    专注合同审查和法律风险评估                          │
│    技能:合同审查、风险评估、法律研究                   │
│    状态:在线                                        │
├─────────────────────────────────────────────────────┤
│ 2. AI 文书助手                           匹配度: 71% │
│    专业文书撰写和格式优化                              │
│    技能:文书撰写、格式排版、合规检查                   │
│    状态:在线                                        │
├─────────────────────────────────────────────────────┤
│ 3. 数据分析师                            匹配度: 45% │
│    数据分析和可视化报告                                │
│    技能:数据分析、报表生成、趋势预测                   │
│    状态:离线                                        │
└─────────────────────────────────────────────────────┘

请选择一个智能体,或告诉我更具体的需求。

无匹配结果时

目前没有找到完全匹配你需求的智能体。

你可以:
1. 用更具体的描述再试一次
2. 创建一个新的专业智能体(我可以帮你)
3. 浏览所有可用的智能体

你想怎么做?

浏览模式(用户要求查看所有):

当前可用的智能体:

在线:
  - 法律顾问助手 — 合同审查和法律风险评估
  - AI 文书助手 — 专业文书撰写和格式优化

离线:
  - 数据分析师 — 数据分析和可视化报告
  - 翻译助手 — 多语言翻译和本地化

共 4 个智能体。需要了解某个智能体的详细信息吗?

阶段 6引导选择

用户选择后的操作

用户选择 后续操作
选择了某个智能体 切换到该智能体的对话,传递用户需求上下文
要求了解更多 调用 ManageAgent(action='get', id='<agent-id>') 获取详情,展示结构化信息(见下方)
不满意候选 引导用户细化需求或建议创建新 Agent
选择"创建新的" 调用 create-agent 技能,传递已收集的需求信息

"了解更多"的实现

调用 ManageAgent(action='get', id='<agent-id>') 获取指定智能体的详情:

ManageAgent(action='get', id='legal-assistant')

返回内容中的关键字段

  • 名称、描述、状态
  • 版本
  • 技能数 / 工具数
  • Git 仓库状态

get 为只读查询,无需用户确认、免审批。目标不存在时返回错误「智能体不存在: 」。

向用户展示时,以自然语言/表格形式呈现关键信息:

「法律顾问助手」详细信息

| 字段 | 内容 |
|------|------|
| 描述 | 专注合同审查和法律风险评估 |
| 当前状态 | 在线 |
| 版本 | 1.2.0 |
| 技能 / 工具 | 3 个技能5 个工具 |
| Git 仓库 | 干净(无未提交变更) |

需要与这个智能体对话吗?

切换上下文传递

context_handoff:
  source_agent: desirecore
  target_agent: legal-assistant
  user_intent: '帮我审查这份合同的风险点'

与其他技能的协作

协作技能 协作方式
create-agent 无匹配时建议创建新 Agent传递用户需求作为初始信息
task-management 匹配成功后可自动创建任务并分配给目标 Agent

错误处理

错误场景 处理方式
工具调用失败 提示错误信息,建议稍后重试
Agent 列表为空 引导用户创建第一个智能体
用户描述过于模糊 追问具体需求,提供领域选项引导
目标智能体不存在 get 返回「智能体不存在: 」时,回退到 list 重新确认可用智能体
推荐的 Agent 状态异常 标注状态,建议选择其他在线 Agent

权限要求

  • 通过内置工具 ManageAgent 完成智能体检索与详情查询
  • list / get 均为只读查询,无需用户确认、免审批,无风险

依赖

  • 内置工具 ManageAgentaction='list' 检索列表、action='get' 查询详情)