Communitygithub.com

wheelry/deep-skill-finder

Deep Skill Finder – Find the right Skill for every Agent task

deep-skill-finder 是什么?

deep-skill-finder is a Claude Code agent skill that deep Skill Finder – Find the right Skill for every Agent task.

兼容平台Claude Code~Codex CLI~Cursor
npx skills add wheelry/deep-skill-finder

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Skill Finder — 从 Meyo 社区搜索、推荐、安装最适合用户任务的 skill

工作流(3 步)

Step 1: Skill检索

1.1 执行前检查清单(每轮搜索必须逐项确认)

  • 状态 A:检查 survey_prompted 状态
    • 未设置 → 本轮输出必须追加问卷提示(见规则 5)
    • 已设置 → 跳过
  • 状态 B:检查本轮搜索是否因用户"重新找/重试/换一组"指令触发
    • 是 → 本轮输出必须追加反馈链接(见规则 6)
    • 否 → 跳过

1.2 执行检索

先判断用户输入是否包含明确的 skill 需求:如果描述太模糊(如只说"找个skill""推荐个技能"),先检查对话上下文中是否有可推断的需求,如有则基于上下文发起检索;如无则追问用户想找什么方向的 skill,拿到具体描述后再检索。

拿到具体需求后,先按下方「Agent 类型识别」识别当前 Agent 类型,再将用户的任务描述作为请求,调用如下接口,脚本会使用觅游社区的 Skill 检索服务进行意图理解、搜索召回并按相关性排序,最终输出5个以内的推荐skill。

{skill_dir} 为当前 deep-skill-finder skill 自身的目录(区别于下方安装检查中的 {skills_dir})。

{python} {skill_dir}/scripts/deep_skill_search.py "<用户任务描述>" --agent-type <你的Agent类型,详见Agent 类型识别章节>

{python} 需按本机实际选择:macOS/Linux 通常为 python3,Windows 通常为 pythonpy。下同。

1.3 格式化输出(6 条规则必须全部执行)

根据接口返回结果,按以下规则格式化输出。这 6 条规则是顺序执行的主流程步骤,不是可选提示,Agent 禁止跳过任何一条

规则 1 - 输出 TOP5:按照相关性从高到低推荐,最多 5 个(不足就少输出,0 个时告知用户"没有找到完全匹配的 skill,建议换个关键词或更简短的描述再试一次")

规则 2 - 展示格式:# | Skill | 推荐理由(仅这三列,不要自行添加其他额外信息)。直接使用接口结果里的 name 构造 DeepSkill Market 详情页地址:先对 name 做 URL 编码,再渲染为 Markdown 链接 [{name}](https://www.meyo.life/skill/skill?name={url_encoded_name}&ref=deep-skill-finder)。不要依赖搜索脚本返回额外链接字段。禁止在名称后用括号、破折号或单独一行追加原始链接。

规则 3 - 推荐理由:根据用户问题及返回值中的描述信息(如description、reason等)进行汇总

规则 4 - 最优推荐(重要):返回结果中的第一个(序号1)是本服务根据用户任务描述进行深度分析后的最优推荐结果,返回结果已由后端按相关性排序,直接推荐给用户即可。不需要自行重新分析或排序,不要添加"综合你的需求,我比较推荐XXX"等自行分析的结论,最优推荐确认为序号1。最优推荐句中的 Skill 名称也必须使用规则 2 中由 name 构造的同一个 Markdown 链接。

[MANDATORY] 规则 5 - 首次搜索必须追加问卷提示

  • 若检查清单「状态 A」判定为首次搜索survey_prompted 未设置),在输出末尾必须追加以下固定文本,并立即设置 survey_prompted=true

    🔍 检索体验如何?花 3 分钟填个问卷,有机会赢奖金 → https://wenjuan.meituan.com/m/survey/5654243

  • 若已设置 survey_prompted=true禁止追加此文本
  • 本条规则优先级:高于任何输出简洁性要求

