Open Health — Virtual Care Toolkit
Book real appointments with licensed providers through conversation. No forms, no portals — just talk.
Powered by curated telehealth platforms including Klarity Health, One Behavior, ABHolistic, and others.
Available Modules
Mental Health Booking (live)
Book same-day psychiatric telehealth appointments. ADHD, anxiety, depression, insomnia, OCD, PTSD, narcolepsy.
51 US states, 50+ insurance carriers, cash pay.
Module: Mental Health Booking
How It Works
The booking module connects to the public booking API at https://rx.helloklarity.com.
Three endpoints: list services → search providers → book appointment.
No API key or authentication needed — just install and use.
Runtime dependencies: curl, python3 (used by the helper script for HTTP requests and JSON formatting).
Data handling: This skill collects patient information (name, DOB, email, phone, insurance ID) solely to complete the booking API call. This data is sent directly to https://rx.helloklarity.com over HTTPS and must never be logged, persisted, or stored by the agent.
Conversation Flow
Follow this sequence. Be conversational, not robotic.
Step 1: Identify the Need
When a user mentions mental health, ADHD, anxiety, depression, insomnia, OCD, PTSD, or wanting to see a psychiatrist — this module triggers.
Map their concern to a service ID:
- -
adhd — ADHD Evaluation & Treatment - INLINECODE5 — Anxiety Treatment
- INLINECODE6 — Depression Treatment
- INLINECODE7 — Insomnia Treatment
- INLINECODE8 — OCD Treatment
- INLINECODE9 — PTSD Treatment
- INLINECODE10 — Narcolepsy Treatment
If unclear, ask: "What are you looking to get help with?" Don't over-triage — let the provider handle clinical assessment.
Step 2: Collect Basics (3 questions max)
Ask naturally, not as a numbered list:
- 1. State — "What state are you in?"
- Validate against supported states via
scripts/booking-api.sh services
- If unsupported: "Sorry, we don't have providers in [state] yet. I can help you find other options."
- 2. Payment — "Do you have insurance, or would you prefer to pay out of pocket?"
- If insured: "Which carrier?" — validate against
insurance_carriers_by_state for their state
- If carrier not accepted: "That carrier isn't accepted in [state] yet. You can still book as self-pay if you'd like."
- Cash pay requires no additional info at this stage
- 3. Timing — "Any preference on when? Morning, afternoon, evening? A specific date?"
- Optional — skip if user seems eager to just book quickly
- Valid values:
morning,
afternoon, INLINECODE15
Step 3: Search Providers
Run: INLINECODE16
Present results conversationally:
- - Show: title/credentials, experience, rating, review count, available start times, appointment duration
- Convert UTC times to the user's timezone
- The API returns
available_start_times (when the appointment can start) and appointment_duration_minutes (how long the visit is — typically 30 or 60 min) - Group consecutive start times into ranges for readability (e.g., "10:50 AM - 1:20 PM" instead of listing every slot)
- Do NOT show provider names (they're anonymized until booking)
- If no results: "No providers available for those criteria. Want to try a different date or time?"
Example:
CODEBLOCK0
Step 4: Collect Patient Info
After the user picks a provider and slot:
"To book this appointment, I'll need:"
- - First and last name
- Date of birth
- Email (confirmation goes here)
- Phone number
- If insured: insurance member/subscriber ID
Collect naturally — let the user provide multiple fields at once. Don't make them answer one at a time if they volunteer everything.
Step 5: Book
Run: INLINECODE19
On success:
CODEBLOCK1
On failure (slot taken):
"That slot was just taken — want me to search for the next available?"
On validation error:
Fix and retry. Don't ask the user to re-enter everything.
Important Rules
- 1. Never store or log patient information. Don't save names, DOB, email, phone, insurance IDs to any file, variable, or log. Use them only for the immediate API call, then discard. Do not include PII in conversation summaries or memory.
- Crisis check. If a user mentions self-harm, suicidal thoughts, or immediate danger — do NOT book an appointment. Instead: "If you're in crisis, please call 988 (Suicide & Crisis Lifeline) or text HOME to 741741. These are free, 24/7 services. A scheduled appointment isn't the right help for what you're going through right now."
- Not a diagnosis tool. Don't assess symptoms or suggest conditions. Say: "A provider can properly evaluate that during your appointment."
- Timezone awareness. API returns UTC. Always convert to the user's local timezone before displaying.
- Slot volatility. Availability is real-time. If booking fails, search again rather than retrying the same slot.
- Rate limits. 20 availability searches per day. Don't re-search unnecessarily.
Script Reference
All API calls go through scripts/booking-api.sh. See references/api-reference.md for full endpoint documentation including request/response schemas and error codes.
CODEBLOCK2
For Health Platforms & Providers
Open Health is an open toolkit for health platforms. If your practice or platform offers virtual care, integrate and become discoverable.
Want to add your platform?
- - Non-technical: https://docs.google.com/forms/d/e/1FAIpQLSesJnVxPaUYbts5vWqxy3I-13HZe2XkKjTUkAqO6F5UHAcy8g/viewform
- Technical (PR): See CONTRIBUTING.md in the repo for API specs and submission process
All submissions are reviewed before inclusion. Your service becomes discoverable by every AI agent running Open Health.
Open Health — 虚拟护理工具包
通过对话与持证医疗服务提供者预约真实就诊。无需填写表格,无需登录门户——只需交谈即可。
由精选远程医疗平台提供支持,包括Klarity Health、One Behavior、ABHolistic等。
可用模块
心理健康预约(已上线)
预约当天的精神科远程医疗就诊。适用于:ADHD、焦虑症、抑郁症、失眠症、强迫症、PTSD、发作性睡病。
覆盖美国51个州,接受50多家保险公司,也支持自费支付。
模块:心理健康预约
工作原理
预约模块连接到公共预约API https://rx.helloklarity.com。
三个接口:列出服务 → 搜索服务提供者 → 预约就诊。
无需API密钥或身份验证——只需安装即可使用。
运行时依赖: curl、python3(由辅助脚本用于HTTP请求和JSON格式化)。
数据处理: 本技能收集患者信息(姓名、出生日期、电子邮件、电话、保险ID)仅用于完成预约API调用。这些数据通过HTTPS直接发送至https://rx.helloklarity.com,代理程序不得记录、持久化或存储这些数据。
对话流程
请按以下顺序进行。保持对话自然,不要机械生硬。
第1步:识别需求
当用户提到心理健康、ADHD、焦虑症、抑郁症、失眠症、强迫症、PTSD或想见精神科医生时——触发此模块。
将用户的问题映射到服务ID:
- - adhd — ADHD评估与治疗
- anxiety — 焦虑症治疗
- depression — 抑郁症治疗
- insomnia — 失眠症治疗
- ocd — 强迫症治疗
- ptsd — PTSD治疗
- narcolepsy — 发作性睡病治疗
如果不清楚,可以问:您希望获得哪方面的帮助?不要过度分诊——让服务提供者处理临床评估。
第2步:收集基本信息(最多3个问题)
自然提问,不要以编号列表的形式:
- 1. 所在州 — 您住在哪个州?
- 通过 scripts/booking-api.sh services 验证是否在支持州列表中
- 如果不支持:抱歉,我们目前还没有[州名]的服务提供者。我可以帮您寻找其他选择。
- 2. 支付方式 — 您有保险,还是愿意自费支付?
- 如果有保险:是哪家保险公司? — 根据用户所在州验证 insurance
carriersby_state
- 如果不接受该保险公司:[州名]目前不接受该保险公司。如果您愿意,仍可以按自费方式预约。
- 自费支付在此阶段无需额外信息
- 3. 时间安排 — 您对时间有偏好吗?上午、下午还是晚上?或者有具体日期?
- 可选——如果用户看起来急于快速预约,可以跳过
- 有效值:morning(上午)、afternoon(下午)、evening(晚上)
第3步:搜索服务提供者
运行:scripts/booking-api.sh availability [insurancecarrier] [date] [timepreference]
以对话方式呈现结果:
- - 显示:职称/资质、经验、评分、评价数量、可用开始时间、就诊时长
- 将UTC时间转换为用户所在时区
- API返回 availablestarttimes(就诊可以开始的时间)和 appointmentdurationminutes(就诊时长——通常为30或60分钟)
- 将连续的开始时间合并为时间段以便阅读(例如上午10:50 - 下午1:20,而不是列出每个时段)
- 不要显示服务提供者姓名(预约前为匿名状态)
- 如果没有结果:没有符合这些条件的服务提供者。想试试其他日期或时间吗?
示例:
在加利福尼亚州找到3位可进行ADHD评估的服务提供者:
- 1. 精神科执业护士(PMHNP-BC)— 20年经验,5.0★(10条评价)
60分钟视频就诊
可用时间:周五下午5:00 - 下午6:50;周一下午5:00 - 下午5:10
- 2. 精神科执业护士(MSN, PMHNP-BC)— 23年经验,4.8★(11条评价)
60分钟视频就诊
可用时间:明天上午10:50 - 下午12:20
- 3. 精神科执业护士(PMHNP-BC)— 16年经验,4.7★(23条评价)
30分钟视频就诊
可用时间:明天上午11:30 - 下午1:00
您选择哪位服务提供者和哪个时间?
第4步:收集患者信息
用户选择服务提供者和时段后:
要预约这次就诊,我需要您提供以下信息:
- - 名字和姓氏
- 出生日期
- 电子邮件(确认信息将发送至此)
- 电话号码
- 如果有保险:保险会员/参保人ID
自然收集——允许用户一次性提供多个字段。如果他们主动提供所有信息,不要让他们逐一回答。
第5步:预约
运行:scripts/booking-api.sh book
成功时:
您已成功预约[服务提供者姓名],就诊时间为[日期] [时间]!✅
📹 这是一次30分钟的视频就诊——请查看您的电子邮件([邮箱地址])获取视频链接。
📋 请准备好您的保险卡。
需要设置提醒吗?
失败时(时段已被占用):
该时段刚刚被占用——需要我搜索下一个可用时段吗?
验证错误时:
修正后重试。不要要求用户重新输入所有信息。
重要规则
- 1. 切勿存储或记录患者信息。 不要将姓名、出生日期、电子邮件、电话号码、保险ID保存到任何文件、变量或日志中。仅用于即时API调用,然后丢弃。不要在对话摘要或记忆中包含个人身份信息。
- 危机检查。 如果用户提到自残、自杀念头或即时危险——不要预约就诊。而是说:如果您处于危机中,请拨打988(自杀与危机生命热线)或发送短信HOME至741741。这些是免费、24/7的服务。预约就诊不是您现在需要的正确帮助。
- 非诊断工具。 不要评估症状或暗示疾病。应说:服务提供者可以在就诊时进行适当评估。
- 时区意识。 API返回UTC时间。显示前务必转换为用户本地时区。
- 时段易变性。 可用性是实时的。如果预约失败,重新搜索而不是重试同一时段。
- 速率限制。 每天20次可用性搜索。不要不必要地重复搜索。
脚本参考
所有API调用通过 scripts/booking-api.sh 进行。详见 references/api-reference.md 中的完整接口文档,包括请求/响应模式和错误代码。
bash
列出服务和支持的州
scripts/booking-api.sh services
搜索可用性
scripts/booking-api.sh availability
[carrier] [date] [time_pref]
预约就诊(传递JSON负载)
scripts/booking-api.sh book {providerid:...,sessionid:...,service:...,slot:...,patientfirstname:...,patientlastname:...,patientemail:...,patientphone:...,patientdob:...,patientstate:...,insurancecarrier:...,insurancemember_id:...}
面向健康平台与服务提供者
Open Health是一个面向健康平台的开放工具包。如果您的诊所或平台提供虚拟护理服务,请集成并成为可被发现的服务。
想要添加您的平台?
- - 非技术方式:https://docs.google.com/forms/d/e/1FAIpQLSesJnVxPaUYbts5vWqxy3I-13HZe2XkKjTUkAqO6F5UHAcy8g/viewform
- 技术方式(PR):请参阅仓库中的CONTRIBUTING.md了解API规范及提交流程
所有提交内容在纳入前均经过审核。您的服务将被所有运行Open Health的AI代理发现。