OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
社区运行状况
注册会员 172
主题 47
回复 7
节点 134
模型 1982
今日统计
新用户 2
新主题 1
技能包   文档  

在技能中使用脚本

如何在技能包中运行命令、打包可执行脚本,以及如何为助手设计易于调用的脚本接口。

技能既可以指导助手执行 shell 命令,也可以在 scripts/ 目录中打包可复用脚本。本文涵盖:一次性命令(直接调用已有工具)、自带依赖的独立脚本、以及在 SKILL.md 中如何列出并引用这些脚本。

一次性命令

当已有工具或包能满足需求时,可以直接在 SKILL.md 的说明里写出要执行的命令,无需单独建 scripts/ 目录。很多生态都提供「按需安装并运行」的工具,例如:

  • Pythonuvxpipx run — 在隔离环境中运行指定版本的包。
  • Node.jsnpxbunx — 按需下载并执行 npm 包。
  • 其他deno rungo run 等,可直接从 URL 或包名运行。

在 SKILL.md 中应写明前置条件(如「需要 Node.js 18+」),不要默认假设助手环境已安装。运行环境类要求可写在 frontmatter 的 compatibility 字段,详见 规范

若命令变得复杂、难以一次写对,建议将逻辑放进 scripts/ 下的脚本中,在 SKILL.md 里只说明何时调用、传什么参数,这样更易维护、也便于助手按步骤执行。

在 SKILL.md 中引用 scripts/

把脚本放在技能包的 scripts/ 目录后,应在 SKILL.md列出可用脚本及其用途,方便助手发现并在合适时机调用。例如:

## 可用脚本
- **`scripts/validate.sh`** — 校验配置文件
- **`scripts/process.py`** — 处理输入数据

然后在正文中说明何时、如何调用,例如:

校验配置时执行:
  bash scripts/validate.sh "$INPUT_FILE"

处理数据时执行:
  python3 scripts/process.py --input results.json

助手会根据任务与说明选择并执行相应脚本;路径相对于技能包根目录。

设计建议

  • 脚本尽量无状态、可重复执行:通过参数或标准输入传入数据,避免依赖未写明的外部状态。
  • 在 SKILL.md 中写清参数含义与示例,便于助手正确拼写命令。
  • 复杂逻辑优先放在脚本内并做好测试,SKILL.md 只描述「何时用、怎么调」,减少助手自由发挥导致的错误。

延伸阅读

技能包目录与 scripts/ 的约定见 什么是 Skills?· 技能包目录结构规范 · 可选目录

About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor