跳到正文

Autoprompt Skill

一套装进编码 agent 里的工作流,而不是一个独立程序:给它一个目标,连同约束与「算完成」的定义,它自己跑完整个执行环——界定范围、规划、构建、测试、评审、修复、验证——横跨十一种不同的 agent 工具。协作、执行与独立判断被刻意分在不同层,于是写改动的那个 agent 不是给它签字的那一个。它最大的主张「失败率少 45%」来自作者自己跑的一次 Terminal-Bench 2.1 对比;那次对比的基线判定文件只有链接,仓库里并没有。

Screenshot of Autoprompt Skill
编辑截图, 1 Oct 2026Autoprompt Skill ↗

这是什么

Autoprompt Skill 是一套装进编码 agent 里的工作流,而不是一个独立程序:一条命令把目标、连同约束与「算完成」的定义交给它,之后由它自己跑执行环——界定范围、规划、构建、测试、评审、修复、验证——不必每一步都等人下指令。它支持十一种 agent 工具,包括 Claude Code、Codex、VS Code、OpenCode、Kilo Code、Prime Agent、Oh My Pi、DeepSeek Harness、Reasonix、Hermes Agent 与 Grok Build。工作被分成三条路径:direct、light、roadmap,可以自动选,也可以在目标之前点名;执行它的是一套分层的角色舰队,把协作、管理、执行与独立判断分开,于是写改动的人不是批准它的人。并发有上限,模型选择走一个注册表。它是 MIT 许可的 JavaScript 项目,1,298 个星、88 个 fork、十一位贡献者、1,235 个文件。那个「失败率少 45%」的数字,只由作者自己跑的一次 Terminal-Bench 2.1 支撑。

谁做的仓库所有者账号,44 次提交里有 22 次记在它名下——其中 17 次用的是 77499101+Spielewoy 这个地址,5 次是另一个 Spielewoy 地址。有八条提交带着署名 Claude Opus 5 的共同作者尾注,另有三次记在一个叫 claude 的账号上;其余来自另外八个账号,大多只提交过一次,而贡献者列表总共十一个条目。MIT 许可证上的署名是「Copyright 2026 Spielewoy」。

它是怎么搭起来的

组成 · 6

这个项目是一份载荷加一个安装器,而不是一项服务:先 npm 全局安装,再由交互式安装器探测所选的 agent、写入该宿主原生的角色文件、留下回执,之后还能以 doctor 或 uninstall 的身份再跑一次。下游的一切都挂在一个念头上——工作流才是产品,而它必须被表达十一次,每种宿主一次,同时不让这十一份拷贝各自漂移。所以真相之源是七份 JSON 契约(product、routes、state machine、roles、checks、providers、plain language);一个生成器把它们翻成各个 provider 的原生投影;一份 manifest 钉住可安装的内容;一致性测试会在某份投影与契约不再匹配时报错。生成与准入被刻意分开——把十一份投影都生成出来,并不等于某次运行可以开始,每个宿主都必须先拿出真实安装得到的 Capability 证据。运行本身则是一个确定性控制面,套在一套角色层级外面:L0 的 run owner 握着目标与最终答复,L1 到 L4 分别承担范围、管理、执行与全新的终局判断,控制器掌管物理启动并强制归属与独立检查,而只会启动所选路径真正需要的那些角色。基准测试体系并列在旁,有自己的 schema、租约、账本与质量闸门,而那道德闸门被允许拒绝这个主张。

