mcpField
H
healthcare-providers-enrich

healthcare-providers-enrich

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

关于 healthcare-providers-enrich

这款基于 Nimble 的技能可为现有医疗从业者名单补充经网页核实的信息。它会识别缺失字段、搜索并提取数据,最后提供带来源和置信度的更新。

主要功能

  1. 01识别从业者资料缺失项
  2. 02搜索从业者身份与个人页面
  3. 03提取并合并网页信息
  4. 04可选补充评价与认证信息
  5. 05去重并评估置信度

适用场景

  1. 01补全从业者表格中的空缺
  2. 02为档案添加联系方式或教育经历
  3. 03补充评价或认证信息
  4. 04检查有来源的更新及剩余空缺

MCP 相关

该技能使用 Nimble 网页数据 API;README 提到 MCP 请求在传输层进行归因。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nimbleway/agent-skills --skill healthcare-providers-enrich

安装后在 Claude Code 中输入/healthcare-providers-enrich确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
memory-and-distribution.md
nimble-playbook.md
profile-and-onboarding.md
provider-extraction-patterns.md
wsa-reference.md

详细介绍

医疗服务提供者信息补全

使用 Nimble 的 网络数据 API,通过经过验证的网络数据补全现有从业者列表中的信息缺口。

用户请求:$ARGUMENTS

运行任何命令之前,请先阅读 references/nimble-playbook.md,了解 Claude Code 的约束(无 Shell 状态、不得使用 &/wait、子 Agent 权限、沟通风格)。


说明

步骤 0:预检 + WSA 发现

**同级技能交接检查:**进行完整预检之前,按照 references/nimble-playbook.md 中的同级技能交接模式,检查本次会话中是否已运行 healthcare-providers-extract。如果存在当天的提取输出,则跳过 CLI 检查和配置文件加载,并复用 WSA 第 1/3 层清单。仅当专科发生变化时才重新运行第 2 层。

否则,运行完整预检:按照 references/nimble-playbook.md 执行(同时发起 5 个 Bash 调用:日期计算、今天、CLI 检查、配置文件加载、index.md 加载)。

同时运行 WSA 发现与设置:

  • mkdir -p ~/.nimble/memory/{reports,healthcare-providers-enrich/checkpoints}
  • ls ~/.nimble/memory/healthcare-providers-enrich/checkpoints/ 2>/dev/null
  • 按照 references/wsa-reference.md 运行第 1 层(垂直领域)和第 3 层(通用工具)WSA 发现。第 2 层(会话专属)在步骤 1 后、了解用户的专科后运行。

将发现的 Agent 按阶段分类,并按照 references/wsa-reference.md 使用 nimble extract:templates get 进行验证。

根据预检结果:

  • 缺少 CLI 或未设置 API 密钥 -> references/profile-and-onboarding.md,然后停止
  • 为所有 nimble CLI 调用添加标签:nimble --client-source nimble-agent-skills <subcommand>。MCP 请求在传输层归属;详见 references/nimble-playbook.md。
  • 配置文件存在 -> 记录下来作为上下文。按照 references/nimble-playbook.md 的智能日期窗口规则确定模式:
    • **完整模式:**首次运行,或上次运行距今超过 14 天
    • **快速刷新:**上次运行距今不足 14 天(仅为存在信息缺口的记录补充信息)
    • **当天重复运行:**如果 last_runs.healthcare-providers-enrich 的日期是今天,检查 ~/.nimble/memory/reports/healthcare-providers-enrich-*[today].md 中是否已有报告。 如果存在,请询问:“今天已经运行过。要重新运行以获取最新数据吗?”
  • 不存在配置文件 -> 没问题。此技能无需完成引导设置。继续步骤 1。
步骤 1:解析输入 + 初始问题

**由提取技能接续的快捷方式:**检查是否存在当天的提取报告:

ls ~/.nimble/memory/reports/healthcare-providers-extract-*$(date +%Y-%m-%d).md 2>/dev/null

