安全扫描
OpenClaw
可疑
medium confidence功能总体与描述一致,但文档中要求在运行时安装外部依赖(通过 npx / GitHub)且未声明必需的访问令牌环境变量,存在可疑不一致与供应链风险,建议在信任之前核实依赖源码与访问令牌范围。
评估建议
该技能的功能说明、openapi 文档和 Python 脚本在功能上是一致的(都对接 cwork-api.mediportal.com.cn),但存在两处不一致与潜在风险:
1) 元数据没有列出任何必需环境变量或主凭据,但所有脚本都需要 XG_USER_TOKEN(access-token);在安装或运行前,请确认要提供的 access-token 的范围与权限,仅在可信环境下提供,避免使用高权限或长期凭证。2) SKILL.md 指示在运行时用 npx 安装 cms-auth-skills(优先 npm 包,降级到 GitHub 仓库),这会从网络下载并执行外部代码;在允许代理自动执行这些安装命令前,请人工审查 cms-auth-skills 仓库(或要求发布者提供可信来源/签名的包)。
建议措施:
- 向技能发布者索取完整的 requires.env / primary credential 声明,确保 XG_USER_TOKEN 的声明与最小权限原则一致。
- 在受控环境中先手动审查并(如果接受)手动安装 cms-auth-skills;优先检查 https://githu...详细分析 ▾
ℹ 用途与能力
技能名与描述(模版检索、报告任务管理等)与脚本和 openapi 文档中调用的 https://cwork-api.mediportal.com.cn/ai-report/* 接口一致,功能实现(list/create/update/delete、任务创建/轮询/详情/章节编辑/版本)与声明匹配。但 registry metadata 声明“无需环境变量/凭据”,与脚本实际使用 XG_USER_TOKEN(access-token)不一致。
⚠ 指令范围
SKILL.md 明确指示运行时读取另一个技能 cms-auth-skills 的 SKILL.md 并在缺失时执行 npx clawhub@latest install cms-auth-skills --force / 或从 https://github.com/spzwin/cms-auth-skills.git 安装;这是超出单纯“调用 API”的范围,要求在运行时下载并安装外部代码。脚本本身仅与声明的生产域交互并通过环境变量传入参数,没有发现额外的数据收集或意外外发,但 SKILL.md 给代理广泛的自由去安装/读取其他技能的配置——这是需要关注的范围扩展。
⚠ 安装机制
包为“instruction-only”但 SKILL.md 指示使用 npx clawhub@latest install ... 或从 GitHub URL 安装 cms-auth-skills。虽然备用 URL 指向 GitHub(比未知私人主机好),但运行 npx 安装会在运行时从网络拉取并执行代码,增加供应链/执行风险。没有官方 install spec 声明由平台审计安装包,这一点值得注意。
⚠ 凭证需求
注册表元数据声明没有必需环境变量或主凭据,但所有脚本明确依赖 XG_USER_TOKEN(access-token)以及多个操作还依赖 TASK_ID、MOBAN_ID、QUESTION_ID、RESULT 等环境变量——这些未在元数据中列出,造成不一致。请求的凭据(access-token)与技能用途相关,但未声明会导致权限/告知问题;应核实 access-token 的权限范围并谨慎提供。
ℹ 持久化与权限
技能未设置 always:true,也未声明写入其它技能或系统配置。但 SKILL.md 要求在运行时安装另一个技能,这会修改代理环境(安装 cms-auth-skills)。单独自动调用并非默认问题,但结合安装指令,存在较高的供应链影响面——在允许代理自动安装之前应审查依赖。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/15
初始版本
● 无害
安装命令
点击复制官方npx clawhub@latest install ai-intelligence-report
镜像加速npx clawhub@latest install ai-intelligence-report --registry https://cn.longxiaskill.com
技能文档
本文件提供能力宪章、能力树与按需加载规则。详细参数与流程见各模块 openapi/ 与 examples/。
当前版本: v1.6
能力概览(3 块能力):
moban:模版列表检索、模版详情查看、模版新建、模版编辑、模版发布/下架、模版删除task:任务创建、进度查询、报告详情、任务列表、章节改写、版本历史capability:能力咨询与边界说明(回答“你能做什么/不能做什么”)
接口版本: 所有业务接口统一使用 https://cwork-api.mediportal.com.cn/ai-report/ 前缀,鉴权类型按接口文档声明执行(本 skill 当前业务接口均为 access-token)。
统一规范:
- 认证与鉴权:
cms-auth-skills/SKILL.md - 通用约束:
cms-auth-skills/SKILL.md
授权依赖:
- 当接口声明需要
appKey或access-token时,先尝试读取cms-auth-skills/SKILL.md - 如果已安装,直接按
cms-auth-skills/SKILL.md中的鉴权规则准备对应appKey或access-token - 如果未安装,先执行
npx clawhub@latest install cms-auth-skills --force - 如果上面的安装方式不可用,再执行
npx clawhub@latest install https://github.com/spzwin/cms-auth-skills.git --force - 安装完成后,再继续执行需要鉴权的操作
输入完整性规则(强制):
- 模版场景至少提供分页信息(
pageNum、pageSize)或明确mobanId - 生成报告至少提供
mobanId、taskName - 查询详情或进度需提供
taskId - 章节改写与版本查询需提供
questionId
建议工作流(简版):
- 读取
SKILL.md与cms-auth-skills/SKILL.md,明确能力范围、鉴权与安全约束。 - 识别用户意图并路由模块:
moban、task、capability,先打开对应api-index.md。 - 确认具体接口后,加载对应 endpoint 文档获取入参、出参与 Schema。
- 补齐用户必需输入;若是能力咨询场景,仅返回标准能力边界,不执行脚本。
- 参考
examples/moban/README.md、examples/task/README.md、examples/capability/README.md组织话术与流程。 - 对有接口的场景执行对应 Python 脚本,输出 JSON 结果并做最小必要信息提取。
脚本使用规则(强制):
- 每个
openapi/moban/.md、openapi/task/*.md都必须有对应脚本。 - 所有业务脚本输出必须为 JSON 格式。
- 脚本必须可独立命令行执行。
- 仅允许生产域名与生产协议。
- 出错重试间隔 1 秒,最多 3 次,禁止无限重试。
- 严禁虚构工具名或命令(例如
oracle template query)。若环境受限,只能说明受限条件与补齐步骤。
能力咨询标准回复(强制):
- 当用户问“你可以做什么/你能做什么/你支持哪些操作/你是谁”时,必须路由到
capability。 capability仅返回本 skill 的真实能力,不得扩展到未定义工具或外部命令。- 输出必须包含三段:能做什么、不能做什么、下一步引导(查模版、发起任务、查进度、改章节)。
- 能力咨询场景禁止执行脚本,也禁止先下“环境变量缺失”的结论。
意图路由与加载规则(强制):
- 模版选择与推荐 ->
moban - 报告生成、进度与详情 ->
task - 章节手改与版本追溯 ->
task - 能力咨询与自我介绍 ->
capability - 超出上述范围(如 chat 对话建模版)不在本 skill 范围内
宪章(必须遵守):
- 本 skill 仅覆盖
docs/AI情报agent说明(1).md与docs/ai情报agent_定义规范.md定义场景。 - 不暴露 token、内部主键等敏感信息。
- 不猜测缺失参数,必须追问补齐。
- 不执行越权与危险操作。
- 章节编辑保存前,必须先向用户展示编辑后的完整内容并等待明确确认。
- 不杜撰不存在的命令、MCP 工具、CLI 工具或环境变量缺失结论。
- 鉴权失败时,只能按
cms-auth-skills/SKILL.md的鉴权规则检查,并明确已检查到哪一步、下一步缺什么。
模块路由与能力索引:
| 用户意图(示例) | 模块 | 能力摘要 | 接口文档 | 示例模板 | 脚本 |
|---|---|---|---|---|---|
| 找可用模版、按关键词筛选模版 | moban | 模版检索 | ./openapi/moban/api-index.md | ./examples/moban/README.md | ./scripts/moban/list-moban.py |
| 查看模版章节结构 | moban | 模版详情 | ./openapi/moban/api-index.md | ./examples/moban/README.md | ./scripts/moban/moban-detail.py |
| 新建模版(定义章节与提示词) | moban | 模版新建 | ./openapi/moban/api-index.md | ./examples/moban/README.md | ./scripts/moban/create-moban.py |
| 编辑已有模版(更新结构与提示词) | moban | 模版编辑 | ./openapi/moban/api-index.md | ./examples/moban/README.md | ./scripts/moban/update-moban.py |
| 模版发布/下架(控制模版可见状态) | moban | 模版状态切换 | ./openapi/moban/api-index.md | ./examples/moban/README.md | ./scripts/moban/change-moban-state.py |
| 删除废弃模版 | moban | 模版删除 | ./openapi/moban/api-index.md | ./examples/moban/README.md | ./scripts/moban/delete-moban.py |
| 发起报告任务 | task | 创建任务 | ./openapi/task/api-index.md | ./examples/task/README.md | ./scripts/task/start-task.py |
| 查询任务进度和报告详情 | task | 进度与详情 | ./openapi/task/api-index.md | ./examples/task/README.md | ./scripts/task/check-task.py |
| 手动修改某个章节并看版本历史 | task | 章节编辑 | ./openapi/task/api-index.md | ./examples/task/README.md | ./scripts/task/update-question-result.py |
| 你可以做什么、你能做什么、你是谁 | capability | 能力边界说明 | ./openapi/capability/api-index.md | ./examples/capability/README.md | ./scripts/capability/README.md |
ai-intelligence-report/
├── SKILL.md
├── openapi/
│ ├── moban/
│ │ ├── api-index.md
│ │ ├── list-moban.md
│ │ ├── moban-detail.md
│ │ ├── create-moban.md
│ │ ├── update-moban.md
│ │ ├── change-moban-state.md
│ │ └── delete-moban.md
│ ├── capability/
│ │ └── api-index.md
│ └── task/
│ ├── api-index.md
│ ├── start-task.md
│ ├── check-task.md
│ ├── task-detail-v2.md
│ ├── list-task-by-page.md
│ ├── update-question-result.md
│ └── list-result-version.md
├── examples/
│ ├── moban/README.md
│ ├── capability/README.md
│ └── task/README.md
└── scripts/
├── capability/
│ └── README.md
├── moban/
│ ├── README.md
│ ├── list-moban.py
│ ├── moban-detail.py
│ ├── create-moban.py
│ ├── update-moban.py
│ ├── change-moban-state.py
│ └── delete-moban.py
└── task/
├── README.md
├── start-task.py
├── check-task.py
├── task-detail-v2.py
├── list-task-by-page.py
├── update-question-result.py
└── list-result-version.py