agents/
十一个 provider 包,每个 59 到 63 个文件,把同一套 32 个角色档案写成该宿主的原生格式——Markdown、TOML、.agent.md、带权限范围的 JSON 或 Python 人设——每个包另有 18 份框架流程和一个 VERSION 文件。一份 5 KB 的 README 讲清投影规则,agents/manifests/ 钉住十一份运行时载荷,大小在 8.6 到 39 KB 之间,Codex 那份最大得多。
agents/contracts/
89 个文件、619 KB 的权威来源:七份真相契约,schemas/ 下的 32 份 schema——其中十二份是基准证据,从 attempt evidence、mechanism evidence 到 run manifest、aggregate report、route holdout、pricing 与 upload spool——25 份人设文本、八份 provider 契约,以及闸门注册表和路由与角色表。
scripts/
46 个文件、1.36 MB,分三组。scripts/install/ 是 21 个文件、947 KB,而且存在两遍,一遍 bash 一遍 PowerShell:install.ps1 107 KB、install.sh 74 KB、install-lib.ps1 278 KB、doctor.ps1 与 doctor.sh 分别是 25 与 21 KB。scripts/benchmark-evidence/ 是 25 个文件、488 KB。harness-v2-* 一族承载 v2 桥接,其中 harness-v2-transport.cjs 124 KB、harness-v2-native.cjs 104 KB。
agents/codex/workflow/
45 个文件、3.5 MB,是仓库里最大的一块代码:router、scheduler、runtime state、run record、mission lock、recovery checkpoint、请求与上下文信封,一个 126 KB 的路由决策模块和一个 1,612,186 字节的 phase-budget.js,外加用 C#、JavaScript 和 PowerShell 各写一遍的 Windows AppContainer 路径。
tests/
180 个源码测试、4.9 MB——codex-supervisor-integration-v2.test.cjs 一个文件就有 944,791 字节,codex-runtime-state-v2 270 KB、codex-live-conformance 142 KB,另有四个超过 100 KB——外加 47 份夹具、12 个 helper、三文件的 tests/benchmarks/ 装置,以及一套 harness-v1 夹具,为每个 provider 保留一份角色文件当作迁移参照。
docs/、bin/ 与 assets/
bin/autoprompt.cjs 是 77 KB 的交互式安装器加 CLI,旁边是 22 KB 的 provider-root 兼容模块。docs/ 里有四份 11 到 14 KB 的翻译、五份指南(含一份 11 KB 的 Codex 本地记录文档和兼容性指南)、七页 FAQ、三页基准,以及一份 8.6 KB 的 Lima 运行时说明。assets/ 是六个文件共 2.8 MB,另有十六份本地化副本,覆盖循环图、层级图与两张排行榜图。

取舍,以及它替代了什么

  • 没有默认路径 替代 对所有请求都用同一条固定流水线

    源码 README 把话说得很直:「There is no default route.」DIRECT 与 LIGHT 不需要协调者或管理者,ROADMAP 只有在规范策略允许时才能动用 run coordinator 与 work-group manager。work-paths 那页更进一步——文件数量不决定路径,二十个文件的重命名可以是 direct,跨两个已部署服务的三个文件却可能需要 roadmap——而且单次失败本身不足以构成扩大路径的理由。

  • 能力证据可以拒绝一次运行 替代 退回到不受限的原生启动

    源码 README 写着:「Missing required capability evidence must block admission without an unrestricted native fallback.」代价在 issue 列表里看得见:2.0.0 的包里带着十条 reviewed 本地记录,全是 Linux x64,信任公钥列表是空的,于是原生 Windows 宿主被以 PROVIDER_UNSUPPORTED 拒绝。支持表上带着同样的警告——「These versions passed Linux runs」——而 FAQ 写着经过验证的执行路径是 Linux。

  • v1 的 25 个角色以只读别名活下来 替代 删掉它们,只发布七个活跃角色

    十一种宿主投影同一套 32 个物理角色,被描述为七个活跃角色加 25 个不再活跃的兼容别名。叶子与别名都不能派发,别名只是只读重定向,不能接新的 v2 工作。权威移交给新角色,而已有的安装仍然能解析旧名字,而不是在升级时直接坏掉。

  • 显式路径会停下,而不是回退 替代 点名的路径不适用时悄悄换成另一条

    work-paths 那页写着:显式路径会绕过自动选路,但「does not remove authorization, capability, budget, or verification requirements」,无效或不兼容的选择会直接报错停下,而不是默默换成另一条。悄悄替换会让一次无人值守运行的方案在事后无法审计。

  • Oh My Pi 的投影去掉了 task 工具 替代 给每个宿主发同一份工具清单

    agents README 给了具体原因:那个宿主的解析器能从这个 task 工具推断出不受限的派发,即便传进去的子任务列表是空的,于是这份投影禁用 prewalk 与 advisor 交接并移除该工具。这是仓库里最清楚的一例:宿主的解析行为改变了载荷的形状,而不是让载荷在各处保持一模一样。

  • 一个不允许声称质量的 canary 替代 让机制运行冒充基准

    三臂低算力 canary 给它产出的每条记录都设上 qualityClaimEligible 与 comparisonClaimEligible 为 false,并写明其结果不能支撑质量、成本、延迟或改版效果的主张;每次尝试都被盖章 sourceBinding=declared-existing-commit-not-executed;路由夹具被标为合成数据,在拿到人工标注、两名评分者与调参前冻结之前一律 fail closed。而 Terminal-Bench 那一页缺的正是这套纪律。

