dsh-endurance-coach:基于 Intervals.icu 的耐力训练教练技能包

前言

在 DeepSeek Harness(DSH)里做耐力训练相关助手时,常见做法是让用户口头描述最近的跑量、心率或主观疲劳,再由模型给建议。问题在于:训练负荷、Wellness、课表与实际活动若不能从同一数据源读取,模型容易补全缺失数字;把周计划写进日历又往往需要人工在 Intervals.icu 里逐条录入。若你已经在 Intervals.icu 上管理跑步或骑行数据,更希望智能体在「有数据再说话」的前提下,完成今日是否训练、滚动周计划、赛后复盘等可落地决策,并把确认后的课表写回日历,社区插件 dsh-endurance-coach(技能名 endurance-coach,包名 dsh-endurance-coach)即是针对这一路径打包的可安装技能提供方(skill provider)bundle。

这是什么

Endurance Coach(耐力教练) 由维护者 xsnnnnnn 发布,在 DSH 社区目录中归类为 工作流。插件将一套 endurance-coach 技能注册进 DSH 技能目录,模型可通过常规的 skill 工具加载;技能正文与脚本随包分发,不在包内捆绑个人运动员数据,阈值与目标等落在你的工作区文件中。

数据面仅对接 Intervals.icu:活动、间歇、流数据、训练负荷(含 CTL/ATL/TSB/rampRate)、Wellness(静息心率、HRV、在床睡眠、eFTP 等)、功率曲线,以及训练日历(get_events 读取,add_or_update_event 写入或更新,delete_event 删除)。天气调整通过捆绑脚本调用 Open-Meteo 公共 API,无需账号。包本身 零 npm 运行时依赖;捆绑 Python 脚本仅使用标准库(需 Python 3.10+)。许可证为 MIT;package.json 当前版本为 1.1.0。GitHub 仓库星标数为 0(以目录页为准)。

核心能力:五条工作流与硬约束

下面介绍插件 README 中归纳的五条工作流,以及模型与脚本共同遵守的护栏。

五条工作流

工作流 典型触发 输出
W1 · Today 「今天要不要练?」/ 晨间检查 训练 / 谨慎 / 休息 判定;当日课与天气备注;一条提醒
W2 · Week 「帮我排这一周」/ 调整计划 滚动两周安排(阶段、课型配比、天气感知排课);经你确认后写回 Intervals.icu 日历事件
W3 · Review 「复盘这次跑/骑」/ 「这周怎么样」 基于完成情况的复盘:得失与下一步调整
W4 · Race prep 赛前 2–4 周 减量曲线、分段配速、补给方案、湿热修正、恢复周
W5 · Reassessment 约每 4 周或出新成绩后 重算 VDOT/阈值;仅在变化有意义时整体替换区间

能力侧还包括:readiness 门控、VDOT 配速区间、会话回顾、比赛日配速与补给、天气修正课表——与简介及 README 描述一致。

