剧本:可靠性是你所需要的
技能通过状态机和各种llm变得可靠。
自然语言技能灵活且易于使用,但比脚本化工作流更难以预测,尤其是在长期工作中。 即使是最好的法学硕士也会犯错误,部分原因是简单的语言描述很少能消除模糊性或保证完整性。
SubLang Playbook同时解决以下两个问题:
- 的同伴 SLC编译器 将纯语言过程(如
SKILL.md,将其转化为具有确定性状态机控制流的剧本。 - 剧本可以为其步骤分配不同的代理或法学硕士,并让他们相互审查和挑战,帮助在交付之前发现错误。
词汇: 老板 是你;这个 队长 协调代理是你吗
说话;一个 角色 剧本-本地工作是什么 coder;和一个 球员 是
一个或多个稳定的队长会话代理和提供程序会话
角色绑定。角色描述工作流程,而玩家id决定哪些工作
分享对话的连续性。
运行 playbook 的交互式tmux UI cligent,或者 playbook run 对于同一个Captain会话,在脚本和CI中没有tmux。
快速启动
开箱即用,Playbook包括 代码 的实现, 审查 对于基于提交的审查和修复, 决定 对于独立提出和审查的规范决定, DEV 对于开发请求的基于存储库的规划, 分支 用于检查GitHub问题的新分支, 公关 通过拉取请求发布、检查和合并分支 检查 用于在不更改存储库的情况下解释提供的材料或运行的接口。 CODE和DECIDE调用REVIEW作为嵌套剧本;DEV调用CODE,或者DECIDE然后CODE,当请求命名GitHub问题或请求拉请求时,将它们包装在BRANCH和PR中。
共享的启动器配置选择队长和球员的适配器
当地可见的证书:克劳德首先,然后是法典,以及两者的位置
配置只 dev.reviewer 种子在法典上。如果两者都不是
配置好后,它会给克劳德种子,并打印一个通知。编码、评审、决策、分支和PR绑定
他们的本地角色显式地 dev.coder 和 dev.reviewer,如此嵌套而过
约定只有在绑定名称相同的情况下才共享会话
玩家ID;DEV的分析师绑定了一个不同的 dev.analyst player和INSPECT的
检查员结合 inspect.inspector.
npm install -g @sublang/playbook
npm install -g @anthropic-ai/claude-agent-sdk @openai/codex-sdk
自定义配置需要其提供商所需的sdk;看到 配置代理.
如果SDK缺失或比客户端支持的版本老,Playbook在启动任何东西之前打印固定的安装命令;看到 安装代理sdk 升级, npx,以及其他适配器。
先决条件:
- Node.js >= 20.6.0
- 已配置适配器的凭据:authenticated 克劳德代码 或者
ANTHROPIC_API_KEY/CLAUDE_CODE_OAUTH_TOKEN克劳德;身份验证 食典委CLI 或者OPENAI_API_KEY/CODEX_ACCESS_TOKEN为食品 - GitHub CLI (
gh)为存储库的GitHub远程认证,为/branch,/pr,/dev命名问题或请求拉取请求的请求
互动 playbook 另外需要tmux 3.3或更新版本 glow 在 PATH;无头 playbook run 没有。
CODE在当前目录下工作,可以自主编辑和提交,所以使用一个干净的分支或工作树。
cd /path/to/your/project
playbook
输入一个任务,输入 /code <task> 要实现,请输入
/decide <question> 独立提出和审查的决定。
在第一次启动时,Playbook将其配置写入 ${SPEX_HOME:-$HOME/.spex}/config/playbook.config.yaml. 一个配置留在以前的位置-根的 playbook/playbook.config.yaml 或者 ${XDG_CONFIG_HOME:-$HOME/.config}/playbook/playbook.config.yaml -在下次发射时移动一次,除非一个相对的主定位器改变了目标那个案子被拒绝了,原封不动地换了一个。
相同的配置,编译船长,启用剧本,稳定的球员,和 嵌套呼叫功率无头匝。两个前端创造相同的耐用性 逻辑会话:复制上报的会话ID,重新打开交互式会话 无头或无头会话交互。 显式运行REVIEW,或者将更长的请求传递给Captain:
playbook run "/review review the latest commit"
printf '%s\n' 'Implement the approved specification, then review it.' | playbook run
# Later, either presentation can reopen the returned/reported session id:
playbook --session 4f2c0000-0000-4000-8000-000000009ab1
playbook run --session 4f2c0000-0000-4000-8000-000000009ab1 "continue"
playbook run 将一个boss可见的Captain回复打印到stdout,并将操作状态打印到stderr;CODE和DECIDE也可以在那里完成它们嵌套的REVIEW调用。
如果某一步骤失败或在回答之前需要准备,请Captain修正前提条件并继续;看到 准备停止的步骤.
使用 /inspect 分析现有材料或解释运行界面。浏览器访问需要显式启用检查器 浏览器功能. 嵌入式主机可以提交便携式附件,并显示保存的本地图形 资产和会话api.
看到 使用CLI 对于旗帜和持久延续, 配置代理 对于共享阵容, 嵌入 对于自定义主机,以及 更新日志 的版本。
创造你自己的剧本
单独的 SLC编译器 需要Node.js >= 23.6并编译一个纯语言 .md 或者 .txt 过程:
npm install -g @sublang/slc
slc playbook my-workflow.md
# After enabling /absolute/path/to/my-workflow.ts in the shared config:
playbook run "/my-workflow <your task>"
SLC写道 my-workflow.ts源代码旁边有一个为Playbook准备的注册表项,下面有可检查的中间体和测试 my-workflow.playbook/.
启用该条目并绑定它在其下声明的每个角色 playbooks.my-workflow 在共享配置中,然后调用 /my-workflow;看到 外部的剧本 和 SLC文件.
如何编译
SLC的 playbook 管道有三个阶段:
- 文本→GEARS (slc / text2gears.md)——明确每个行为的触发器、参与者、提示和结果。
- 齿轮→FSM (slc / gears2fsm.md) -将每个项目映射到一个XState状态,该状态调用队长、玩家、另一个剧本或本地脚本。
- FSM→运行时 (slc / link.md) -将机器连接到独立于主机的接口,用于用户输入、代理调用、状态和遥测。
默认的传递在前两个阶段之间运行 通过优化 将符合条件的机械步骤替换为本地shell脚本,以及 prompt-prefix通过 将每个提示的中继运行时值移动到其指令之后,以便重复运行共享可缓存的提示前缀; --no-optimize 跳过。
检查完整 队长, 代码, 审查, 决定 的例子。
贡献
我们欢迎各种贡献。
从资料来源:
git clone https://github.com/sublang-ai/playbook.git
cd playbook
pnpm install --frozen-lockfile
pnpm build
pnpm test
pnpm playbook # drive a Boss turn against the source tree
Playbook本身是规范驱动的:编译器阶段是规范的一部分 slc/,而参考剧本则是从它们的散文来源中重新生成的。
编辑源代码,重新生成它的GEARS、FSM和运行时工件,同步测试和下游规范,直到 pnpm test 通过,并提交与共同作者预告片 specs/packages/git.md.
齿轮↔FSM契约(剧本包)和运行时契约(剧本-运行时包)被钉在 specs/packages/ 并通过测试套件进行验证。