如果存在当天的报告,从文件名中解析 {slug},并加载 ~/.nimble/memory/healthcare-providers-extract/{slug}/providers.json。诊所域名和页面 URL 模式已知——根据网站的 URL 规则构造个人简介页面 URL,并完全跳过步骤 3。这样可避免进行 N 次不必要的网络搜索。如果不存在当天的报告,则不要复用旧的 providers.json 文件。

按照 references/nimble-playbook.md 中的输入解析模式解析 $ARGUMENTS。主要路由如下:

  • 检测到提取输出(providers.json)-> 继续步骤 2,标记为跳过步骤 3
  • 检测到 CSV/表格/粘贴的数据 -> 继续步骤 2
  • 不明确 -> 询问(计为最多 2 次提问中的 1 次)

如果输入明确,请确认并提出一个用于确定范围的问题(纯文本,不使用 AskUserQuestion):

“在你的列表中找到 N 位服务提供者。快速确认:

  1. 需要补全哪些字段?(联系信息、资质、专科、评价、监管信息,或所有缺失项)
  2. 医疗垂直领域是什么?(眼科、牙科、皮肤科、综合,或其他)”

如果输入不明确,使用 AskUserQuestion(计为最多 2 次提问中的 1 次):

你希望补全哪个服务提供者列表?

  • 直接粘贴服务提供者数据(姓名 + 已知信息,每行一位)
  • 提供 CSV 文件路径或 Google Sheet URL
  • 或描述你手头的资料(例如:“一份包含 50 位眼科医生、仅有姓名和所在州的信息列表”)

跳过用户在初始消息中已经回答的问题。

第 2 步:分析现有数据

将输入解析为结构化记录。对于每位提供者,识别:

  • 已知字段 — 用户已提供的信息(姓名、州、专科等)
  • 缺失字段 — 对照 references/provider-extraction-patterns.md 中的 5 个核心字段(姓名、资质、专科、联系方式、教育背景)找出缺漏
  • 补充目标 — 用户要求的其他字段(评价、监管信息、认证)

提前结束 — 没有缺漏: 如果所有提供者的置信度都已达到 High(5/5 个字段),则跳至第 5 步(WSA 补充),或报告:“所有提供者的档案都已完整。要我改为添加补充数据(评价、临床试验、认证)吗?”

构建缺漏分析摘要:

“正在分析 N 位提供者:

  • 姓名:已提供 N/N
  • 资质:已提供 N/N(缺失 N 项)
  • 专科:已提供 N/N(缺失 N 项)
  • 联系信息:已提供 N/N(缺失 N 项)
  • 教育背景:已提供 N/N(缺失 N 项)

开始补充 N 位存在缺漏的提供者的信息……”

现在已知专科,运行第 2 层 WSA 发现:

nimble extract:templates list --limit 50  # filter items for "[specialty]"
nimble extract:templates list --limit 50  # filter items for "[directory-user-mentioned]"

有关特定会话的发现,请参阅 references/wsa-reference.md。

第 3 步:通过网页搜索识别提供者

对于每位存在缺漏的提供者,查找其执业网站和个人简介页面:

nimble search --query "[provider name] [credentials] [location] [specialty]" --max-results 5 --search-depth lite

搜索策略:

  • 在查询中包含所有已知字段,以区分常见姓名
  • 优先选择执业机构网站的结果,而非目录列表
  • 如果已知提供者的执业机构名称,将其加入查询
  • 对于仅有姓名和州信息的提供者,扩大搜索范围:"[name] [state] doctor"

**结果选择:**选择最相关的结果——执业机构个人简介页面 > 医疗保健目录档案 > LinkedIn。保存所选 URL 以供提取。

对于 10 位及以上的提供者,使用子 Agent(参见下文的子 Agent 策略)。

**检查点(必须):**继续之前,必须写入检查点文件。对于 20 位及以上提供者的中断运行,如果无法恢复,将浪费大量 API 额度。