非协商护栏(节选)

  • 安全优先于科学与效率;缺数据时明确报告缺失,不臆造。
  • 算术由 scripts/*.py 完成(VDOT、配速换算、readiness、补给、天气等),模型转述结果。
  • 单次调整幅度有上限(例如单次最多约 ±30%、每周最多两次主动调整;连续三天红灯触发约 20–30% 减量周等,详见技能文档)。
  • 每次向 Intervals.icu 日历写入、修改或删除前,先说明并征得确认;回答中不暴露内部活动/事件 ID。
  • 不提供医疗诊断;持续疼痛、胸闷、心悸等情形应停止训练并就医。

若未配置 Intervals.icu MCP,技能会说明数据不可用,也可在仅有人工提供数字的场景下有限使用。

安装与启用

环境要求:DeepSeek Harness >= 0.2.1-rc.1、Node.js >= 20。package.json 中 engines 与 dsh.compatibility 还标明与部分 0.2.1-rc.5、0.2.2-rc.1 发行版兼容。

先做安装,再重启或重载 profile,使技能出现在目录中:

dsh plugin --profile desktop add 'github:xsnnnnnn/dsh-endurance-coach'

安装后重启 DSH(或重载 profile)。验证 bundle 是否挂载:

dsh --profile desktop --dump-config    # 查找 id 为 dsh-endurance-coach 的条目
dsh plugin --profile desktop list      # 依赖列表中应出现 dsh-endurance-coach

卸载:

dsh plugin --profile desktop remove dsh-endurance-coach

若使用本地检出目录而非 GitHub,可将 add 指向包目录(pnpm 会链接):

dsh plugin --profile desktop add /path/to/dsh-endurance-coach

注意: 插件在 当前 DSH 进程权限 下运行;安装前请自行阅读仓库源码与 MIT 许可证,确认符合你的安全与合规要求。社区目录站点与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。

首次配置:运动员档案与工作区路径

技能刻意不把个人数字写入包内,而是从工作区读取 JSON,并把计划调整记录写到 Markdown 日志:

<your-workspace>/coach/athlete.json     # 阈值、目标、可训练日等
<your-workspace>/coach/decisions.log.md # 计划调整流水

建议按下面步骤初始化:

  1. 在工作区目录中,让智能体执行初始化,或手动运行捆绑脚本。已安装技能目录通常在
    <DSH_HOME>/profiles/<profile>/node_modules/dsh-endurance-coach/skill/endurance-coach:
   cd /path/to/your-workspace
   python <skill-dir>/scripts/init_athlete.py
  1. 编辑 coach/athlete.json,填入真实阈值、目标与每周可用时间;模板中的示例值均为虚构,必须替换。
  2. 若希望教练文件不在默认的 <workspace>/coach,可设置环境变量
    ENDURANCE_COACH_DIR=/absolute/path。

init_athlete.py 默认不覆盖已有文件,除非传入 --force。README 提示:上述文件含训练数据,宜私有版本管理,勿公开发布。

外部依赖:Intervals.icu MCP 与天气

组件 需求 说明
Intervals.icu MCP 服务(mcp__intervals__) 活动、负荷、Wellness、功率曲线、日历读写
Python 3.10+ 仅标准库脚本
天气 Open-Meteo 捆绑 weather.py 调用公共 API,无需注册

安装插件不等于自动具备 Intervals.icu MCP;需在 DSH 环境中单独配置该 MCP 后,W1–W5 中与平台数据相关的步骤才能完整执行。

典型用法(可复现的交互方式)

完成安装、初始化 athlete.json 并接好 Intervals.icu MCP 后,在对话中加载 endurance-coach 技能,用自然语言触发对应工作流即可,例如:

  • 晨间:「今天要不要训练?」 → W1:结合 readiness 与天气给出 go / caution / rest,并附当日课建议。
  • 周计划:「帮我排接下来两周,考虑下周要比赛」 → W2:给出阶段化课表草案;你确认后,再通过 MCP 将事件写入 Intervals.icu 日历。
  • 课后:「复盘昨天那次间歇骑」 → W3:对照完成情况做回顾。
  • 赛前:「三周后有一场比赛,帮我做减量和补给」 → W4。
  • 定期:「根据最近成绩更新一下阈值和配速区间」 → W5。

上述句式来自 README 对工作流触发场景的归纳;具体话术可自拟,技能按 SKILL.md 与 references 中的规则路由到对应流程。

适用场景与注意

适合: 已将训练与计划集中在 Intervals.icu 的跑步/骑行爱好者或自建教练工作流者;希望在 DSH 内用统一技能完成「读平台数据 → 脚本算指标 → 人审后写回日历」闭环的开发者。

不适合或需自备条件: 未使用 Intervals.icu、且不愿配置其 MCP 的用户——多数自动化读写信道不可用;不接受「每次写日历前确认」的用户——插件设计明确禁止静默改写课表。

再次强调:审视 GitHub 仓库 源码后再安装;运动员数据仅存于你的工作区,由你控制备份与隐私。

结尾

dsh-endurance-coach 把 Intervals.icu 作为唯一训练数据源,用脚本固化 VDOT、readiness 与天气等计算,用五条工作流覆盖从「今天练不练」到赛前减量与周期重评;在 DSH「一切皆插件」的生态里,属于把工作流钉在真实日历与真实负荷上的一类技能包。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye