mcpField
N
nimble-web-expert

nimble-web-expert

github.com/nimbleway数据与数据库61115 次安装2 天前更新
代码仓库

关于 nimble-web-expert

面向使用 Nimble CLI 或 MCP 的网页数据检索技能,按需求将任务路由到搜索、提取、模板、Agent、站点映射或爬取。还提供连接检查、批量处理和结果呈现规则。

主要功能

  1. 01按任务意图选择 Nimble 能力
  2. 02搜索与单页 URL 提取
  3. 03复用站点提取模板
  4. 04Web Search Agent 研究
  5. 05发现 URL 与批量爬取
  6. 06多输入并行处理

适用场景

  1. 01提取指定网页的结构化数据
  2. 02搜索网页并整理研究结果
  3. 03发现站点页面或批量抓取内容
  4. 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.md
references/
batch-patterns.md
error-handling.md
recipes.md
references/nimble-agents/
reference.md
references/nimble-crawl/
reference.md
references/nimble-extract-templates/
reference.md
references/nimble-extract/
browser-actions.md
browser-investigation.md
network-capture.md
parsing-schema.md
reference.md
references/nimble-map/
reference.md
references/nimble-search/
reference.md
search-focus-modes.md
references/nimble-tasks/
reference.md
rules/
nimble-web-expert.mdc
output.md
setup.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发现网站上存在的 URLnimble 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 — 我知道数据位于何处吗?
用户信号路由
要抓取的单个直接 URLnimble extract
指定网站 + 要查询的具体条目(URL/ID)步骤 0 — 先检查是否有 Extraction Template
“查找 URL / 网站地图 / 所有页面”nimble map
“抓取 / 归档整个版块”nimble crawl
完全没有位置信号继续进入关卡 B
指定网站,但没有模板继续进入关卡 B,并将该网站作为来源约束

最常见的重叠情况——网站没有 Extraction Template。 看起来像是在原始 extract(把解析工作都留给用户)和构建模板(超出范围)之间二选一。两者都不对:继续进入关卡 B,最终会选择 Web Search Agent——它能针对任意网站即时配置,并在没有维护中的模板时推理网站结构。这不是需要询问用户的问题;没有适用的模板时,答案始终相同。

步骤 0 — 检查 Extraction Template(指定网站 + 具体条目时)

模板无需编写选择器,即可返回整洁的结构化数据。务必先检查。

始终明确告知,绝不要默默处理:

  1. 告知: “让我检查一下 [site] 是否有 Nimble Extraction Template……”
  2. 报告: “找到 <template_name>——现在使用。” 或 “[site] 没有模板——改用 Web Search Agent。”

查找顺序:

  1. ~/.claude/skills/nimble-web-expert/learned/examples.json → 已学习的模板
  2. nimble extract:templates list --limit 100 → 在客户端按网站/域名筛选,并确认匹配项
  3. 运行前检查架构:nimble extract:templates get --extract-template-name <name>
  4. 没有匹配项 → 路由到 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 runreferences/nimble-extract-templates/reference.md
研究 / 信息补充 / 数据集选择运行模式 → get → resultreferences/nimble-agents/reference.md
直接 URLnimble extractreferences/nimble-extract/reference.md
搜索实时网页nimble searchreferences/nimble-search/reference.md
发现网站上的 URLnimble mapreferences/nimble-map/reference.md
批量抓取某个版块nimble crawl runreferences/nimble-crawl/reference.md
批量模板(最多 1,000 个)nimble extract:templates batchreferences/nimble-extract-templates/reference.md
批量提取(最多 1,000 个)nimble extract-batchreferences/nimble-extract/reference.md
轮询任务 / 批次 / 结果nimble tasks / nimble batchesreferences/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 resultoutput(type:"text" 文本内容或 type:"json" 结构化内容)+ 每项声明的 trust 引用
nimble extractHTML、Markdown 或解析后的 JSON——取决于 --format 和 --parse
nimble search结构化结果数组(标题、URL、描述)
nimble mapURL 列表 + 元数据
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.mdWeb Search Agents — 发现、运行生命周期、编写、信任与引用
references/nimble-extract/reference.mdExtract 标志、渲染层级、浏览器操作、网络捕获、解析器架构
references/nimble-search/reference.mdSearch 标志、全部 8 种 focus 模式
references/nimble-map/reference.mdMap 标志、响应结构
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错误代码、已知的网站问题、故障排除

评论

支持 Markdown