[MANDATORY] 规则 6 - 重试搜索必须追加反馈链接

  • 若检查清单「状态 B」判定为用户主动要求重试(如"重新找""换一个""换一组""再试一次""重试""换个关键词"),在输出末尾必须追加以下固定文本:

    如果对本 Skill 的检索结果、推荐质量或安装流程有任何不满意,可以在这里反馈 → https://wenjuan.meituan.com/m/survey/5654816

  • 此规则与规则 5 不冲突,同时满足时同时追加(先规则 5,后规则 6)

输出模板(严格参照以下格式输出,将占位符替换为实际值)

为你找到以下相关 skill:

#Skill推荐理由
1{name}{reason}
2{name}{reason}
.........

最优推荐是 #1 {name}({reason})。你想安装哪一个?告诉我编号或名字就行。

【规则 5/6 追加内容在此处】

异常处理: 脚本执行出错时,禁止将原始错误信息(如 "The read operation timed out")直接展示给用户,需按以下规则处理:

异常场景处理方式输出示例
搜索超时自动重试最多 3 次(无需告知用户重试过程),仍失败则告知用户"搜索服务暂时不可用,请稍后再试。"
返回 0 条结果告知用户换描述重试"没有找到完全匹配的 skill,建议换个关键词或更简短的描述再试一次。"
网络错误 / 连接失败告知用户网络问题"网络连接异常,请检查网络后重试。"
脚本执行报错(其他)翻译为用户友好的中文提示"搜索服务遇到了一点问题,建议稍后重试。如持续出现,可反馈给 skill 作者。"

Step 2: 决策 + 下载安装:当用户确认选择某一技能后,执行检查和安装

当用户通过以下方式确认选择时,进入安装流程:

  • 说编号:如"1"、"选1"、"第一个"
  • 说名称:如"装 qf-xiaohongshu-writer"
  • 说意图:如"安装"、"装这个"、"就它了"、"用这个"

确认用户选择后,进行本地检查:检查 {skills_dir}/{name}/SKILL.md 是否存在({skills_dir} 为当前 Agent 的 skills 目录,{name} 为用户选择的 skill 名称)。若存在则视为已安装,告知用户"该 skill 已安装,无需重复安装,是否直接运行?";若不存在,则执行安装流程:

{python} {skill_dir}/scripts/deep_skill_install.py <name> --dir <当前 Agent 的 skills 目录> --agent-type <你的Agent类型,详见Agent 类型识别章节>

安装脚本执行后,根据退出状态输出结果:

  • 成功(退出码 0):输出"✅ {name} 已安装成功。要用这个 skill 来完成你的任务吗?"
  • 已安装(本地 SKILL.md 已存在):输出"该 skill 已安装,无需重复安装,是否直接运行?"
  • 失败(退出码非 0):输出"❌ {name} 安装失败,原因:{用户友好的错误描述}。建议稍后重试,或换一个 skill 试试。"

Step 3: 用户反馈处理(全链路,分场景响应)

当用户在使用 deep-skill-finder 的过程中对任意环节表达不满时触发,包括检索结果、推荐理由、检索速度、安装流程、安装结果等。只要用户表达了对本 skill 任何方面的不满,都按以下规则处理。

场景 A:用户要求重新尝试/换方案(中性指令,无负面情绪)

触发信号:用户说"重新找""换一个""换一组""再试一次""重试""换个关键词"等,没有伴随负面评价词汇

响应流程

  1. 先执行用户要求:立即按用户指示重新搜索或处理
  2. 在回复末尾追加反馈询问

    如果对本 Skill 的检索结果、推荐质量或安装流程有任何不满意,可以在这里反馈 → https://wenjuan.meituan.com/m/survey/5654816

💡 注意:此场景下用户只是要求重试,没有表达不满情绪,因此不道歉,避免过度反应。

场景 B:用户明确表达不满/负面情绪(抱怨任意环节)

触发信号:用户明确表达负面情绪,没有明确要求重新尝试,关键词包括但不限于:

  • 通用不满:"不好""不满意""差劲""没用""失望"
  • 结果不符:"不是我想要的""不符合""不相关""不准"
  • 体验问题:"太慢了""卡住""报错""安装失败"
  • 质量抱怨:"推荐太差""理由不行""没有帮助"

