由代理编写的安全、可复用的自动化。
太长不看 —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard。参见快速开始。
Skillscript 源于一个问题:如果 Makefile 构建的是技能而非二进制文件,它会是什么样子?答案是:一种受 Make 启发的受限语言,以及一个运行时,能将代理的推理转化为持久、可检查的自动化。代理编写技能,你批准其所能执行的操作,然后每次运行时都保持不变。
它专为那些希望代理创建并执行重复性工作流,但又不想赋予其不受限制的 shell 访问权限、任意包安装或直接控制生产凭据的团队而设计。
代理编写技能。人类审查并批准。运行时通过配置的连接器、允许列表和安全策略来执行。
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
然后将你的代理连接到 MCP:http://localhost:7878/rpc,并让它编写一个技能。
代理通常从头开始重新推导常规任务。这会增加成本、延迟和行为漂移。
Skillscript 让代理能将学到的过程结晶为一个命名的、可复用的工件,该工件可以:
Skillscript 仅负责编排。计算仍保留在工具和连接器内部;技能通过小型声明式语法协调这些能力。这可以显著减少重复性工作流中前沿模型的令牌使用:推理成本在技能编写时一次性支付,之后每次运行都确定性执行,常规子任务交由更便宜的本地模型处理。
Python 和 Bash 在实现工作中仍然有用。风险在于允许代理编写的脚本在不受限制的主机上无人值守运行。
Skillscript 缩小了执行面:
eval 或子进程逃逸目标不是取代脚本。而是将脚本和 API 置于操作者显式暴露的能力之后。
还有一个扩展性方面的原因。审查任意代码意味着审计它可能做的一切,这需要熟练的读者。一个 skillscript 将其完整的效果面置于页面上,因此即使代理编写速度比任何人都读代码快,批准仍然可行;并且知道自己系统应允许何种操作的操作者,可以根据声明的效果进行批准,而非重新阅读逻辑。
技能是一个类型化、声明式的工作流,包含变量、操作、依赖和输出模板。
# 技能: hello
# 状态: Approved
# 描述: 按名称问候某人。
# 变量: WHO=world
Hello, ${WHO}!
这是一个完整的、可运行的技能。其主体作为输出呈现。
技能还可以调用连接器、分支、循环、运行其他技能、响应事件以及按计划执行:
# 技能: daily-disk-check
# 状态: Approved
# 触发器: cron:"0 6 * * *"
# 自主: true
Snapshot written for ${NOW}.
snapshot:
shell(command="df -h --output=source,pcent,target") -> USAGE
file_write(
path="/var/log/skillscript/disk-${EVENT.fired_at_unix}.txt",
content="${USAGE}"
)
default: snapshot
在操作者允许列出二进制文件和路径之前,运行时会拒绝执行 shell 命令和文件写入操作。
技能可以扮演三种角色:
| 种类 | 目的 |
|---|---|
| 无头 | 自主运行,并将输出发送到系统或人类 |
| 增强型 | 为前沿模型准备上下文 |
| 模板 | 为代理提供一个可重复使用的过程 |
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
打开 http://localhost:7878。
仅当其他容器或机器需要访问运行时,才使用 --host 0.0.0.0,并保护暴露的入站端口。
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
编写一个按名字问候某人的技能。
代理通过 MCP 编写技能。在仪表板或 CLI 中批准它:
skillfile approve hello
skillfile execute hello
技能通过配置的连接器(而非直接凭据)访问外部系统。连接器可以暴露 MCP 工具、数据存储、本地模型、代理交付渠道或自定义运行时能力。
重要的操作者控制项:
秘密由运行时解析,仅传递给已批准的接收器。技能无法打印或检查其原始值。
skillfile lint <技能名>
skillfile compile <技能名>
skillfile execute <技能名>
skillfile approve <技能名>
skillfile diagram <技能名>
skillfile fires <技能名>
skillfile replay <追踪ID>
skillfile health
运行 skillfile <命令> --help 查看选项。
Skillscript 处于 pre-1.0 阶段。核心语言和连接器合约正在稳定中;外部采用和分发工作正在进行。
欢迎通过 Issue 提交错误报告和功能请求。在提议语法更改之前,请先打开 Issue 以便讨论设计。
MIT。参见 LICENSE。
| 设置 | 默认值 |
|---|
SKILLSCRIPT_SHELL_ALLOWLIST | 拒绝所有二进制文件 |
SKILLSCRIPT_FS_ALLOWLIST | 拒绝所有路径 |
SKILLSCRIPT_SECURED_MODE | 关闭 |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | 未设置(无上限) |
SKILLSCRIPT_SUPERVISOR_SKILL | 未设置(关闭) |
SKILLSCRIPT_SECRET_<NAME> | 未设置 |