# discover-agent 技能 ## L0:一句话摘要 根据用户需求描述,在已注册的智能体中匹配并推荐最合适的 Agent。 ## L1:概述 流程型技能:理解需求 → `ManageAgent(action='list')` 检索 → 语义匹配评分 → 排序展示 → 引导选择;无匹配时自动衔接 create-agent。适用于用户不知该找哪个智能体、想浏览可用智能体、新用户初次了解、或对当前 Agent 不满意想找替代者。价值在工具给不了的部分:需求语义匹配(而非关键词搜索)、候选排序与呈现、无匹配时的创建衔接。`list` / `get` 只读免审批。 ## L2:详细规范 流程:需求理解 → 检索 → 匹配评估 → 排序 → 展示 → 引导选择。 ### 阶段 1:需求理解 触发(任一):用户说"帮我找一个… / 有没有… / 谁能帮我…"、描述任务但未指定智能体、"有哪些智能体",或系统检测到需求与当前 Agent 能力不匹配。从描述提取维度:`domain`(领域,如法律/财务/技术/教育)、`task_type`(咨询/审查/分析/创作)、`keywords`(合同/报表/代码/论文…)、`urgency`(日常/紧急)。 ### 阶段 2:检索 `ManageAgent(action='list')` 取全部已注册智能体(返回 name / id / status / description 的紧凑列表)。过滤:默认展示 offline 之外的,offline 仅在无更优候选时补充;排除系统内部智能体(如 DesireCore 自身,除非用户显式要求)。 ### 阶段 3:匹配评估 用 LLM 语义理解综合判断匹配度(非公式计算):description / persona 与需求的相关性、skills 与任务类型的关联、领域契合度、状态可用性(online 优先)。展示分级:高度匹配 → 标"推荐",部分匹配 → 标"可能相关",无明显关联 → 不展示。 ### 阶段 4:排序 综合得分降序;同分 online 优先;最多展示 5 个候选。 ### 阶段 5:结果展示 - **有匹配**:列出候选,每个含名称、描述、关键技能、状态、匹配度,请用户选择或进一步细化需求。例如「1. 法律顾问助手(92%)——合同审查与法律风险评估;技能:合同审查 / 风险评估 / 法律研究;在线」。 - **无匹配**:告知未找到,给三选项——用更具体描述重试 / 创建新专业智能体(衔接 create-agent)/ 浏览全部。 - **浏览模式**(用户要看全部):按在线 / 离线分组列出名称 + 描述,问是否要看某个的详情。 ### 阶段 6:引导选择 - 选中某智能体 → 切换到该智能体的对话,传递用户需求上下文(source / target / user_intent)。 - 要求了解更多 → `ManageAgent(action='get', id)` 取详情(名称 / 描述 / 状态 / 版本 / 技能数 / 工具数 / Git 状态),以自然语言或表格呈现关键信息,问是否对话。 - 不满意候选 → 引导细化需求或建议创建新 Agent。 - 选"创建新的" → 调 create-agent 技能,传递已收集的需求信息。 ### 协作与错误处理 - 协作:无匹配衔接 create-agent(传需求作初始信息);匹配成功后可创建任务并分配给目标 Agent。 - 错误:工具调用失败 → 提示错误、建议重试;Agent 列表为空 → 引导创建第一个智能体;需求过于模糊 → 追问并给领域选项引导;`get` 返回「智能体不存在: 」→ 回退 `list` 重新确认可用智能体;推荐 Agent 状态异常 → 标注状态并建议选在线的。 - `list` / `get` 均为只读、免审批、无风险,一律经 `ManageAgent` 完成。