依据README.md(11,027 字符,从 GitHub contents API 完整取得)、agents/README.md、agents/contracts/、docs/faq/work-paths.md、docs/faq/what-are-the-layers-for.md、docs/faq/which-coding-agents-are-supported.md、docs/benchmarks/terminal-bench-2.1.md、docs/benchmarks/codex-low-compute-mechanism.md、tests/benchmarks/autoprompt-benchmark.json、docs/CONTRIBUTORS.md、各 pull request 与 issue 正文,以及完整的 1,235 个文件树及其体积。

制作过程

6 个阶段
  1. 01

    二十三天里六个 release,然后是十九天的安静

    仓库建于 2026-08-17 22:40(UTC),两分钟后落下第一次提交——Autoprompt Skill 1.0.0。此后二十三天里发了六个 release:v1.0.0 在 2026-08-18,v1.0.1 与 v1.0.2 同在 2026-08-19,v1.0.3 在 2026-08-20,v1.0.4 在 2026-08-21,然后空出十九天,才有 2026-09-09 的 v2.0.0。这些 release 没有一个是预发布,也没有草稿。44 次提交按月份分成八月 29 次、九月 15 次;最新那次提交标题是 Preserve community PR authorship for the released v2 integration,时间戳 2026-09-09 22:05,而仓库的 pushed 时间是 2026-09-28,晚了三周,也就是说后来那部分活动在提交列表里看不到。代码之外是 1,298 个星、88 个 fork、4 个 watcher、三个 open issue、MIT 许可、1,235 个文件,以及 375,291 KB 的仓库体积。

  2. 02

    45% 这个数字,以及它的证据到哪里就断了

    主张写在 README 第一行——一个通过「复查、修复、再复查」把失败率砍掉 45% 的编码 agent 工作流——旁边的徽章写着 Terminal-Bench 2.1,加 14.61 分。实测表格很具体:只用 OpenCode 解出 89 题中的 60 题,67.42%,失败 29 题;OpenCode 加 Autoprompt 解出 89 题中的 73 题,82.02%,失败 16 题,也就是多解 13 题、失败少 45%。单独一页记了方法——两次运行都用 DeepSeek V4 Flash、OpenCode 1.18.7,同一套 89 道题——并用作者自己的话划了两条边界:这是版本 1 的结果,版本 2 的基准随后再来。到了证据那一节就断了。基线据说把 89 道题的逐题判定都留着,路径在 benchmark/terminal-bench-2.1/ 下;而 Autoprompt 一侧被描述为对比报告里「已记录的完成聚合」,它原始的逐题对应表没有保留,所以那个结果无法逐题重建。那个 benchmark/ 目录根本不在已发布的文件树里:根目录只有 .github、agents、assets、bin、docs、scripts、tests 和五个文件,contents API 对该路径返回 404。承诺的代价——大约三倍时间、两倍 token——被标成「根据用户经验报告的规划估算」,因为计时与 token 日志没有保留。DeepSeek 自己的 82.7% 只被称为外部参照,不是可比的第三次运行。所以:有基准名字、有模型名字,但材料里没有数据集、没有复现命令、Autoprompt 一侧没有留存下来的逐题输出,也没有任何独立复跑。请把 45% 读成作者自己的一次测量。

  3. 03

    这个仓库自己的基准闸门会说「不行」

    与那个头条数字并排的,是一整套往反方向用力做的东西。scripts/benchmark-evidence/ 有 25 个文件、488 KB 的测试装置——aggregate.cjs 53 KB、manifest.cjs 25 KB、route-holdout.cjs 22 KB,还有 spool、run lease、snapshot、trust registry 和一个 quality gate——agents/contracts/schemas/ 里另有十二份基准 schema,覆盖 attempt evidence、mechanism evidence、run manifest、aggregate report、pricing 与 result bundle,并由一个 82 KB 的源码测试守着。真正有意思的是这套机器怎么对待自己的结果。三臂低算力 canary 只记一个任务、一次重复,evidenceClass: "harness-mechanics-only",并且给它产出的每一条记录都盖上 qualityClaimEligible: false 与 comparisonClaimEligible: false;它的文档直说这是机制检查、不是质量基准,其结果不能支撑质量、成本、延迟或改版效果的主张。真实的 Codex 观测被沿用而不是重跑,仍然卡在 PROVIDER_UNSUPPORTED、原因 codex-command-sandbox-network-open,真实的三臂对比被写明至今仍未完成。那份 16 行的路由样本被标为合成的设计夹具,在拿到独立人工标注、至少两名标注者、一致性证据、裁决证据、开发与测试分离以及调参前冻结之前,就绪检查一律 fail closed;它那个完美的混淆矩阵被称作「只是机制证据」。

  4. 04

    十九天沉默,然后一个晚上回完十条

    从 2026-08-19 到 2026-08-31,仓库收到了持续的外部工作:Grok Build 支持(#5)、CRLF shebang 与丢失的可执行位(#7)、Oh My Pi 适配器(#8)以及给它加的 supervisor 与模型铸型(#11)、两次独立尝试修非阻塞 stdin 崩溃(#15 与 #24)、bash 安装器的 Python 3 探测修复(#16)、Hermes Agent 支持(#17)、来自同一位贡献者的五处语法更正(#18、#19、#21、#22、#23)、一份说 DeepSeek 预设禁用了两个未注册工具名的报告(#20)、同一天三次提交的 Windows Git Bash 路径失败(#12、#13、#14),以及一条抱怨:兼容性指南让读者替换两个方括号占位符,却没说它们代表什么(#4)。2026-08-23 作者用同一句话回了其中几条——「Currently working on some major refactors」——然后就安静了。到了 2026-09-09,在 21:25 发布 v2.0.0 之后的几分钟内,其中十条线程都收到了回复:问题在 v2 里修好了,报告者已在 README 里致谢;最后一条提交的标题就叫「为已发布的 v2 集成保留社区 PR 的署名」。致谢页点名七位贡献者并附上 PR 编号,同时写明一条免责声明:被致谢不等于旧 PR 被原样合并,也不等于某个 provider 通过了发布验证。

  5. 05

    三十二个角色、三条路径,和一道 fail-closed 的闸门

    v2 的重写把原来的 25 角色编制换成固定的 32 个物理角色——按描述是 7 个活跃角色加 25 个不再活跃的兼容别名——连同 18 份框架流程一起投影进十一种宿主。源码 README 写下了塑造这一切的那条规则:「There is no default route.」DIRECT 与 LIGHT 不需要协调者或管理者,ROADMAP 只有在策略允许时才能动用 run coordinator 与 work-group manager;run owner 保留目标与最终答复,控制器负责物理启动、任务归属、独立检查与恢复;叶子与别名都不能派发。责任被分成 L0 到 L4 层,好让作者无法批准自己的工作;work-paths 文档还坚持「文件数量不决定路径」——二十个文件的重命名可以是 direct,跨两个已部署服务的三个文件却可能需要 roadmap——并且显式指定的路径会直接报错停下,而不是悄悄换成另一条。同样的纪律也用在准入上:「Missing required capability evidence must block admission without an unrestricted native fallback.」这笔账在 issue 列表里兑现:一位 Windows 用户报告每次激活都被拒绝,因为包里带的十条 reviewed 记录全是 Linux x64,而信任公钥列表是空的——而支持表上写着,这些通过验证的版本跑的是 Linux。

  6. 06

    两套 shell 端口,以及 Windows 的账单

    维护十一种宿主投影是看得见的成本,维护两个操作系统端口是更安静的那一项。scripts/install/ 在 21 个文件、947 KB 里存在两遍——install.ps1 107 KB、install.sh 74 KB,另有 278 KB 与 228 KB 的共享库——而 bug 就沿着两者的接缝长出来。v1.0.2 是在 Windows 的发布运行器上打包的,仓库里没有 .gitattributes,于是以 LF 提交的启动脚本被打包成 CRLF、还丢了可执行位,任何新的 macOS 或 Linux 安装都会失败,报的不是 permission denied: autoprompt,就是 env: node : No such file or directory;修法是加上 .gitattributes,并补一个打包测试,断言每个声明的入口都带 LF shebang、不含回车、带可执行位。后来一条 pull request 把 Git Bash 的短路径统一成长路径形式,它说这清掉了 release-readiness 运行 32481402055 里的三处 Windows 生命周期失败,从而让 v1.0.4 得以发布。同一天里,「Windows 上 bash 解析到 WSL 桩」被报告了三次;原生 Windows 支持又被请求并拒绝了两次;而那条仍在开放、修 npm .cmd shim 的 pull request 注明:npm run verify 仍被 CLI 测试套件里六个既有的 Windows、macOS、Codex 与缓存环境失败挡住。

相关档案

全部档案 →