echo '{...}' > ~/.nimble/memory/healthcare-providers-enrich/checkpoints/{slug}/search.json
第 4 步:提取缺失字段

根据提供者数量选择提取策略。遵循 references/nimble-playbook.md 中的扩展执行模式——其中涵盖单独调用(1–10 位)、extract-batch(11–100 位),以及大型任务的确认关卡。使用同一参考文档中的页面提取与重试模式,以检测无效内容并实现重试逻辑。

使用 references/provider-extraction-patterns.md 中的检测模式(资质正则表达式、专科关键词、联系方式模式、教育背景提及)解析提取内容,找出缺失字段。

合并规则:

  • 仅填写实际缺失的字段——绝不覆盖现有数据
  • 记录新增的字段及其来源 URL
  • 如果提取的数据与现有数据冲突,保留现有值,并标记冲突以供用户审核

**检查点(必须):**继续之前,必须写入检查点文件。

echo '{...}' > ~/.nimble/memory/healthcare-providers-enrich/checkpoints/{slug}/extraction.json
第 5 步:WSA 补充(可选)

如果用户要求评价、监管数据或认证,或者缺漏分析显示大多数核心字段已填写且补充信息更有价值:

**运行第 0 步中发现的补充阶段 WSA。**有关补充阶段映射、Agent 评估和回退链,请参阅 references/wsa-reference.md。

对于每个执业机构或提供者,同时运行相关的补充 Agent。遵循 references/nimble-playbook.md 中的扩展执行模式进行批处理。

将补充数据合并到提供者记录中:

  • 评价/评分 -> 添加为补充字段(不属于 5 个核心字段)
  • 临床试验活动 -> 添加为补充字段
  • 认证状态 -> 添加为补充字段
步骤 6:去重与置信度评分

遵循 references/nimble-playbook.md 中的实体去重和实体置信度评分模式。特定于此技能的去重规则和 5 字段置信度标准见 references/provider-extraction-patterns.md。

特定于信息补充的置信度: 仅为新增字段评分:

  • 高——字段由 2 个或更多来源找到并确认
  • 中——字段由 1 个来源找到
  • 低——字段为推断所得或仅部分匹配
步骤 7:输出

以信息补充差异的形式呈现结果,展示每位服务提供者新增的内容。按执业机构分组,在每组内按置信度排序,并在末尾添加“这意味着什么”部分,列出可执行的后续步骤。

# Provider Enrichment: [N] Providers Updated
*[Date] | [A] fields added across [P] providers | [H] High, [M] Medium, [L] Low confidence*

## TL;DR
Enriched [P] of [T] providers. Added [A] total fields: [breakdown by field type].
[Key finding: e.g., "Found contact info for 18 of 20 providers, 3 have clinical trials"].

## Enrichment Results

| # | Name | Added Fields | Confidence | Source |
|---|------|-------------|------------|--------|
| 1 | Dr. Jane Smith | +credentials (MD, FACS), +contact ((555) 123-4567) | High | [source](url) |
| 2 | Dr. John Doe | +specialty (General Ophthalmology), +education (Wills Eye) | Medium | [source](url) |
| 3 | Dr. Alex Chen | +contact ((555) 987-6543) | Low | [source](url) |

## Detailed Records

### Dr. Jane Smith
**Existing:** Name, State (TX)
**Added:**
- Credentials: MD, FACS — [source](url)
- Contact: (555) 123-4567 — [source](url)
- Education: Fellowship, Bascom Palmer Eye Institute — [source](url)
**Confidence:** High (3 fields added, 2 sources)

[Repeat per provider with additions]

## Providers Not Enriched
[List providers where no additional data was found, with attempted searches]

## Data Quality Summary
- **Fully enriched (5/5 fields):** [N] providers
- **Partially enriched:** [N] providers — common gaps: [list]
- **No new data found:** [N] providers

## Sources
[Clickable URL for every page used, grouped by provider]

