## 摘要 / Summary ### 中文 #56 的复盘修正。上一轮"强改写压缩"把四技能 L1 的**技术属性、使用场景与交互示范当套话一刀切**,造成实质信息丢失(承诺"意图全保留"但未做到)。本 PR 补回: - **create**:`创建仓库符合 AgentFS v2 规范、git 管理版本(可治理/可追溯)`定位;`基础创建`形态(name+description,description 自动填充 persona L0);需求收集的**引导问题示例**("起什么名字?/主要负责什么?"…);企业部署/开发者原型使用场景。 - **update**:`agent 目录 git 管理版本、历史可追溯`定位 + 使用场景。 - **discover**:使用场景(浏览/新用户/找替代)+ `语义匹配而非关键词搜索`。 - **delete**:使用场景(清理/测试/释放存储)。 根因:L1 混着实质技术属性与营销套话、使用场景是触发判据、引导问题是交互示范,不该按"只留独有信息"一刀切。补回后仍保留结构性压缩(zh 正文合计仍降 ~64%)。版本 create 2.5.2 / update 3.1.3 / delete 2.5.2 / discover 2.6.2,manifest 1.2.13,中英双份同步、重算 source_hash(validate-i18n 通过)。 ### English Post-mortem fix for #56. The previous aggressive compression treated the skills' L1 technical attributes, use cases, and interaction demos as boilerplate and cut them in a blanket way, dropping substantive information (the "all intent preserved" claim wasn't fully met). This PR restores: create's AgentFS-v2 / git-version-management positioning, the "basic create" form (name+description auto-filling persona L0), the requirement-gathering prompt questions, and enterprise/developer use cases; update's git-versioned/traceable positioning and use cases; discover's use cases and "semantic match, not keyword search"; delete's use cases. Root cause: L1 mixed real technical attributes with marketing boilerplate, use cases are trigger cues, and prompt questions are interaction demos — none should have been blanket-cut. Structural compression is retained (zh bodies still ~64% smaller). Versions bumped, manifest 1.2.13, both locales synced, source hashes recomputed (validate-i18n passes).
3.6 KiB
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完成。