Install
openclaw skills install cms-tbs-trainingTBS训战平台用户端API封装,支持首页聚合、药品场景查询、PPT演讲、训战记录、学习视频、GPTS交互、训练发起等功能
openclaw skills install cms-tbs-training本文件提供能力宪章 + 能力树 + 按需加载规则。详细参数与流程见各模块 openapi/ 与 examples/。
当前版本: v0.80
接口版本:
/tbs/*,使用 nologin 或 access-token 鉴权/gpts/*,使用 access-token 鉴权域名说明:
https://cwork-web-test.xgjktech.com.cnhttps://sg-cwork-web.mediportal.com.cnhttps://sg-al-cwork-web.mediportal.com.cn能力概览(13 块能力):
home:首页聚合(本周训战统计、活动分类、视频学习任务、产品场景列表)drug:药品与场景查询(获取药品列表、场景列表、场景详情、职称列表、热词列表)speech:PPT演讲(获取PPT详情,完成演讲、演讲记录查询)training:训战记录(我的统计数据、记录列表、记录详情含对话回溯)learning:学习视频(视频详情查询、播放进度查询与保存)prepare:训练准备(开场指导获取、开场指导缓存清除)gpts:GPTS核心(获取应用详情、创建会话、SSE对话交互、释放token)basic:基础信息(GPT ID获取、TTS配置获取)scene-image:场景图片管理(重置场景图片)file:文件管理(通过URL上传文件)feedback:反馈相关(获取反馈应用详情、获取反馈GPT ID)training-flow:训练流程公开接口(获取药品列表、训练记录、场景列表)dialogue-flow:训练对话流程可视化(获取对话流程详情)统一规范:
cms-auth-skills/common/auth.mdcms-auth-skills/common/conventions.md授权依赖:
cms-auth-skills 是否已安装cms-auth-skills/common/conventions.md、cms-auth-skills/common/auth.md、cms-auth-skills/openapi/auth/appkey.md、cms-auth-skills/openapi/auth/login.mdnpx clawhub@latest install cms-auth-skills --forcenpx clawhub@latest install https://github.com/spzwin/cms-auth-skills.git --force输入完整性规则(强制):
建议工作流(简版):
SKILL.md 与 cms-auth-skills/common/*,明确能力范围、鉴权与安全约束。openapi/<module>/api-index.md。openapi/<module>/<endpoint>.md 获取入参/出参/Schema。examples/<module>/README.md 组织话术与流程。scripts/<module>/<endpoint>.py 执行接口调用,获取结果。所有接口调用必须通过脚本执行,不允许跳过脚本直接调用 API。脚本使用规则(强制):
openapi/<module>/<endpoint>.md 都必须有对应的 scripts/<module>/<endpoint>.py,不允许"暂无脚本"。scripts/ 下的脚本均可脱离 AI Agent 直接在命令行运行。openapi/<module>/api-index.md。openapi/ 文档为准,脚本仅负责编排调用流程。cms-auth-skills/common/auth.md。意图路由与加载规则(强制):
api-index.md。宪章(必须遵守):
SKILL.md 只描述"能做什么"和"去哪里读",不写具体接口参数。SKILL.md + cms-auth-skills/common/*,只有触发某模块时才加载该模块的 openapi、examples 与 scripts。api-index.md 仅做索引。模块路由与能力索引(合并版):
| 用户意图(示例) | 模块 | 能力摘要 | 接口文档 | 示例模板 | 脚本 |
|---|---|---|---|---|---|
| "查看首页摘要"、"本周训战统计" | home | 获取首页训战统计摘要 | ./openapi/home/api-index.md | ./examples/home/README.md | ./scripts/home/<endpoint>.py |
| "有哪些药品"、"获取药品列表" | drug | 获取启用的药品列表 | ./openapi/drug/api-index.md | ./examples/drug/README.md | ./scripts/drug/<endpoint>.py |
| "查看场景列表"、"根据药品查场景" | drug | 根据药品ID或external_id获取场景列表 | ./openapi/drug/api-index.md | ./examples/drug/README.md | ./scripts/drug/<endpoint>.py |
| "查看场景详情"、"场景职称" | drug | 获取场景详细信息、职称列表、热词 | ./openapi/drug/api-index.md | ./examples/drug/README.md | ./scripts/drug/<endpoint>.py |
| "查看PPT详情"、"PPT演讲" | speech | 获取PPT场景详情,完成演讲、查询演讲记录 | ./openapi/speech/api-index.md | ./examples/speech/README.md | ./scripts/speech/<endpoint>.py |
| "查看训战记录"、"我的统计数据" | training | 获取训战统计数据、记录列表、记录详情 | ./openapi/training/api-index.md | ./examples/training/README.md | ./scripts/training/<endpoint>.py |
| "查看学习视频"、"视频进度" | learning | 获取学习视频详情、查询/保存播放进度 | ./openapi/learning/api-index.md | ./examples/learning/README.md | ./scripts/learning/<endpoint>.py |
| "获取开场指导"、"清除开场缓存" | prepare | 获取开场指导、清除开场指导缓存 | ./openapi/prepare/api-index.md | ./examples/prepare/README.md | ./scripts/prepare/<endpoint>.py |
| "获取GPT应用详情"、"开始训练"、"创建会话"、"提交对话"、"生成点评"、"释放token" | gpts | GPTS核心接口:应用详情、会话管理、SSE对话交互、释放token | ./openapi/gpts/api-index.md | ./examples/gpts/README.md | ./scripts/gpts/<endpoint>.py |
| "获取GPT ID"、"TTS配置" | basic | 获取GPT ID和TTS配置信息 | ./openapi/basic/api-index.md | ./examples/basic/README.md | ./scripts/basic/<endpoint>.py |
| "重置场景图片" | scene-image | 重置场景图片 | ./openapi/scene-image/api-index.md | ./examples/scene-image/README.md | ./scripts/scene-image/<endpoint>.py |
| "上传文件"、"URL上传" | file | 通过URL上传文件 | ./openapi/file/api-index.md | ./examples/file/README.md | ./scripts/file/<endpoint>.py |
| "反馈应用详情"、"反馈GPT ID" | feedback | 获取反馈功能的应用详情和GPT ID | ./openapi/feedback/api-index.md | ./examples/feedback/README.md | ./scripts/feedback/<endpoint>.py |
| "公开训练记录"、"按药品查场景" | training-flow | 公开接口:获取药品列表、训练记录、场景列表 | ./openapi/training-flow/api-index.md | ./examples/training-flow/README.md | ./scripts/training-flow/<endpoint>.py |
| "对话流程详情"、"训练可视化" | dialogue-flow | 获取训练对话流程详情 | ./openapi/dialogue-flow/api-index.md | ./examples/dialogue-flow/README.md | ./scripts/dialogue-flow/<endpoint>.py |
能力树(实际目录结构):
cms-tbs-training/
├── SKILL.md
├── openapi/
│ ├── home/
│ │ ├── api-index.md
│ │ ├── summary.md
│ │ ├── learning-videos.md
│ │ └── product-scenes.md
│ ├── drug/
│ │ ├── api-index.md
│ │ ├── drug-list.md
│ │ ├── scene-list.md
│ │ ├── scene-list-by-drug.md
│ │ ├── scene-doctor-titles.md
│ │ └── scene-hotwords.md
│ ├── speech/
│ │ ├── api-index.md
│ │ ├── speech-detail.md
│ │ ├── speech-finish.md
│ │ └── speech-records.md
│ ├── training/
│ │ ├── api-index.md
│ │ ├── my-stats.md
│ │ ├── records.md
│ │ └── records-detail.md
│ ├── learning/
│ │ ├── api-index.md
│ │ ├── video-detail.md
│ │ ├── video-progress-get.md
│ │ └── video-progress-save.md
│ ├── prepare/
│ │ ├── api-index.md
│ │ ├── opening-guidance.md
│ │ └── opening-guidance-clear.md
│ ├── gpts/
│ │ ├── api-index.md
│ │ ├── app-detail.md
│ │ ├── session.md
│ │ ├── sse-suggest.md
│ │ └── del-user-token.md
│ ├── basic/
│ │ ├── api-index.md
│ │ ├── gpt-id.md
│ │ └── tts-config.md
│ ├── scene-image/
│ │ ├── api-index.md
│ │ └── reset.md
│ ├── file/
│ │ ├── api-index.md
│ │ └── upload-by-url.md
│ ├── feedback/
│ │ ├── api-index.md
│ │ ├── app-detail.md
│ │ └── gpt-id.md
│ ├── training-flow/
│ │ ├── api-index.md
│ │ ├── drugs.md
│ │ ├── records.md
│ │ └── scenes.md
│ └── dialogue-flow/
│ ├── api-index.md
│ └── get-flow-detail.md
├── examples/
│ ├── home/README.md
│ ├── drug/README.md
│ ├── speech/README.md
│ ├── training/README.md
│ ├── learning/README.md
│ ├── prepare/README.md
│ ├── gpts/README.md
│ ├── basic/README.md
│ ├── scene-image/README.md
│ ├── file/README.md
│ ├── feedback/README.md
│ ├── training-flow/README.md
│ └── dialogue-flow/README.md
└── scripts/
├── home/
│ ├── README.md
│ ├── summary.py
│ ├── learning-videos.py
│ └── product-scenes.py
├── drug/
│ ├── README.md
│ ├── drug-list.py
│ ├── scene-list.py
│ ├── scene-list-by-drug.py
│ ├── scene-doctor-titles.py
│ └── scene-hotwords.py
├── speech/
│ ├── README.md
│ ├── speech-detail.py
│ ├── speech-finish.py
│ └── speech-records.py
├── training/
│ ├── README.md
│ ├── my-stats.py
│ ├── records.py
│ └── records-detail.py
├── learning/
│ ├── README.md
│ ├── video-detail.py
│ ├── video-progress-get.py
│ └── video-progress-save.py
├── prepare/
│ ├── README.md
│ ├── opening-guidance.py
│ └── opening-guidance-clear.py
├── gpts/
│ ├── README.md
│ ├── app-detail.py
│ ├── session.py
│ ├── sse-suggest.py
│ └── del-user-token.py
├── basic/
│ ├── README.md
│ ├── gpt-id.py
│ └── tts-config.py
├── scene-image/
│ ├── README.md
│ └── reset.py
├── file/
│ ├── README.md
│ └── upload-by-url.py
├── feedback/
│ ├── README.md
│ ├── app-detail.py
│ └── gpt-id.py
├── training-flow/
│ ├── README.md
│ ├── drugs.py
│ ├── records.py
│ └── scenes.py
└── dialogue-flow/
├── README.md
└── get-flow-detail.py