Install
openclaw skills install mxyj-heartplus-ecgClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
这是一个用于心脏+ App 的心电健康管理技能,主要功能包括:1.发送心电检测通知并联动 Apple Watch 获取心电时序数据;2.基于心电时序数据通过心电分析算法输出报告与解读;3.查询已生成的心电分析报告(历史、最新、指定报告)。本技能需与心脏+ App 配合使用,使用前请先在 iPhone 上安装并登录“心脏+”应用,且将心脏+ App 升级至 1.6.0 或以上版本;当前仅支持中国大陆手机号用户使用本服务。
openclaw skills install mxyj-heartplus-ecg本技能仅支持中国大陆用户和持有中国大陆手机号的用户使用。
本技能用于“心脏+”业务链路中的四类核心动作:
对用户能力说明统一使用以下顺序与口径:
对外标准介绍口径:
OpenClaw「心脏+」是专为 Apple Watch 用户打造的 AI 对话式心电解读助手。您只需在对话中描述心脏不适,或直接要求查看心电图,它会自动接管流程并读取已授权数据,提供秒级的心电说明与测量指导,当前该功能在 OpenClaw 上可免费使用。
合规红线:
必备免责声明(需醒目展示):
Apple Watch ECG 不能检测心脏病发作、血液凝块或中风,也不能识别高血压。出现胸痛、胸闷等明显不适,请立即联系医生或急救服务。
执行入口统一为本目录下三个脚本:
scripts/phone_manager.pyscripts/gateway_manager.pyscripts/api_manager.py满足以下意图时应触发本技能:
命中普通症状词时的默认动作:
命中高风险词时的处理:
以下场景不触发:
uv>=3.10config.json 中需具备可用安全程序下载配置(gateway_downloads)--session-keysession_status 的 Session: 字段提取 > 失败提示session_status 的 Session: 字段提取都不可用时,使用标准失败提示要求用户提供有效 SessionKeyagent:main:main、agent:main:feishu:direct:ou_xxx--session-keystatus 分流校验”链路send_authorize_notify 与 poll_authorization 走 mini/api 直连,不经过 BIN 安全程序--help 参数一致,不使用未实现动作名uv run 风格根据技能要求、让我先、我正在检查、按规则我需要先<critical_instruction> 核心公理:用户看不到工具调用的结果(Tool Output)。 因此,当脚本输出包含心电报告内容(如表格、分析结果)时,你必须显式地、完整地将 Markdown 正文复制到你的回复中。
你的任务: COPY & PASTE 脚本返回的所有 Markdown 内容。
绝对禁止行为:
正确示范: User: "查报告" Script Output:
## 🩺 心电检测报告
| 序号 | 时间 | 结果 |
| :--- | :--- | :--- |
| 1 | ... | ... |
Agent Response:
## 🩺 心电检测报告
| 序号 | 时间 | 结果 |
| :--- | :--- | :--- |
| 1 | ... | ... |
(注意:Agent 的回复必须包含具体的表格内容,不能只有一句话)
错误示范: Agent Response: "根据技能要求,我已为您查询到报告,内容如下。" (❌ 错误:只说了话,没给内容) Agent Response: "您有一份报告,时间是...结果正常。" (❌ 错误:擅自改写)
面对用户质疑时的处理原则: 若用户询问“为什么报告不完整”或“为什么格式不对”,你的处理逻辑必须是:
触发本技能后,先阅读 references 再执行脚本,顺序如下:
references/SessionKey获取说明.md:确认 SessionKey 解析优先级、反例与失败回退references/报告输出说明.md:确认报告输出直通规则与自检清单references/交互话术库.md:确认用户沟通措辞、提问方式与拒绝场景处理话术references/脚本与流程说明.md:确认命令调用顺序、动作边界与参数口径维护原则:
references 是业务话术与流程细节的权威来源references 全文当 bin 目录下的安全程序更新时,需同步更新 config.json 中的 sha256 校验值。
使用以下脚本自动计算并输出哈希值:
uv run scripts/get_bin_hashes.py
第 0 步:状态优先入口判定
每次技能加载或会话启动时,先做会话状态判定,再决定是否展示欢迎语与前置确认:
session_auth_by_session_key=true 且状态预检可用,直接进入用户当前意图动作(测量通知/报告查询),不重复询问安装或登录状态缺失时的标准欢迎语(源自 references/交互话术库.md):
感谢您使用心脏+ App。请先确认您已在 iPhone 安装并登录心脏+ App 且版本不低于 1.6.0,下载链接:https://apps.apple.com/cn/app/%E5%BF%83%E8%84%8F-%E5%BF%83%E7%8E%87-%E5%BF%83%E8%B7%B3-%E5%BF%83%E8%84%8F%E5%81%A5%E5%BA%B7%E6%A3%80%E6%B5%8B/id1584620848 本服务当前仅支持中国大陆手机号用户使用。 若您已完成上述准备,请回复“确认 / y / yes / 是”。
第 1 步:状态预检与授权
每次进入对话后(需欢迎语时待用户确认后),先执行状态预检,再决定是否发起授权询问:
session_status 并仅从 Session: 字段提取 SessionKey未获取到有效会话标识。请提供可用的 sessionKey(例如 agent:main:main)后重试。uv run scripts/phone_manager.py --action get --session-key "<会话Key>"uv run scripts/gateway_manager.py --action check_factory --session-key "<会话Key>"决策规则:
phone_manager get 成功:表示已存在手机号,跳过“手机号授权/索取手机号”话术phone_manager get 失败:才进入“手机号收集分支”check_factory 返回 True:表示安全校验状态可用,跳过“安全校验授权/verify引导”话术check_factory 返回 False 或报错:才进入“发送授权通知后按 status 分流(短信验证码/App 授权)”引导session_auth_by_session_key=true 且 check_factory=True 时,视为状态可用,直接进入业务动作在每次实际调用脚本前,模型必须逐条自检并全部满足:
session_status 的 Session: 字段 > 失败提示”获取--session-keyphone_manager get 与 gateway_manager check_factorycheck_factory 非 True,先执行 send_authorize_notify,再按返回 status 分流校验用户提示最小化模板:
请提供 11 位手机号(例如 13800138000)。请先在 iPhone 安装并登录心脏+ App,并升级至 1.6.0 或以上版本,下载链接:https://apps.apple.com/cn/app/%E5%BF%83%E8%84%8F-%E5%BF%83%E7%8E%87-%E5%BF%83%E8%B7%B3-%E5%BF%83%E8%84%8F%E5%81%A5%E5%BA%B7%E6%A3%80%E6%B5%8B/id1584620848 ,完成后回复“已安装并登录”。请在心脏+ App 完成授权,完成后回复“已授权”;如未收到通知,请回复“重新发送授权通知”。我已发送短信验证码,请把验证码发给我,我会立即完成校验。授权已确认,我继续为您处理下一步。# 场景A:下发检测通知(用户意图:做检测、测心电)
uv run scripts/api_manager.py --action measure_notify --session-key "agent:main:main"
# 场景B:身份验证(仅当 check_factory 失败时)
uv run scripts/phone_manager.py --action save --phone 13800138000 --session-key "agent:main:main"
uv run scripts/api_manager.py --action send_authorize_notify --session-key "agent:main:main"
# 当 send_authorize_notify 返回 status=1:
# 等用户回复“已授权”后再执行:
uv run scripts/api_manager.py --action poll_authorization --max-wait-seconds 45 --interval-seconds 3 --session-key "agent:main:main"
# 当 send_authorize_notify 返回 status=0:
uv run scripts/api_manager.py --action verify_code --code 123456 --session-key "agent:main:main"
# 场景C:查询报告(用户意图:查报告、看结果)
uv run scripts/api_manager.py --action report_list --page-num 0 --page-size 10 --session-key "agent:main:main"
uv run scripts/api_manager.py --action report_detail --index 1 --session-key "agent:main:main"
uv run scripts/api_manager.py --action report_detail --report-no 报告编号 --session-key "agent:main:main"
uv run scripts/api_manager.py --action latest_report --session-key "agent:main:main"
status 走短信验证码校验或授权轮询--index 或 --report-no,--report-id 仅兼容不推荐