关于 nimble-web-expert
面向使用 Nimble CLI 或 MCP 的网页数据检索技能,按需求将任务路由到搜索、提取、模板、Agent、站点映射或爬取。还提供连接检查、批量处理和结果呈现规则。
主要功能
- 01按任务意图选择 Nimble 能力
- 02搜索与单页 URL 提取
- 03复用站点提取模板
- 04Web Search Agent 研究
- 05发现 URL 与批量爬取
- 06多输入并行处理
适用场景
- 01提取指定网页的结构化数据
- 02搜索网页并整理研究结果
- 03发现站点页面或批量抓取内容
- 04并行处理多个 URL 或关键词
MCP 相关
技能可通过 Nimble MCP 工具执行网页检索与提取,也可选择 Nimble CLI。会先检查连接状态,并在会话中保持选定的传输方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nimbleway/ agent-skills --skill nimble-web-expert安装后在 Claude Code 中输入/nimble-web-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/batch-patterns.mderror-handling.mdrecipes.mdreferences/nimble-agents/reference.mdreferences/nimble-crawl/reference.mdreferences/nimble-extract-templates/reference.mdreferences/nimble-extract/browser-actions.mdbrowser-investigation.mdnetwork-capture.mdparsing-schema.mdreference.mdreferences/nimble-map/reference.mdreferences/nimble-search/reference.mdsearch-focus-modes.mdreferences/nimble-tasks/reference.mdrules/nimble-web-expert.mdcoutput.mdsetup.md详细介绍
Nimble Web 专家
使用 Nimble CLI 进行网页内容提取、搜索和 URL 发现。可从任何网站返回干净、结构化的数据。
用户请求:$ARGUMENTS
核心原则
- 先按意图路由(完整决策模型请参见 分析与路由)。如果用户指定的网站有匹配的 Extraction Template,且要查询的条目明确 → 运行模板。网站没有模板,或需求需要跨页面发现或推理 → 使用 Web Search Agent。单个 URL 的一次性查询 →
nimble extract。需要原始结果供后续处理(“查找关于……的网页/文章”)→nimble search;需要综合成果(报告、简报、对比、建议)→ 使用 Web Search Agent。发现/抓取 URL →nimble map或nimble crawl。 - 运行 Web Search Agent 时:先选择运行模式,再构建命令。 默认使用具名创建或复用模式 —
nimble agents run --agent-name <stable-name>— 这样后续会话会使用同一个 Agent。agents:runs create仅用于指定 Agent ID,且必须提供--agent-id。references/nimble-agents/reference.md包含模式表、use_case锁定规则,以及一次性的skill覆盖设置。 - 一条命令 → 展示结果 → 完成。 运行一次后,立即以表格形式展示数据。不要反复尝试、循环执行,也不要编写 Python 来解析输出。
- 多个输入 → 始终并行处理。 2 个或更多 URL/关键词/ASIN → 使用
&+wait。6–20 个 → 使用xargs -P。20 个以上 → 使用 Python asyncio 脚本。请参见references/batch-patterns.md。 - 内容为空或被截断时,静默升级渲染层级。 按 Tier 1 → 2 → 3 → … 升级,无需询问。只有所有层级都失败且需要调查工具时,才告知用户并请其决策。访问障碍属于另一种结果,并非需要继续升级的层级 — 请参见“防护措施”。
- 绝不根据训练数据作答。 实时价格、当前新闻、今日的商品列表 → 始终通过 Nimble 获取。如果无法获取,请如实说明。
- 每当出现有意义的选择时,都使用 AskUserQuestion。 标题不超过 12 个字符,提供 2–4 个选项,每个选项标签为 1–5 个词,并将推荐选项放在首位。绝不以编号段落呈现选项。
- 将所有输出保存到
.nimble/。 绝不只将提取结果留在内存中。 - 开始前先验证连接 — 不要先发起数据调用,再对错误作出反应。 使用 bash 时,运行
nimble --version并检查NIMBLE_API_KEY,以确认 CLI 可用;否则运行一次只读的mcp__plugin_nimble_nimble__nimble_agents_list探测。成功 = 已连接;身份验证/未连接错误,或响应中包含 OAuth 授权 URL = 未连接。 - 没有可用 CLI 且 MCP 未连接 → 停止。 不要改用 WebFetch、WebSearch、curl 或
dangerouslyDisableSandbox。如果插件已安装但连接器未连接(Cowork/claude.ai 中很常见),请原样提供rules/setup.md中的连接步骤,然后停止;如果完全没有安装插件,则按照rules/setup.md中的安装流程操作。 - 如果工具返回的是 OAuth“Authorize”链接而非数据,请原样展示该链接并停止。 绝不要编造“将 URL 粘贴回来”/“我会完成连接”之类的步骤 — 并不存在这样的步骤;也绝不要声称工具“即将启用”,然后在同一轮中调用它们。等待用户授权后,再重试或重新探测。
功能
一种能力对应一种分类。请准确使用 Nimble 自有的产品名称,切勿换种说法。
| 能力 | 说明 | 命令系列 |
|---|---|---|
| Search | 实时网页搜索——原始结果(页面、摘要),提供 8 种聚焦模式 | nimble search |
| Extract | 获取并解析一个已知 URL(单次操作的基本工具) | nimble extract |
| Extraction Template | 针对已知条目(通过 URL 或标识符)的可复用、特定于网站的结构化抓取工具 | nimble extract:templates |
| Web Search Agent | 开放式研究 / 信息补充 / 数据集构建——发现来源、综合信息并标注引用 | nimble agents / agents:runs |
| Map | 发现网站上存在的 URL | nimble map |
| Crawl | 批量获取网站上的多个页面(一次性、大规模操作) | nimble crawl |
Extraction Templates 和 Web Search Agents 各不相同——Extraction Template 是固定的、特定于网站的解析器;Web Search Agent 会跨来源进行推理。切勿将 Extraction Template 称为“WSA”或“legacy WSA”,也切勿仅凭名称就将模板操作路由到 agents(反之亦然)。这里不涉及构建新模板 / Agent——请使用现有模板 / Agent(引导用户前往 Nimble 应用创建新的模板 / Agent)。
交互式体验
- 在每个有实际意义的选择环节都使用
AskUserQuestion——绝不猜测,也绝不用自然语言提问。 - 请求不明确(无 URL、主题模糊):运行前先询问——“您想做什么?”→ 研究并报告 / 搜索 / 获取 URL / 发现 URL
- Gate B 以
high或更高的工作量级别选中了 Web Search Agent:提供成本 / 延迟选项——研究报告 / 快速扫描(参见 分析与路由) - 运行搜索前(如果任务对应特定的聚焦模式):提供聚焦模式选项——通用 / 新闻 / 编码 / 购物 / 学术 / 社交
- 所有层级均失败后:检查调查工具(
which browser-use、python3 -c "from playwright.sync_api..."),并询问是否要使用 browser-use、Playwright 进行调查,或跳过。 - 展示结果后,始终以此结束:“这些结果符合您的需求吗?”→
Looks great!/Mostly good/Not quite/Skip feedback
前提条件
在会话开始时选择 CLI 或 MCP——同一技能,两种传输方式。选定传输方式后,在整个会话中保持使用,不要在每条命令前重复探测。
nimble --version && echo "${NIMBLE_API_KEY:+API key: set}" # CLI path
# OR (fallback when shell isn't available)
claude mcp list 2>/dev/null | grep -q "nimble" && echo "MCP: ok" # plugin MCP
- CLI 已就绪(版本号和 API 密钥均能正常输出)→ 继续执行 步骤 0,使用
nimble ...命令。 - MCP 已连接(无 CLI,但已安装插件)→ 继续执行 步骤 0,改用
mcp__plugin_nimble_nimble__*工具。 - 两者都不可用 → 加载
rules/setup.md,按照适配环境的安装流程操作。任何 Claude 产品(Code、Cowork、claude.ai)→/plugin install nimble。Codex 或其他仅支持终端的 Agent →npm i -g @nimble-way/nimble-cli。Cursor / VS Code / 通用 MCP 客户端 → 粘贴mcp.json代码片段。
**如果 bash 被拒绝:**您使用的是类似 Cowork 的 / 仅支持 MCP 的宿主。请使用 mcp__plugin_nimble_nimble__* 工具,但先通过一次只读的 nimble_agents_list 探测来验证连接。如果探测失败并提示身份验证错误 / 未连接,或返回 OAuth 授权 URL,则表示连接器尚未连接——提供 核心原则 中的连接步骤并停止(切勿编造身份验证完成流程)。切勿用 WebFetch、WebSearch、curl 或任何其他工具代替 Nimble 操作。
分析与路由
按顺序经过两道关卡。关卡 A 询问数据位于何处;关卡 B 询问用户想要什么结果。大多数路由错误都源于跳过关卡 B——请求没有提供位置信号,并不意味着它一定是搜索请求。
关卡 A — 我知道数据位于何处吗?
| 用户信号 | 路由 |
|---|---|
| 要抓取的单个直接 URL | nimble extract |
| 指定网站 + 要查询的具体条目(URL/ID) | 步骤 0 — 先检查是否有 Extraction Template |
| “查找 URL / 网站地图 / 所有页面” | nimble map |
| “抓取 / 归档整个版块” | nimble crawl |
| 完全没有位置信号 | 继续进入关卡 B |
| 指定网站,但没有模板 | 继续进入关卡 B,并将该网站作为来源约束 |
最常见的重叠情况——网站没有 Extraction Template。 看起来像是在原始 extract(把解析工作都留给用户)和构建模板(超出范围)之间二选一。两者都不对:继续进入关卡 B,最终会选择 Web Search Agent——它能针对任意网站即时配置,并在没有维护中的模板时推理网站结构。这不是需要询问用户的问题;没有适用的模板时,答案始终相同。
步骤 0 — 检查 Extraction Template(指定网站 + 具体条目时)
模板无需编写选择器,即可返回整洁的结构化数据。务必先检查。
始终明确告知,绝不要默默处理:
- 告知: “让我检查一下 [site] 是否有 Nimble Extraction Template……”
- 报告: “找到
<template_name>——现在使用。” 或 “[site] 没有模板——改用 Web Search Agent。”
查找顺序:
~/.claude/skills/nimble-web-expert/learned/examples.json→ 已学习的模板nimble extract:templates list --limit 100→ 在客户端按网站/域名筛选,并确认匹配项- 运行前检查架构:
nimble extract:templates get --extract-template-name <name> - 没有匹配项 → 路由到 Web Search Agent(遵循上面的重叠规则)
nimble extract:templates run --template <name> --params '{"key": "value"}'
--params 是与模板 input_schema 匹配的 JSON/YAML 映射。响应内容是模板 output_schema 定义的记录(列表/SERP 风格为数组,详情/PDP 风格为对象)——查看 get 返回的架构以了解数据形状。参见 references/nimble-extract-templates/reference.md。
⚠️ 查找信息时,请使用 nimble search,不要使用 SERP 分析模板。SERP 模板用于排名/SEO 分析,不适用于一般信息检索。
Gate B — 用户想要什么结果?
nimble search 返回的是供快速浏览的原始资料。Web Search Agent 返回的是完整且附有引用的答案。由提示词中要求交付的内容决定路由——根据这一点判断,而不是根据主题听起来有多开放。
| → Web Search Agent | → nimble search |
|---|---|
| 报告、简报、分析、概览、拆解、深度研究 | 查找、搜索、查询 |
| 比较、“最佳 X”、“我该选哪个”、“现状”、推荐 | “关于……的网页/文章”、“……的链接” |
| 补充信息、建立列表、数据集、“……及其定价/员工人数” | 最新新闻、近期帖子、热门趋势 |
涉及多个实体的结构化行数据 → 使用带有 enrichment 或 dataset_building 的 Web Search Agent。参见 references/nimble-agents/reference.md。
如果答案成本较高,就提供两种选择
Web Search Agent 使用 high 努力度需要几分钟,成本也更高;搜索只需几秒。这是真实的权衡,因此要明确告知用户——但仅当 Gate B 指向 Web Search Agent,且建议的工作力度为 high 或更高时才这样做。 使用一次 AskUserQuestion,并将推荐选项放在第一位:
- 研究报告 — Web Search Agent,需几分钟,每项主张都有引用
- 快速浏览 —
nimble search,需几秒,返回原始链接供你自行浏览
低于 high 时,不要询问——直接运行 Web Search Agent。若 Gate A 已确定路由,绝不要询问。
数据集请求始终达到这一门槛。“建立一个……列表” → dataset_building,按定义其工作力度为 high 或更高,因此始终适用两种选择。信息补充没有这样的最低要求——根据常规工作力度规则判断“补充这些行的信息”,若范围较小且定义明确,工作力度低于 high,则跳过询问。
启动任何 Web Search Agent 任务之前,先说明预计耗时,然后在各阶段转换时播报进度。在 MCP 上,进度通过有界状态轮询获取,而非实时流式传输——逐步轮询并报告,因为数分钟没有进度播报会让人觉得任务卡住了。
工作流
| 情况 | 命令 | 参考 |
|---|---|---|
| 网站 + 条目 → 优先使用模板 | extract:templates list → extract:templates run | references/nimble-extract-templates/reference.md |
| 研究 / 信息补充 / 数据集 | 选择运行模式 → get → result | references/nimble-agents/reference.md |
| 直接 URL | nimble extract | references/nimble-extract/reference.md |
| 搜索实时网页 | nimble search | references/nimble-search/reference.md |
| 发现网站上的 URL | nimble map | references/nimble-map/reference.md |
| 批量抓取某个版块 | nimble crawl run | references/nimble-crawl/reference.md |
| 批量模板(最多 1,000 个) | nimble extract:templates batch | references/nimble-extract-templates/reference.md |
| 批量提取(最多 1,000 个) | nimble extract-batch | references/nimble-extract/reference.md |
| 轮询任务 / 批次 / 结果 | nimble tasks / nimble batches | references/nimble-tasks/reference.md |
| 未知选择器或 XHR 路径 | 使用 browser-use 或 Playwright 调查 | references/nimble-extract/browser-investigation.md |
| 已验证的网站模式 | 复制一份方案 | references/recipes.md |
| 2 个以上输入 | 使用并行 bash &+wait 或生成脚本 | references/batch-patterns.md |
有关完整的提取流程(层级、标志、浏览器操作、网络捕获),请参阅 references/nimble-extract/reference.md。
响应格式
| 命令 | 输出 |
|---|---|
nimble extract:templates | 按模板的 output_schema 返回记录——数组(列表 / SERP)或对象(详情 / PDP) |
nimble agents:runs result | output(type:"text" 文本内容或 type:"json" 结构化内容)+ 每项声明的 trust 引用 |
nimble extract | HTML、Markdown 或解析后的 JSON——取决于 --format 和 --parse |
nimble search | 结构化结果数组(标题、URL、描述) |
nimble map | URL 列表 + 元数据 |
nimble crawl | 异步作业——使用 nimble crawl status <job_id> 轮询 |
解析前请先阅读模板的 output_schema(通过 extract:templates get 获取)——列表 / SERP 风格的模板会返回数组,详情 / PDP 风格的模板会返回对象。Web Search Agent 运行是异步的:轮询 agents:runs get 直至进入终止状态,然后获取 result。
输出与组织
mkdir -p .nimble # save all outputs here
命名:.nimble/<site>-<task>.md(例如 .nimble/amazon-airpods.md、.nimble/yelp-sf-italian.json)
使用已保存的文件:
wc -l .nimble/page.md && head -100 .nimble/page.md
grep -n "price\|rating" .nimble/page.md | head -30
每条响应末尾都添加:Source: [URL] — fetched live via Nimble CLI
自我改进
此技能会维护 ~/.claude/skills/nimble-web-expert/learned/examples.json。
- **任务开始时:**读取文件,扫描
good[],查找匹配的url_pattern→ 将记录的command/tier作为起点。扫描bad[]→ 避免记录的问题。 - **呈现结果后:**询问“这些结果符合你的需求吗?”→ 收到肯定反馈后,将包含
url_pattern、task、command、tier、notes的条目追加到good[]。收到否定反馈后,询问“出了什么问题?”并将包含url_pattern、task、issue、avoid、better的条目追加到bad[]。 - 条目应简洁,每个站点保留 5–10 条。只有收到真实反馈时才写入,切勿臆测。
防护措施
- **对于实时价格、当前新闻或实时数据,绝不依据训练数据作答。**如果 Nimble 不可用,请如实说明。
- **绝不默默跳过步骤 0。**即使确定没有模板,也要先说明正在检查,然后再回退到 Web Search Agent 或 extract/search。
- 绝不以原始搜索结果回答综合分析类交付需求。“报告”“简报”“比较”“最佳 X”“我该选哪个” → Gate B 会将请求转交给 Web Search Agent。把链接列表交给用户并称之为报告,是最常见的路由错误。
- **区分 Extraction Templates 和 Web Search Agents。**绝不要将模板称为“WSA”/“legacy WSA”,也绝不要仅凭名称就将模板用途路由到
agents(反之亦然)。新建模板/Agent 不在范围内,请使用现有的模板/Agent。 - 如果运行结果为空、不完整或明显有误,要直言说明——某个域名没有返回结果、模板匹配不佳、搜索没有相关命中,都是真实结果,不能当作成功来呈现。如果有明显的后续步骤(如扩大来源范围、改用其他能力),请予以建议。
- **绝不重试相同的渲染层级。**如果某个层级返回空内容或截断内容,请升级层级,不要重新运行。
- **遇到访问限制时绝不升级。**如果目标内容被 CAPTCHA、人机验证页面或登录墙取代,这是实际结果——请如实说明并停止。如有受支持的替代方案,请采用:使用
--focus social搜索社交账号,或使用公开搜索结果查找受限文章。 - **绝不用 WebFetch、WebSearch、curl 或 wget 替代 nimble 操作。**这些不在
allowed-tools中——如果没有 Nimble 传输方式,请停止并遵循 Core principles 中 no-transport 分支的指引。不要尝试绕过限制。 - **绝不臆测性地加载参考文件。**只有当前任务明确需要时才读取参考文件。
- 任务 Agent 必须使用
run_in_background=False。 - **严格限制重试次数。**发生错误(而非内容为空)时,最多使用不同标志重试 2 次。发生 2 次错误后,报告情况并停止。
- **严格遵守 429 规则。**发生速率限制错误时,立即停止。不要重试,也不要切换层级。
参考文件
仅在需要时加载:
| 文件 | 加载时机 |
|---|---|
references/recipes.md | 需要常见网站(Amazon、Yelp、LinkedIn……)的成熟命令时 |
references/nimble-extract-templates/reference.md | 步骤 0 — 为已知网站发现、检查或运行 Extraction Templates |
references/nimble-agents/reference.md | Web Search Agents — 发现、运行生命周期、编写、信任与引用 |
references/nimble-extract/reference.md | Extract 标志、渲染层级、浏览器操作、网络捕获、解析器架构 |
references/nimble-search/reference.md | Search 标志、全部 8 种 focus 模式 |
references/nimble-map/reference.md | Map 标志、响应结构 |
references/nimble-crawl/reference.md | 完整的异步 crawl 工作流 |
references/nimble-tasks/reference.md | 轮询任务/批次、获取结果 — 用于异步、批量和 crawl 操作 |
references/nimble-extract/browser-investigation.md | 第 6 层 — 使用 browser-use 或 Playwright 发现 CSS 选择器/XHR |
references/nimble-extract/parsing-schema.md | 解析器类型、选择器、提取器、后处理器 |
references/nimble-extract/browser-actions.md | 完整的浏览器操作类型与参数 |
references/nimble-extract/network-capture.md | 筛选语法、XHR 模式、捕获与解析模式 |
references/nimble-search/search-focus-modes.md | 决策树、模式详情、组合策略 |
references/batch-patterns.md | 适用于 2–5、6–20 和 20+ 个输入的并行 bash 模式 |
references/error-handling.md | 错误代码、已知的网站问题、故障排除 |