关于 Reelier
Reelier 将 Agent 工具调用流程记录为技能,可在不调用大模型的情况下确定性重放,并比较运行结果以发现偏移。它面向需要核查 Agent 操作及变更记录的开发者和团队。
主要功能
- 01记录并冻结可重复的工作流
- 02无大模型调用地确定性重放
- 03比较运行结果并识别偏移
- 04生成签名运行回执
- 05检查 Agent 编写的 PR 变更
适用场景
- 01为 Agent 工作流执行回归检查
- 02审查 Agent 编写的拉取请求
- 03根据记录运行检查依赖变更
MCP 相关
Reelier 可通过 `reelier mcp --wrap` 代理实时 MCP 工具,并冻结受支持的会话历史。它不提供 MCP 服务;记录和重放由其 CLI 处理。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| dir | string | 否 | 扫描 Agent 会话 transcript 的目录(默认:~/.claude/projects)。 |
详细介绍
Reelier
让你的 Agent 编写。留存凭证。
你的 Agent 工作了一整夜。这里清楚记录了具体改动。
Reelier 会记录成功的运行,将其固化为可重放的技能,并以确定性方式重放——每次运行都会生成一份凭证:证明 Agent 做了什么,以及因此发生了哪些变化。Agent 提出主张。Reelier 留存凭证。
为 Agent PR 留存凭证——安装即可使用
由 Agent 编写的 PR(Dependabot、Claude、Codex、Cursor 等)会在几秒内收到一条凭证评论:作者、变更文件、声明的范围与实际变更内容,以及标记出的敏感路径。无需工作流文件、命令行或配置。
→ 安装 Reelier 凭证 GitHub App — 公共仓库永久免费。
Reelier 凭证 — Agent PR 作者:
dependabot[bot]· 变更文件:2(+119 −41) 声明范围:无(添加.reelier/scope.yml以启用意外写入检测) 涉及敏感路径:⚠ 1 —package-lock.json证明范围和变更,不证明正确性
这是一份来自 Reelier 自有仓库的真实凭证——查看实际示例。在 .reelier/scope.yml 中为每个 Agent 声明范围(或在 PR 正文中使用 reelier-scope 块),凭证便会报告意外写入。凭证证明范围和变更,绝不证明正确性或安全性。
为什么
AI Agent 具有非确定性——相同的提示词,每次运行结果都不同——而无论是否真的完成了工作,它们都会声称自己做到了。Reelier 会记录成功的运行,以确定性方式重放,并生成可验证的签名凭证作为证明。只需通过一个工作流将它接入现有 CI——它会添加可验证的凭证,而不是取代你的技术栈。
在真实的同场基准测试中测得,任务和数据均相同(完整方法):
- 1,000 / 1,000 次重放的字节完全一致
- 每次重放都会生成签名凭证 — 证明运行了什么以及发生了哪些变化,而非仅仅提出主张
- 重放时调用大模型 0 次 — 确定性重新执行,而非重新推理
在相同的基准测试中,确定性重放的成本也比重新运行 Agent 低约 50 倍,速度快约 59 倍。
安装
npm i -g reelier && reelier init
# No Node install needed — same commands via Docker:
docker run --rm ghcr.io/seldonframe/reelier --help
reelier init [--dry-run] 会执行一次带检查点的本地检查,覆盖 Reelier 的所有三条路径:路径 A 的观测覆盖范围、路径 B 的回放/冻结候选项,以及路径 C 中可绑定、可产生结果、仅限影子模式或不受支持的连接和候选项。它不会部署、设置门控、分发、上传、复制凭据或重写主机配置。--dry-run 不会写入任何内容;正常命令只会在 .reelier/init/ 下写入经过净化的产物。
作为 Agent 插件
告诉你的编码 Agent 何时该使用 Reelier。两条命令,适用于任一宿主:
claude plugin marketplace add seldonframe/reelier
claude plugin install reelier@seldonframe
codex plugin marketplace add seldonframe/reelier
codex plugin add reelier@seldonframe
这只会安装两个 Agent Skills,不会安装其他内容。reelier-replay 会教你的 Agent 如何冻结可重复执行的工具调用任务,并以 0 个 token 回放。reelier-write-safety 涵盖在授予 Agent 写入权限前如何设定边界:记录器能看到什么、策略会拒绝什么,以及回执能证明和不能证明什么。它不附带 MCP 服务,因此不会自行包装、观测或门控任何工具调用;这些由 reelier CLI 完成,Skills 则通过 npx 驱动它。它以 Agent Plugins v1.0.0 格式(plugin/agent-plugins/)和 Claude Code 格式(plugin/claude/)打包,由 scripts/build-plugin-packages.mjs 从同一份源代码生成。
已在 codex-cli 0.147.0-alpha.1.2 上完成端到端验证:两种格式均可安装和启用,且 Skill 能触达模型。其他宿主尚未测试;各宿主的状态记录在 docs/specs/agent-plugins-coverage-v1.md §4 中,此处不作未验证的声明。
使用方法
reelier init --dry-run # inspect Path A/B/C locally; write nothing
reelier init # persist resumable sanitized inspection artifacts
reelier run <name>.skill.md # replay deterministically — 0 tokens (read-only by default)
reelier diff <name> # SAME or DRIFTED, per step — exit 1 on drift
reelier push <name>.skill.md # sync receipts to your ledger (opt-in)
reelier ci # write a workflow: drift-CI + PR receipts, one command
- 检查,然后记录或冻结。
reelier init会展示观测覆盖范围和本地候选项,不会更改路由。reelier mcp --wrap "<mcp server>"会代理实时工具;reelier scan/from-session会冻结受支持的历史记录。 - 编译。
reelier compile会将跟踪记录转换为SKILL.md——不调用 LLM,仅包含最少断言,并将未解决的问题如实列为开放问题。 - 回放。
reelier run会以 0 级回放——不使用 LLM、字节完全一致,默认只读(写入需要--allow-writes)。 - 对比差异。
reelier diff会逐步报告 SAME 或 DRIFTED,并以失败断言说明原因——发生漂移时退出码为 1。 - 登录。
reelier login会通过浏览器中的设备代码将此机器连接到 Reelier Cloud;也可为 CI 和自托管设置REELIER_CLOUD_URL/REELIER_CLOUD_KEY。 - 推送。 每次运行都会生成一份回执;
reelier push可选择将其同步到账本,以获取永久链接和可嵌入的已验证回放徽章。
已经有 Agent Skill?将它转换过来——保留你的 Skill,去掉模型:
reelier compile trace.jsonl --from-skill ./my-skill/SKILL.md
三项测试,一个 Skill
| 测试 | 命令 | 回答的问题 |
|---|---|---|
| 确定性 | reelier run <skill.md> | 它现在仍会执行原来的操作吗? |
| 恢复能力 | reelier run <skill.md> --fail N | 如果它出错,Skill 会发现并修复吗? |
| 漂移 | reelier run <skill.md> --wrap "<your mcp server>" | 这个 Skill 所依赖的环境是否已经发生变化? |
此分类法源自 Mads Hansen 对发布公告的评审。 每项测试的完整语义,包括恢复注入和清单防护措施,请参阅:docs/REFERENCE.md。
拦截 Dependabot / Renovate 的依赖升级 PR
Dependabot 和 Renovate 会创建 PR 并运行你的测试套件,但它们都不知道你的 Agent 在运行时实际做什么,所以依赖升级悄然改变工具调用的形式(字段重命名、新默认值、不同的错误)也能在单元测试全绿的情况下顺利通过。这正是它们不会运行的检查。
将 .github/workflows/reelier-bump-check.yml 复制到你的仓库中,把 skill: 指向你自己录制的 .skill.md 文件,然后它就会:将检查限定为来自 dependabot[bot] / renovate[bot] 的 PR(或带有 dependencies 标签的 PR),安装升级后的依赖,以 --max-level 0(0 个令牌)针对该依赖实时重放你录制的技能,并在发生偏差的确切步骤处让检查失败。
此检查测试依赖和 MCP 工具调用行为——不会测试模型升级;--max-level 0 从不调用大模型。完整列表和设置说明:docs/marketplace-listing.md。
证明它
推送的回执包含一系列可独立验证的声明,而不是笼统地声称“已验证”。根据你启用的功能,它可以签名、加盖时间戳、由 CI 证明,并包含可交叉核验的提供商请求 ID。reelier verify 会离线重新计算每项声明;未启用的声明只会如实显示为缺项,绝不会让你难堪。
查看一个真实示例:reelier.com/r/HWBdmGob9KeHRqXi-OEaRD0z。
完整的 8 级阶梯,以及每一级能和不能证明的内容:docs/REFERENCE.md。
如果你的技能是员工
| 员工生命周期 | Reelier 对应项 |
|---|---|
| 将会话转为技能 | reelier from-session |
| 绩效评估 | reelier run + reelier diff |
| 团队维护 | 定时重放 + 偏差提醒 |
| 记录 | 已签名的回执 |
“已验证”描述的是记录,而不是 Agent——回执证明运行了什么以及发生了什么变化,并不证明 Agent 工作得很好。
劳动合同不会让员工变得优秀——它让员工做过的事清晰可见、边界明确。这里也是如此:回执证明范围和变更,但从不证明正确性。
适用人群
- 独立开发者 / OSS 维护者 — 重新拥有真正的回归测试;偏差无法悄然通过。
- 交付 Agent 变更的团队 — “运行正常”会成为可核验的 PR 产物,而不是一句断言。
- 为客户运行 Agent 的代理机构 — 提供客户可验证的签名、带时间戳的交付证明。
- 市场买家或卖家 — 有佐证的回执就是无法刷出来的评价。
- 面向审计的运维团队 — 为每次写入提供签名且由 CI 证明的记录,并包含幂等键。
MIT,永久免费(≤0.16.0 的版本仍采用 AGPL-3.0)。你的数据——技能、轨迹、运行记录——由 SPEC.md 定义,因此离开时只需复制一个文件夹。
贡献: 欢迎提交 issue 和 PR——格式以 SPEC.md 为准;修复代码,不要改规范。提交 PR 前运行 npm test。
如果 Reelier 为你省下了一次重新运行,给它点个 Star ⭐——这样其他开发者也能找到它。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。