SuperAPI AI 工具集

skulk

智能体与模型

查看项目

更新于 10-16 02:35

技能介绍

用途:skulk 用于让智能体在等待外部事件时结束当前回合,而不是 sleep 或循环轮询。它由一个常驻守护进程管理所有 watch,事件触发后向 OpenCode 会话投递一条消息,消息包含 watch 名称、变化内容和 --do 指令。目标会话默认取 $OPENCODE_SESSION_ID,也可用 --session ses_… 指定其他会话。

主要能力:支持定时器(skulk in 2h、skulk at "tomorrow 9:00")、GitHub Actions 运行(skulk when gh-run,可按 run ID、workflow+commit 或 PR)、PR 检查(skulk when pr-checks,--required 仅必需检查)、npm 发布(skulk when npm,支持 tag 变化、版本更新、时间后发布)、命令退出(skulk when exits)、其他会话空闲或 watch 结束(when idle、when done)、容量可用(when capacity,需 $SKULK_CAPACITY_COMMAND)以及自定义轮询(skulk poll,最小间隔 60s)。轮询条件包括 --changes、--equals、--matches、--succeeds;失败或空检查不算变化。每个 watch 有 --deadline(默认 48h,最大 14d)。

使用方式:用 skulk status 检查安装与守护进程状态。用 skulk list、show、logs、cancel 查看或取消 watch,skulk release 释放容量槽。子智能体无法结束回合时应阻塞等待:skulk when pr-checks … --wait、skulk wait <name>、skulk run --slot heavy -- <cmd>。--do 应自包含,写明仓库、PR/run 编号、链接、分支及成功与失败时的操作,并给每个 watch 一个短 --name。

限制与安全:skulk poll 和 skulk when exits 的命令在守护进程环境下、创建时的目录中运行,使用创建时捕获的 PATH,不继承创建 shell 的其他变量,命令会存入数据库,因此不要内联密钥。不要添加 skulk * 的全局允许规则,仅允许不能执行命令的子命令,poll、when exits、run 应保持询问;SKULK_ALLOW_EXEC=0 可禁用命令类 watch。安装方式见 https://github.com/kitlangton/skulk#install。