search-and-fetch
SKILL.md
Search & Fetch
通用搜索与内容提取技能,提供两个核心能力:搜索模式(多源并行搜索 + 结果综合)和提取模式(URL 内容提取 + 结构化分析)。
工具概览
本技能编排以下几类工具,按需组合使用:
| 类别 | 工具 | 说明 |
|---|---|---|
| 内置搜索 | WebSearch |
DuckDuckGo 搜索,始终可用 |
| MCP 搜索 | 当前环境中可用的 MCP 搜索工具 | 中文搜索、专业搜索等,按可用性自动选用 |
| 技术文档 | ctx7 CLI |
编程库/框架官方文档查询 |
| 浏览器 | agent-browser CLI |
访问搜索引擎、页面交互(Rust 原生,token 高效) |
| 内容提取 | crwl CLI → agent-browser |
按优先级降级 |
具体调用语法参见 references/tool-catalog.md。
意图检测
本技能负责所有 URL 和搜索意图的识别与路由。根据用户输入自动判断:
URL 检测
| 情况 | 处理 |
|---|---|
| 消息仅含 URL(无其他文字,或只有 URL + 空格/标点) | 直接进入 Fetch Mode |
| 消息含 URL + 阅读意图("读一下"、"分析"、"看看这个") | 直接进入 Fetch Mode |
| 消息含 URL + 保存意图("保存"、"clip"、"save"、"归档") | Fetch Mode 完成后,自动触发知识库技能的 Clipping Save |
| URL 出现在较长消息中,意图不明 | 询问:"要我提取内容分析,还是只需要链接?" |
| URL 明显是工具性的(localhost、内网地址、文件路径) | 不触发 |
搜索检测
| 情况 | 处理 |
|---|---|
| 用户提问、研究主题、需要查找信息 | Search Mode |
| 提供 URL + "搜索更多类似的" | 先 Fetch 再 Search |
| 其他技能委托调用 | 按委托方指定的模式执行 |
Search Mode
多源并行搜索,综合去重后输出结构化结果。
Step 1 — 查询分类
根据查询内容判断类型,选择工具组合:
| 查询类型 | 判断依据 | 工具组合 |
|---|---|---|
| 技术文档 | 涉及编程库、API、框架用法 | ctx7(library → docs)+ WebSearch |
| 通用查询 | 一般性问题 | WebSearch + MCP 搜索 并行(中文查询优先 MCP 搜索) |
| 深度研究 | 用户明确要求全面/深入调研 | 全部工具并行,含 agent-browser 访问 Google/Bing |
Step 2 — 并行执行搜索
根据分类结果,在同一轮响应中并行调用多个搜索工具。工具调用细节参见 references/tool-catalog.md。
关键原则:
- 独立工具并行调用,不等待
- context7 有顺序依赖:先
ctx7 library解析库 ID,再ctx7 docs查询内容(每个问题最多 3 次调用) - 对同一查询可以为不同搜索引擎调整措辞(如中文查询给 MCP 搜索原文,给 WebSearch 翻译为英文)
- 深度研究时使用
agent-browser打开 Google/Bing 搜索页,通过snapshot获取元素引用后提取结果
Step 3 — 结果综合
- 去重:按 URL 去重,合并来自不同来源的同一页面信息
- 分组:按子主题或关联度分组
- 排序:按相关性和信息质量排序
- 输出格式:
## 搜索结果:[查询主题]
### [子主题 1]
- 要点摘要(来源:[标题](url))
- 要点摘要(来源:[标题](url))
### [子主题 2]
- ...
---
**来源列表**
1. [标题](url) — 简述
2. [标题](url) — 简述
Step 4 — 后续操作
搜索结果展示后,提供后续选项:
- "要我读取某个链接的完整内容吗?" → 转入 Fetch Mode
- "要保存到知识库吗?" → 引导用户触发知识管理技能
- 用户可继续追问以缩小或扩大搜索范围
Fetch Mode
从 URL 提取干净内容并进行结构化分析。
Step 1 — 提取内容
按优先级尝试,前一个失败(报错、返回空、内容 < 100 字符)时自动降级:
1. crwl <url> -o md-fit ← 首选,支持 JS 渲染
2. agent-browser open <url> → snapshot → get text ← 最终手段
提取成功后记录使用了哪个工具,便于透明告知用户。
工具调用细节参见 references/tool-catalog.md。
Step 2 — 结构化分析
根据内容类型选择性应用分析维度。详细模板参见 references/analysis-template.md。
| 内容类型 | 适用维度 |
|---|---|
| 文章、评论、论文 | 全部五维(文本解构 → 概念提炼 → 批判审视 → 思想深化 → 实践转化) |
| 新闻、产品页 | 文本解构 + 概念提炼 + 实践转化 |
| 教程、技术文档 | 文本解构 + 概念提炼 + 实践转化 |
| 数据页、API 文档、参考表 | 跳过分析,直接呈现提取内容 |
Step 3 — 输出
两种输出模式:
独立模式(用户直接使用时):
## [页面标题](url)
**作者**: xxx | **日期**: xxx | **字数**: xxx
### 摘要
一段话总结。
### 分析
[按 analysis-template.md 输出适用维度]
### 关键要点
- 要点一
- 要点二
- 要点三
分析输出后,主动提示:"要保存到知识库吗?" 若用户同意,引导触发知识管理技能的保存流程。
集成模式(被其他技能委托调用时):
以自然语言输出以下信息块,供调用方直接消费(不要输出 JSON):
- 页面标题和原始 URL
- 一句话摘要
- 关键要点(要点列表)
- 五维分析(按适用维度输出)
- 完整正文(提取的干净 markdown 全文)
- 提取的实体:提到的工具/软件、股票/公司、人物(姓名+身份)、书籍/论文/资源
降级策略
当某个工具不可用时的处理方式:
| 工具不可用 | 影响 | 替代方案 |
|---|---|---|
| crwl | 无法提取内容 | 降级到 agent-browser |
| MCP 搜索 | 搜索来源减少 | 用 WebSearch 处理所有查询 |
| ctx7 | 无库文档搜索 | 用 WebSearch + site:xxx 定向搜索 |
| agent-browser | 无法处理 JS 重度页面 | 告知用户,提取失败 |
| 全部搜索工具 | 无法搜索 | 告知用户,建议直接提供 URL |
不要因为某个工具失败就中断流程——始终尝试下一个降级方案,直到全部耗尽才告知用户。
集成协议
本技能可被其他技能委托调用。调用方在自己的 SKILL.md 中指定"委托 search-and-fetch"即可。
被委托时的行为
- 按调用方指定的模式(Search/Fetch)执行
- 使用集成模式输出格式
- 不直接与用户交互后续问题(由调用方处理)
- 如果内容提取完全失败,返回失败标记和原因,由调用方决定如何告知用户
Weekly Installs
3
Repository
zhuxining/skillsFirst Seen
3 days ago
Security Audits
Installed on
amp3
cline3
openclaw3
opencode3
cursor3
kimi-cli3