一份带类型的配置
单个 agent-bundle.config.ts 承载项目身份、target 选择与策略。配置没说的部分由 src/ 约定补齐;两者描述同一件事时,配置始终优先。
一次性描述 Skill、钩子、MCP 服务器与脚本,编译出 Claude Code、Codex、Cursor 与实验性 Amp 可安装的产物。
单个 agent-bundle.config.ts 承载项目身份、target 选择与策略。配置没说的部分由 src/ 约定补齐;两者描述同一件事时,配置始终优先。
每个 Skill 一个目录,包含 SKILL.md 与自己的资源;无需声明即可被发现,并按固定版本的 Agent Skills 规范校验。
从 sessionStart 到 workspaceOpen 共七种事件,用 TypeScript 写一次,编译成每个宿主实际拉起的包装脚本。
手写的 stdio 服务器,或每个 tool、resource、prompt 各占一个模块的生成式服务器。浏览器端 MCP App 编译为自包含的 HTML。
普通脚本或渲染式脚本、逐字节复制的静态资源,以及从同一项目输出的 CLI bin 或库入口,一次构建,两份输出。
agent-bundle dev 在回环地址上提供一棵应用树与路由工作区,带渲染结果、调用轨迹、诊断,以及高级协议与产物工具。
路由、协议、CLI、打包与宿主安装等各级证明,把“能构建”变成可复核的证据;某一级别的通过绝不会被当作另一级别的收据来报告。
评估套件具有通过、失败与不确定三种语义,针对真实输出的产物运行,而不是它的模拟品。
产物根目录就是你安装的那个单位,每个所选宿主的清单各自放在自己的点目录中,共用同一套 Skill、钩子与 MCP 入口,旁边是生成的 INSTALL.md 与 agent-bundle.manifest.json,即 install、doctor、校验、MCP、钩子与评测所读取的产物索引。
输入是一份配置文件加一棵按约定组织的 src/ 目录树。输出是一个复合插件根目录:每个所选宿主的清单
各自位于自己的点目录中,覆盖在共享的组件目录之上,外加生成的包装脚本、用捆绑包真实名称写成的
安装说明,以及整个产物据以校验的 agent-bundle.manifest.json。所有宿主安装的都是这同一个目录。
Skill、MCP 服务器与脚本都按约定被发现。只有钩子需要声明,因为处理器必须绑定到某个事件。
每个所选宿主都把这同一个目录当作自己的插件根目录来读取:Claude Code 找到 .claude-plugin/、
hooks/hooks.json 与 .mcp.json;Codex 找到 .codex-plugin/ 与 .agents/ 下的 marketplace;
Agent Plugins 客户端找到 plugin.json 与 mcp.json。Skill、编译后的 MCP 入口与脚本只输出一次,
从不按宿主复制。
Agent Plugins 开放标准没有钩子这一表面。上面的钩子没有声明 targets,因此只继承所选 target 中支持钩子的
那些,claude 与 codex,并为它到达的每个宿主各编译一次,所以这里出现两个包装脚本。portable
会被跳过且不产生诊断;若显式写出 targets: ['portable'],构建时则会得到 AB4204。
生成的包装脚本文件名带有一段短摘要,摘要来自编译它的声明,而非文件内容。agent-bundle.manifest.json
记录每个输出文件及其 SHA-256,因此后续校验比对的是真实字节,而不是检查某个路径是否存在。
编写 agent-bundle.config.ts,把 Skill、钩子、MCP 路由与脚本放到 src/ 下。
agent-bundle inspect 会展示归一化后的模型,让你确认哪些文件是按约定被发现的、哪些是由配置声明的。
agent-bundle dev 在每次变更时重新构建,并在回环地址上提供开发者
Workbench:在一棵 Application 树中选择任意插件表面,运行可执行
叶子,检视渲染结果,并跟随调用轨迹与诊断。
用彼此区分的证明级别针对产物做测试,从路由单元测试一直到通过真实宿主 CLI 安装的捆绑包,并运行结果为通过、失败或不确定的评估。
agent-bundle build 校验项目并写出一个复合插件根目录。校验
依据清单检查产物,安装则让每个宿主自己的安装路径指向这同一个
根目录。
targets 选择这一个根目录承载哪些宿主投影;省略它时根目录只承载 portable。实验性 Amp 读取嵌套目录插件;
其他行读取组合根目录。
各宿主能加载的内容不同,编译器会在构建时明确指出:你为某个 target 选择了它无法表达的表面,就会得到一条
被报告的诊断,绝不会被悄悄省略。唯一有意为之的例外是没有自己的 targets 的钩子:它只继承支持钩子的
宿主,正如上面的目录树所示,而不是让构建失败。两个所选宿主若要以不同字节写出同一路径,就无法共用
一个根目录,构建会以 AB4103 明确指出。每条诊断都有稳定的 AB 代码,记录在
诊断参考中。