前言¶
在医疗场景里做自动化助手,常见做法是手写 HTTP 客户端、自己维护登录态和验证码流程,再把这些逻辑塞进提示词。步骤多、容易漏配置,也不利于在 Cursor、Claude Code 等环境里复用。
下面介绍 SkillHub 上的社区 Skill「北京大学国际医院患者服务」(坐标 @user_36426f8f/pkuih-patient-service)。它把北京大学国际医院相关患者服务能力封装成 Node.js 模块,并附带 Agent 可读的 SKILL.md 说明,便于在对话中按流程完成查科室、查排班、预约等操作。报告查询与在线缴费在官方 Skill 文档中标注为「即将推出」,挂号相关能力是当前文档里写清的主线。
这是什么¶
一句话定位:面向北大国际医院患者端的 Agent Skill,提供挂号预约相关 API 封装与安全策略说明。
- 发布渠道:SkillHub,来源为
community,分类professional,当前列表版本 1.0.1(以 SkillHub 页面为准)。 - 维护信息:Skill 包内文档标注作者为高坤,上游代码仓库为 Gitee 上的
pkuih_service;SkillHub 发布者为user_36426f8f。 - 解决的问题:统一 API Key 配置、登录与 Token 管理、挂号模块调用方式,让 Agent 按文档执行而不是每次从零拼装接口。
后端 API 基址在 Skill 配置中固定为 https://server.pkucare.com。SkillHub 元数据标签为 requires_api_key=true,使用前必须配置 PKUIH_API_KEY。
核心功能¶
以下能力均来自 Skill 包内 SKILL.md 与模块实现说明,按模块划分。
挂号服务¶
- 查询科室列表(
appointment.getDepartments,公开接口,可扁平化科室树)。 - 查询医生排班(
appointment.getDoctorSchedule(deptCode, startDate, endDate))。 - 预约挂号(
appointment.book(doctor, slot, sequence))。 - 查询预约记录(
appointment.getAppointments)。
辅助能力包括图形验证码、短信验证码、登录与登出(getCaptcha、sendSms、login、logout),以及 loginInteractive 交互式登录(文档中有说明)。
报告与缴费¶
SKILL.md 将检验/检查报告查询、待缴费与在线缴费标为「即将推出」。包内已有 report、payment 模块骨架与部分接口封装,是否在生产环境可用应以医院侧开放范围为准,不宜在 Agent 流程里默认依赖。
安全与状态¶
| 机制 | 说明 |
|---|---|
| Token 有效期 | 30 分钟,过期需重新登录 |
| 敏感操作 | 支付、取消等需重新验证(文档中的安全级别表) |
| 状态文件 | /tmp/pkuih_state.json,登出或过期后清理 |
| API Key | 环境变量 PKUIH_API_KEY 或本地 .pkuih.config.json(勿提交版本库) |
短信验证码在文档中注明 5 分钟有效。
安装与启用¶
前置条件¶
- Node.js:18.0 及以上(见
INSTALL.md)。 - API Key:在微信「北京大学国际医院」小程序申请,或按文档联系医院信息科;格式为长字符串(文档中有示例形态,勿在公开场合粘贴真实 Key)。
通过 SkillHub 安装(推荐)¶
SkillHub 技能页给出的安装提示为:参照 SkillHub 安装说明,安装坐标 @user_36426f8f/pkuih-patient-service。
先确认本机已有 skillhub CLI,再安装到当前 Agent 的 skills 目录。未指定 --dir 时,默认会装到 ./skills/,多数客户端不会自动加载,需显式指定路径。
command -v skillhub && skillhub --version
skillhub install @user_36426f8f/pkuih-patient-service --dir ~/.cursor/skills/
常见 skills 目录(摘自 SkillHub 安装文档):
- Cursor:
~/.cursor/skills/ - Claude Code:
~/.claude/skills/ - Codex:
~/.codex/skills/或项目下.agents/skills/
安装完成后,按各客户端要求刷新或重启,使新 Skill 被索引。
配置 API Key¶
文档强调将 Key 写入 ~/.profile,以便非交互式 shell(含 Node 子进程)能读到环境变量;仅写在 ~/.bashrc 可能导致 process.env.PKUIH_API_KEY 为空。
echo 'export PKUIH_API_KEY="你的 API Key"' >> ~/.profile
source ~/.profile
echo $PKUIH_API_KEY
在 Skill 目录下可运行配置检查:
cd ~/.cursor/skills/@user_36426f8f/pkuih-patient-service
node check-config.js
典型用法¶
下列示例来自 SKILL.md,路径按「已进入 Skill 安装目录」编写;模块入口为 index.js。
登录流程:先取验证码,再发短信,最后用短信码登录。
const pkuih = require('./index.js');
const captcha = await pkuih.getCaptcha();
await pkuih.sendSms('手机号', captcha.captcha_key, captcha.captcha_code);
const user = await pkuih.login('手机号', '短信验证码');
查排班并预约:用 getDateRange 生成日期区间,按科室代码查医生,再选有余量的号位调用 book。
const { startDate, endDate } = pkuih.getDateRange(7);
const doctors = await pkuih.appointment.getDoctorSchedule('005003', startDate, endDate);
const doctor = doctors.find(d => d.name.includes('目标医生姓名'));
const slot = doctor.sch_list.find(s => s.ampm === 'a' && s.remain > 0);
const result = await pkuih.appointment.book(doctor, slot);
跨会话:文档说明登录态可持久化约 30 分钟;新进程中 require 同一模块可尝试恢复状态,超时后需重新登录。
在 Agent 侧,启用该 Skill 后,可将用户自然语言意图(例如「查某科室下周排班」)映射为上述 API 调用顺序,并在预约、支付类操作前按 SKILL.md 要求做确认与重验。
适用场景与注意¶
适合谁
- 需要在开发环境或个人工作流中,把北大国际医院挂号、查排班、查预约记录接到 Agent 的开发者。
- 已能取得合法
PKUIH_API_KEY、并接受社区 Skill 自行维护、与医院官方渠道无直接背书关系的团队。
限制与注意
- 合规与账号:仅能操作本人账号授权范围内的数据;API Key 与 Token 属敏感信息,不要写入仓库或日志。
- 社区来源:SkillHub 标注
community,接口行为、可用科室与号源以医院实际服务为准。 - 功能边界:报告、缴费以文档「即将推出」为准,生产流程请以挂号能力为主做验证。
- 环境:Agent 执行 Node 脚本时须能读到
PKUIH_API_KEY;沙箱或 CI 需单独注入密钥。 - 列表数据:SkillHub 页面显示评分 100000、下载约 1110 次、安装 2 次(抓取时点数据,以后台为准)。
结尾¶
「北京大学国际医院患者服务」把医院患者端挂号相关调用、登录态与安全策略收敛进一个可安装的 Agent Skill,适合在已配置 API Key 的前提下,用 SkillHub 装进 Cursor 等客户端,再按 SKILL.md 驱动对话式预约流程。
- SkillHub 技能页:https://www.skillhub.cn/skills/user_36426f8f/pkuih-patient-service
- 官方坐标地址:https://api.skillhub.cn/user_36426f8f/pkuih-patient-service
- 安装说明:https://skillhub.cn/install/skillhub.md