SuperAPI AI 工具集

search-first

编程与开发

查看项目

更新于 10-15 08:33

技能介绍

search-first 是一个“先搜索、后编码”的调研工作流技能,来自 aaaaawq/agi-super-team。它的核心主张是:在编写自定义代码之前,先搜索已有的工具、库和实现模式,避免重复造轮子。

一、用途与触发场景 该技能适用于以下情况:开始一个新功能时,该功能很可能已有现成方案;需要添加依赖或集成时;用户提出“添加 X 功能”而你正准备写代码时;在创建新的工具函数、辅助函数或抽象之前。它要求你先停下来做调研,而不是立即动手实现。

二、工作流 技能定义了五个步骤:

  1. 需求分析(NEED ANALYSIS):明确所需的功能是什么,识别语言/框架方面的约束。
  2. 并行搜索(PARALLEL SEARCH):由 researcher 智能体并行搜索 npm/PyPI、MCP/Skills、GitHub/Web 等来源。
  3. 评估(EVALUATE):对候选方案进行打分,评估维度包括功能性、维护情况、社区、文档、许可证、依赖等。
  4. 决策(DECIDE):在“直接采用(Adopt as-is)”“扩展/封装(Extend/Wrap)”“自定义构建(Build Custom)”之间做出选择。
  5. 实现(IMPLEMENT):安装包、配置 MCP,或只编写最少的自定义代码。

三、决策矩阵

  • 精确匹配、维护良好、采用 MIT/Apache 许可证 → 采用:直接安装使用。
  • 部分匹配、基础较好 → 扩展:安装后编写一层薄封装。
  • 多个弱匹配 → 组合:把 2-3 个小包组合起来使用。
  • 找不到合适方案 → 构建:编写自定义实现,但要基于调研结果。

四、使用方式 技能提供两种模式:

  1. 快速模式(inline):在编写工具函数或添加功能前,在心里过一遍以下问题——仓库中是否已存在此功能(先用 rg 搜索相关模块与测试)?这是不是一个常见问题(搜索 npm/PyPI)?是否已有对应的 MCP(检查 ~/.claude/settings.json 并搜索)?是否已有对应 skill(检查 ~/.claude/skills/)?是否有 GitHub 实现或模板(在写全新代码前先做 GitHub 代码搜索)?
  2. 完整模式(agent):对于非平凡的功能,启动 researcher 智能体,任务提示中需给出功能描述、语言/框架、约束条件,并要求搜索 npm/PyPI、MCP 服务器、Claude Code skills、GitHub,返回结构化的对比与推荐。

五、按类别的搜索捷径

  • 开发工具:Linting → eslint、ruff、textlint、markdownlint;格式化 → prettier、black、gofmt;测试 → jest、pytest、go test;提交前检查 → husky、lint-staged、pre-commit。
  • AI/LLM 集成:Claude SDK → 用 Context7 查最新文档;提示词管理 → 查找 MCP 服务器;文档处理 → unstructured、pdfplumber、mammoth。
  • 数据与 API:HTTP 客户端 → httpx(Python)、ky/got(Node);校验 → zod(TS)、pydantic(Python);数据库 → 优先查找 MCP 服务器。
  • 内容与发布:Markdown 处理 → remark、unified、markdown-it;图片优化 → sharp、imagemin。

六、与其他智能体的集成

  • 与 planner 智能体:planner 应在第 1 阶段(架构评审)之前调用 researcher,由 researcher 识别可用工具,planner 将其纳入实施计划,避免在计划中“重新发明轮子”。
  • 与 architect 智能体:architect 应就技术栈决策、集成模式发现、现有参考架构咨询 researcher。
  • 与 iterative-retrieval 技能:组合使用可渐进式发现——第 1 轮做广泛搜索(npm、PyPI、MCP),第 2 轮详细评估排名靠前的候选,第 3 轮测试其与项目约束的兼容性。

七、示例

  • 示例 1:“添加死链检查”:需求是检查 Markdown 文件中的失效链接;搜索 npm “markdown dead link checker”;找到 textlint-rule-no-dead-link(评分 9/10);动作是采用——npm install textlint-rule-no-dead-link;结果是零自定义代码,使用经过实战检验的方案。
  • 示例 2:“添加 HTTP 客户端封装”:需求是带重试和超时处理的高可用 HTTP 客户端;搜索 npm “http client retry”、PyPI “httpx retry”;找到 got(Node)带重试插件、httpx(Python)内置重试;动作是采用——直接使用 got/httpx 并配置重试;结果是零自定义代码,使用生产验证过的库。
  • 示例 3:“添加配置文件校验器”:需求是按 schema 校验项目配置文件;搜索 npm “config linter schema”“json schema validator cli”;找到 ajv-cli(评分 8/10);动作是采用 + 扩展——安装 ajv-cli,编写项目专属 schema;结果是 1 个包 + 1 个 schema 文件,无需自定义校验逻辑。

八、反模式 该技能列出的反面做法包括:直接跳到编码,不检查是否已有现成方案;忽略 MCP,不检查 MCP 服务器是否已提供该能力;过度定制,把库封装得太重以至于失去其优势;依赖膨胀,为了一个小功能安装庞大的包。

九、限制 资料中未提供该技能的收费、价格、具体平台支持范围或性能数据等信息。