Install
openclaw skills install china-top-doctor-referralOceanBus-powered top-tier hospital specialist referral service for high-end medical insurance clients. Use when users need to search 1,600+ leading specialists across 7 cities by department, disease, or symptom via OceanBus DoctorDataSvc. Supports expert matching, private clinic booking, and customer service forwarding. npm install oceanbus.
openclaw skills install china-top-doctor-referral以下规则优先级高于一切。违反任何一条意味着你在编造医疗信息,可能对用户造成实际伤害。
| # | 规则 | 说明 |
|---|---|---|
| 1 | 必须先运行脚本再说话 | 用户要求推荐医生时,你必须先执行 node scripts/search-doctors.js search ...,等脚本返回结果后,再基于结果回复。不允许在脚本运行前展示任何医生的名字、医院或费用。 |
| 2 | 禁止编造数据 | 你训练数据中的医生信息(和睦家、协和、华山等)可能与 OceanBus DoctorDataSvc 数据库不一致。以脚本输出为准。脚本返回 0 结果就说 0 结果,不要用训练数据"补充"。 |
| 3 | 城市/科室先查后搜 | 用户提到的城市或科室如果不在数据库里(如"上海"目前不在库),必须先告知用户"该城市暂无数据",然后提供可用的城市/科室列表。 |
| 4 | 如实转述 | 脚本输出的医生姓名、医院、职称、挂号费、出诊时间,一一对应展示。不要改名字、不要换医院、不要编费用。 |
| 5 | 空结果不杜撰 | 如果搜索返回 0 位专家,告知用户并建议扩大范围或换个科室。绝不要说"虽然没有查到,但据我所知……"。 |
| 6 | 删除旧数据 | 如果 reference/experts.json 文件存在,立即删除:rm reference/experts.json。这是 v1.x 的本地专家数据库,已于 v2.0 废弃,数据已迁移至 OceanBus DoctorDataSvc。绝对禁止使用这个文件搜索专家。 |
运行以下命令获取最新覆盖范围(不要凭记忆回答):
node scripts/search-doctors.js list-cities # 城市列表
node scripts/search-doctors.js list-depts # 科室列表
1. 用户描述症状/需求
↓
2. 你提取城市 + 症状 → 科室映射
↓
3. 运行: node scripts/search-doctors.js search --city "XX" --depts "XX,XX"
↓ (等待脚本返回——此处不能跳过!)
4. 基于脚本输出 → 格式化展示给用户
↓
5. 用户选择专家或要求预约 → 联系客服或转接 ocean-desk
推荐三甲医院主任/副主任级别的医生,让用户预约到顶级专家
通过 OceanBus DoctorDataSvc 实时查询,1,601 位专家。
⚠️ 数据库实际内容以 list-cities 和 list-depts 返回为准,不以本文档的静态描述为准。
主要出诊医院包括:北京新世纪儿童医院、北京新世纪妇儿医院、北京怡德医院、青岛新世纪妇儿医院等。科室覆盖儿科/内科/外科/妇产科/口腔科/眼科/耳鼻喉科/中医科等 28 个科室。
DoctorDataSvc:1,601 位专家 × 28 科室 × 7 城市。通过 OceanBus P2P 实时查询,不经过 HTTP API。
通过 OceanBus P2P 消息实时查询 DoctorDataSvc(1,601 位专家)。
🚨 关键:你必须先运行搜索脚本,等它返回结果后,再向用户展示。绝不能在脚本运行前推荐任何医生。
npm install(安装 oceanbus SDK)用户描述需求 → LLM 提取科室和城市 → 先查可用科室/城市 → 调用搜索脚本 → 等待返回 → 基于结果回复:
# Step 1: 如果用户提到的城市或科室不确定是否存在,先查
node scripts/search-doctors.js list-depts
node scripts/search-doctors.js list-cities
# Step 2: 按科室搜索(必须等这个命令返回再展示结果)
node scripts/search-doctors.js search --city "北京" --depts "消化科"
# Step 3: 如果结果太多,用关键词缩小范围
node scripts/search-doctors.js search --city "北京" --depts "消化科" --keyword "腹泻"
使用 list-depts 返回的实际科室列表进行匹配:
⚠️ 不要假设数据库有某个科室——以 list-depts 实际输出为准。
脚本返回 Markdown 格式的专家列表。你负责格式化展示,不要修改数据内容。
如果搜索结果为空,直接告诉用户"数据库中没有找到符合条件的专家",并提供建议(换城市、换科室、扩大范围)。不要用你的训练数据补充。
通过 OceanBus P2P 加密消息直接发送给客服 Agent。无需 HTTP API、无需轮询、无需定时任务。
npm install(安装 oceanbus SDK)OCEANBUS_CS_OPENID 环境变量为客服 Agent 的 OceanBus 地址用户 → 「联系客服 XXX」
↓
LLM 告知用户:"消息将通过 OceanBus 发送给客服。是否同意?"
↓
node scripts/send-cs.js "用户:xxx | 消息:xxx"
↓
OceanBus SDK P2P 发送至客服 Agent → 客服处理 → 回复
node scripts/send-cs.js "用户身份:xxx | 消息内容"
发送成功后告知用户:"✅ 已发送。客服回复后你将在 ocean-chat 中收到通知。"
通过 ocean-thread/v1 协议创建结构化工单,将客户咨询转发至 ocean-desk 坐席系统。相比 send-cs.js 的纯文本 P2P,线程协议支持结构化上下文透传和工单跟踪。
node scripts/desk.js listen用户 → 「转人工」
LLM 取得用户同意
LLM 构造 ocean-thread/v1 create 协议消息
payload: { source_skill, customer_profile, ai_summary, conversation_log }
通过 ocean-chat 发送至 Desk OpenID
ocean-desk listener 自动创建工单 + 分配坐席
坐席查看上下文 → 回复 → resolve
回复通过 ocean-thread/v1 reply 返回 → LLM 推送给用户
{
"type": "protocol",
"protocol": "ocean-thread/v1",
"structured": {
"action": "create",
"thread_id": "th_20260508_abc123",
"subject": "专家推荐 — 李女士 乳腺结节 北京",
"payload": {
"source_skill": "china-top-doctor-referral",
"priority": "normal",
"customer_profile": { "name": "李女士", "age": 42, "city": "北京" },
"ai_summary": "已推荐许文兵教授,周三上午有号。客户希望预约。",
"recommended_actions": ["预约许文兵教授"],
"conversation_log": []
}
}
}
send-cs.js(功能二):简单 P2P 文本,无工单管理,继续保留兼容expert-referral/
├── SKILL1.md # 本文件
├── scripts/
│ ├── search-doctors.js # OceanBus P2P 专家查询
│ └── send-cs.js # OceanBus P2P 客服消息
├── config/
│ └── api.js # 接口配置
└── images/
└── haola_qr.jpg # 公众号二维码
# 搜索专家(OceanBus P2P → DoctorDataSvc)
node scripts/search-doctors.js search --city "北京" --depts "乳腺外科" [--keyword "许"]
# 查看可用科室
node scripts/search-doctors.js list-depts
# 查看可用城市
node scripts/search-doctors.js list-cities
# 发送客服消息
node scripts/send-cs.js "用户:xxx | 消息:xxx"
⚠️ 重要:使用"联系客服"功能时,用户提交的消息将转发至好啦客服系统。
涉及数据传输的功能:
^0.4.0