## What This Means
[Actionable interpretation: which providers are ready to contact, which need more
data, what the enrichment coverage tells you about this list's quality]

来源链接为必填项。 每个新增字段都必须能追溯到一个来源 URL。

步骤 8:保存到记忆

同时执行所有 Write 调用:

  • 报告 -> ~/.nimble/memory/reports/healthcare-providers-enrich-{slug}-{date}.md
  • 补充后的数据 -> ~/.nimble/memory/healthcare-providers-enrich/{slug}/enriched.json
  • 用户资料 -> 更新 ~/.nimble/business-profile.json 中的 last_runs.healthcare-providers-enrich(仅当用户资料存在时)
  • 遵循 references/memory-and-distribution.md 中的 wiki 更新模式:更新所有受影响实体文件在 index.md 中的行,并为本次运行追加一条 log.md 记录。
  • 清理检查点(完整运行时)或保留检查点(部分运行时)
步骤 9:分享与分发

始终提供分发选项,不要跳过。 遵循 references/memory-and-distribution.md 中的连接器检测和分享流程。

Notion:将完整的信息补充报告作为带日期的子页面。 Slack:仅发送包含信息补充摘要和字段数量的 TL;DR。

步骤 10:后续操作
  • “详细介绍一下 X 医生” -> 显示完整的补充后档案
  • “导出为 CSV” -> 生成包含原始字段和补充字段的 CSV
  • “补充更多字段” -> 扩展目标字段后重新运行
  • “哪些服务提供者仍有信息缺口?” -> 筛选不完整记录

同类技能建议:

后续步骤:

  • 运行 healthcare-providers-verify,验证补充后的资质和执照状态
  • 运行 healthcare-providers-extract,从执业机构网站发现更多服务提供者
  • 运行 market-finder,在此区域查找更多执业机构

子 Agent 策略

对于批量信息补充(10 位或更多服务提供者),使用 nimble-researcher Agent(agents/nimble-researcher.md)并行执行搜索和提取。

遵循 references/nimble-playbook.md 中的子 Agent 启动规则(bypassPermissions、每批最多 4 个、明确的 Bash 指令、失败时的回退方案)。

启动模式: 每 5 位服务提供者分配一个 Agent。每个 Agent 为分配给自己的服务提供者执行步骤 3-4,并返回补充后的记录。告知每个 Agent 对分配给自己的 URL 使用 nimble extract-batch,而非逐个调用 nimble extract;每个 Agent 执行一次批量调用,比按顺序逐个调用更快、更可靠。

小批次优化: 如果服务提供者少于 10 位,则直接在主上下文中运行,而不启动 Agent。

回退方案: 如果任何 Agent 失败,则在主上下文中直接执行对应的信息补充。绝不要让输出中留下信息缺口。


错误处理

标准错误表(缺少 API 密钥、429、401、结果为空、提取内容为垃圾数据)请参见 references/nimble-playbook.md。特定于技能的错误:

  • 未找到该服务提供商的搜索结果:“在 [state] 中找不到 [name] 的网络信息。该名称可能太常见,也可能是该服务提供商没有在线信息。要不要我尝试添加更多背景信息(诊所名称、专科)?”
  • 服务提供商匹配结果不明确:“在 [state] 中找到了多位名为 [name] 的服务提供商。能否确认是哪一位?[列出排名前 3 位及其诊所名称]”
  • 所有提取结果都是垃圾数据:“该服务提供商的网站似乎大量采用了 JavaScript 渲染。正在尝试使用浏览器渲染重新提取……”(按照共享模式,自动使用 --render 重试)
  • CSV/Sheet 解析错误:“无法解析输入文件。需要包含服务提供商名称的列,以及至少一个标识信息(州、专科或诊所)。能否直接粘贴数据?”
  • **未检测到差距:**在步骤 2 中处理(提前退出,转到 WSA 丰富数据或生成报告)。

评论

支持 Markdown