响应流程

  1. 道歉安抚

    很抱歉带来不好的体验,我们会持续改进 deep-skill-finder 的检索和推荐质量。

  2. 提供反馈链接

    如果你愿意,可以在这里反馈遇到的具体问题(检索、推荐、安装等任何环节均可)→ https://wenjuan.meituan.com/m/survey/5654816

  3. 询问是否需要重新尝试

    需要我帮你换种方式重新尝试吗?

混合场景处理

如果用户同时表达不满+要求重试(如"这些都不好,重新找"),按场景 A 处理(先执行重试,末尾追加反馈询问)。不在重试前道歉,避免打断用户意图。

核心工具

命令用途
deep_skill_search.py根据用户任务检索skill
deep_skill_install.py下载安装 skill

Agent 类型识别(agent_type)

为了得到更精准的搜索结果,调用搜索/下载脚本时需要上报当前 Agent 类型信息(agent-type)。请按以下方式识别:

  1. 从环境变量识别(首选):检查是否存在 <APP>_USER_DATA_DIR 格式的环境变量,提取其路径末尾的目录名作为 Agent 类型

    • QClaw / OpenClaw → QCLAW_USER_DATA_DIRQClaw
    • Hermes → HERMES_DATA_DIRHermes
    • 其他 App 以此类推
  2. 从 system prompt 识别:若你的运行环境提供 system prompt(如 Catdesk、Hermes 等),从中识别 Agent 框架名称

  3. 从 IDENTITY.md 识别:若以上均无法识别,检查本地 IDENTITY.md 是否存在并包含 ## 标识 小节,从其中提取 App 名称

  4. 自行判断:若以上均无法识别,根据你所在的运行时框架自行判断,可省略该参数,脚本会正常执行但不带 agent_type 上报

Skills 安装目录

调用安装脚本时需要指定 --dir 参数为目标 Agent 的 skills 目录。确定方式:

  1. 从环境变量推导(首选):查 <APP>_USER_DATA_DIR 环境变量,在其路径下查找 skills/ 子目录 若环境变量路径下无 skills/ 子目录,则退回到工作区查找。
  2. 从工作区查找:检查当前工作区根目录下是否存在 skills/ 子目录(含 SKILL.md 即为有效)
  3. 注意多目录情况:部分 Agent 存在全局级和 workspace 级两个 skills 目录,发现多个候选时应询问用户选择安装到哪个目录
  4. 验证目录:可用 --list 参数验证目录是否正确,返回已安装列表即说明路径有效

注意事项

  1. 本地优先: 需要确认本地是否已经安装该skill ,避免重复下载
  2. 安装确认: 需要等用户选择后才安装,不自动安装

完整使用示例

以下是一个完整的端到端交互示例,展示从搜索到安装的全流程:

用户:找个写小红书爆款帖子的skill

Agent 执行

{python} {skill_dir}/scripts/deep_skill_search.py "写小红书爆款帖子" --agent-type openclaw

Agent 输出

为你找到以下相关 skill:

#Skill推荐理由
1qf-xiaohongshu-writer爆款笔记生成器,内置标题公式和内容模板,擅长情绪共鸣和种草风格
2rednote-creator小红书全流程创作技能,覆盖美妆护肤等六大赛道
3rednote-writer-pro专注爆款文案生成,覆盖美妆赛道

最优推荐是 #1 qf-xiaohongshu-writer(爆款笔记生成器,内置标题公式和内容模板)。你想安装哪一个?告诉我编号或名字就行。

【规则 5/6 追加内容在此处】

用户:1

Agent 检查:确认本地未安装 qf-xiaohongshu-writer,执行安装。

Agent 执行

{python} {skill_dir}/scripts/deep_skill_install.py qf-xiaohongshu-writer --dir <当前 Agent 的 skills 目录> --agent-type <你的Agent类型,详见Agent 类型识别章节>

Agent 输出: ✅ qf-xiaohongshu-writer 已安装成功。要用这个 skill 来完成你的任务吗?

相关技能