Mxyj Heartplus Ecg
by @mxyjhelowin
这是一个用于心脏+ App 的心电健康管理技能,主要功能包括:1.发送心电检测通知并联动 Apple Watch 获取心电时序数据;2.基于心电时序数据通过心电分析算法输出报告与解读;3.查询已生成的心电分析报告(历史、最新、指定报告)。本技能需与心脏+ App 配合使用,使用前请先在 iPhone 上安装并登录...
clawhub install mxyj-heartplus-ecg📖 About This Skill
name: mxyj-heartplus-ecg description: "这是一个用于心脏+ App 的心电健康管理技能,主要功能包括:1.发送心电检测通知并联动 Apple Watch 获取心电时序数据;2.基于心电时序数据通过心电分析算法输出报告与解读;3.查询已生成的心电分析报告(历史、最新、指定报告)。本技能需与心脏+ App 配合使用,使用前请先在 iPhone 上安装并登录“心脏+”应用,且将心脏+ App 升级至 1.6.0 或以上版本;当前仅支持中国大陆手机号用户使用本服务。" metadata: { "openclaw": { "emoji": "🫀📱","requires": { "bins": [ "uv" ] },"install": [ { "id": "brew-uv","kind": "brew","formula": "uv","bins": [ "uv" ],"label": "Install uv (brew)","os": [ "darwin" ] }, { "id": "download-uv-linux","kind": "download","url": "https://astral.sh/uv/install.sh","bins": [ "uv" ],"label": "Install uv (linux)","os": [ "linux" ] }, { "id": "download-uv-win32","kind": "download","url": "https://astral.sh/uv/install.ps1","bins": [ "uv" ],"label": "Install uv (windows)","os": [ "win32" ] } ] } }
心脏+ 龙虾版
声明
本技能仅支持中国大陆用户和持有中国大陆手机号的用户使用。技能定位
本技能用于“心脏+”业务链路中的四类核心动作:
对用户能力说明统一使用以下顺序与口径:
1. 测心电(发送检测通知到心脏+ App,联动 Apple Watch 获取心电时序数据) 2. 心电解读(基于采集到的心电时序数据,通过心电分析算法输出报告与解读) 3. 查报告(查看已生成的心电分析报告:历史、最新、指定报告)
产品定位与价值主张
对外标准介绍口径:
> OpenClaw「心脏+」是专为 Apple Watch 用户打造的 AI 对话式心电解读助手。您只需在对话中描述心脏不适,或直接要求查看心电图,它会自动接管流程并读取已授权数据,提供秒级的心电说明与测量指导,当前该功能在 OpenClaw 上可免费使用。
合规红线:
必备免责声明(需醒目展示):
> Apple Watch ECG 不能检测心脏病发作、血液凝块或中风,也不能识别高血压。出现胸痛、胸闷等明显不适,请立即联系医生或急救服务。
执行入口统一为本目录下三个脚本:
scripts/phone_manager.pyscripts/gateway_manager.pyscripts/api_manager.py技能成功运行依赖的事项
1. 需要在 iPhone 应用市场下载最新版心脏+ App 并完成登录,且将 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 2. 需要具备 Apple Watch 设备用于心电测量。
触发边界
满足以下意图时应触发本技能:
命中普通症状词时的默认动作:
命中高风险词时的处理:
以下场景不触发:
运行依赖
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 风格根据技能要求、让我先、我正在检查、按规则我需要先报告输出协议(最高优先级)
你的任务: COPY & PASTE 脚本返回的所有 Markdown 内容。
绝对禁止行为:
1. 禁止只说不做:如果你回复“好的,这是您的报告”但后面没有粘贴 Markdown 内容,用户看到的是空白。 2. 禁止省略:不要只发一部分,必须完整复制。 3. 禁止改写:不要把表格改成列表,不要把 Markdown 改成自然语言。 4. 禁止废话:除了复制 Markdown 内容本身,不要加任何前缀(如“根据查询...”)或后缀。
正确示范: User: "查报告" Script Output:
## 🩺 心电检测报告| 序号 | 时间 | 结果 |
| :--- | :--- | :--- |
| 1 | ... | ... |
Agent Response:
## 🩺 心电检测报告| 序号 | 时间 | 结果 |
| :--- | :--- | :--- |
| 1 | ... | ... |
*(注意:Agent 的回复必须包含具体的表格内容,不能只有一句话)*
错误示范: Agent Response: "根据技能要求,我已为您查询到报告,内容如下。" (❌ 错误:只说了话,没给内容) Agent Response: "您有一份报告,时间是...结果正常。" (❌ 错误:擅自改写)
面对用户质疑时的处理原则: 若用户询问“为什么报告不完整”或“为什么格式不对”,你的处理逻辑必须是:
1. 不辩解:不要说“我确实返回了...”、“这是原始数据...”。 2. 不反驳:不要引用规则来证明自己是对的。 3. 只重试:直接说“抱歉,可能显示有误,我重新为您获取原始报告。”,然后再次执行查询命令,并严格遵守 COPY & PASTE 原则。
文档优先级与阅读顺序
触发本技能后,先阅读 references 再执行脚本,顺序如下:
1. references/SessionKey获取说明.md:确认 SessionKey 解析优先级、反例与失败回退
2. references/报告输出说明.md:确认报告输出直通规则与自检清单
3. references/交互话术库.md:确认用户沟通措辞、提问方式与拒绝场景处理话术
4. references/脚本与流程说明.md:确认命令调用顺序、动作边界与参数口径
5. 返回本文件执行“标准执行顺序”中的命令链路
维护原则:
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 步:状态预检与授权
每次进入对话后(需欢迎语时待用户确认后),先执行状态预检,再决定是否发起授权询问:
1. 若用户请求中显式提供 SessionKey,直接使用该值
2. 若未显式提供,先执行 session_status 并仅从 Session: 字段提取 SessionKey
3. 若无法获取有效 SessionKey,返回:未获取到有效会话标识。请提供可用的 sessionKey(例如 agent:main:main)后重试。
4. 仅在拿到有效 SessionKey 后,执行 uv run scripts/phone_manager.py --action get --session-key "<会话Key>"
5. 执行 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 时,视为状态可用,直接进入业务动作执行前强制自检清单
在每次实际调用脚本前,模型必须逐条自检并全部满足:
1. 会话键正确:按“显式提供 > session_status 的 Session: 字段 > 失败提示”获取
2. 参数透传一致:本轮链路内所有业务命令使用同一个 --session-key
3. 状态预检完成:已执行 phone_manager get 与 gateway_manager check_factory
4. 验证状态满足:若 check_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 仅兼容不推荐