Reelier

官方

代理會提出主張,Reelier 則開立收據——記錄代理的工具呼叫工作流程一次,以零令牌方式確定性地重播,並透過比對執行結果來捕捉偏差。

你可以用 Reelier MCP 做什麼?

  • 以確定性方式重播已記錄的技能 — 要求以 0 tokens 執行已儲存的 .skill.mdreelier run,預設為唯讀,以達成位元組完全相同的重新執行。
  • 偵測代理程式執行中的漂移 — 使用 reelier diff 將重播結果與原始內容比對,並依步驟標記 SAME 或 DRIFTED,若有任何變更則以結束碼 1 退出。
  • 為相依性升級 PR 設立關卡 — 讓助理設定 CI 工作流程,針對 Dependabot/Renovate PR 重播您的技能,並在確切漂移的步驟上失敗。
  • 將現有軌跡轉換為技能 — 透過 reelier compiletrace.jsonl 或現有的 SKILL.md 編譯為可重播的技能,並將誠實的缺口列為開放問題。
  • 離線驗證已簽署的收據 — 執行 reelier verify 重新計算已推送收據階梯中的每一項聲明,顯示哪些階梯已獲證明、哪些是誠實的缺口。
  • 在錄製前檢查代理程式涵蓋範圍 — 使用 reelier init --dry-run 檢查 Path A/B/C 觀察涵蓋範圍與重播候選項目,而不寫入或變更任何內容。

文件

Reelier

Reelier

讓你的代理程式寫作。保留收據。

你的代理程式整晚工作。這裡是確切變更的內容。

Reelier 記錄有效的執行,將其凍結為可重播的技能,並以確定性方式重播——每次執行都會回傳一張收據:證明代理程式做了什麼,以及因此改變了什麼。代理程式提出主張。Reelier 開立收據。

npm version CI tests license Discord stars

網站 · 文件 · SPEC.md

Reelier: Dependabot bumps a dependency, Reelier replays your recorded agent run at 0 tokens and diffs it, catching the drift on the PR before you merge

▶ 開啟聲音觀看(27秒)

Reelier MCP server on Glama


在你的代理程式 PR 上取得收據——安裝即完成

代理程式撰寫的 PR(Dependabot、Claude、Codex、Cursor 等)會在幾秒內收到收據評論:作者、變更的檔案、宣告的範圍與實際變更的對比、敏感路徑標記。無需工作流程檔案、無需 CLI、無需設定。

→ 安裝 Reelier 收據 GitHub App——公開儲存庫永久免費。

Reelier 收據——代理程式 PR 作者:dependabot[bot] · 變更檔案數:2(+119 −41) 宣告範圍:無(新增 .reelier/scope.yml 以啟用非預期寫入偵測) 觸及的敏感路徑:⚠ 1 — package-lock.json 證明範圍與變更,而非正確性

來自 Reelier 自家儲存庫的真實收據——查看實際範例。在 .reelier/scope.yml(或 PR 內文中的 reelier-scope 區塊)中為每個代理程式宣告範圍,收據便會回報非預期的寫入。收據證明範圍與變更,絕不證明正確性或安全性。


為什麼

AI 代理程式是非確定性的——相同的提示詞,每次執行結果都不同——而且無論是否真的完成,它們都會聲稱已完成工作。Reelier 記錄有效的執行,以確定性方式重播,並開立一份簽署的收據來證明。只需一個工作流程即可指向你現有的 CI——它新增可驗證的收據,不會取代你的技術棧。

在真實的對等基準測試中測量,相同任務、相同資料(完整方法):

  • 1,000 / 1,000 次重播位元組完全相同
  • 每次重播都附帶簽署收據——證明執行內容與變更內容,絕非聲稱
  • 重播時 0 次 LLM 呼叫——確定性重新執行,而非重新推理

確定性重播也比重新執行代理程式約便宜 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/ 下方寫入清理過的產物。

作為代理程式外掛

教導你的程式碼代理程式何時使用 Reelier。相同的兩個指令,任一主機皆可:

claude plugin marketplace add seldonframe/reelier
claude plugin install reelier@seldonframe
codex plugin marketplace add seldonframe/reelier
codex plugin add reelier@seldonframe

這只會安裝兩個代理程式技能,沒有其他內容。reelier-replay 教導你的代理程式凍結可重複的工具呼叫工作,並以 0 個 token 重播。reelier-write-safety 涵蓋在授予代理程式寫入權限前如何綁定其寫入:記錄器看到什麼、政策拒絕什麼,以及收據證明與不證明什麼。它不附帶任何 MCP 伺服器,因此不會自行包裝、觀察或閘控任何工具呼叫;reelier CLI 負責這部分,技能透過 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 上端對端驗證:兩種格式都能安裝、啟用,且技能可觸及模型。其他主機未經測試,各主機狀態在 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
  1. 檢查,然後記錄或凍結。 reelier init 在不改變路由的情況下揭示觀察到的覆蓋率與本機候選。reelier mcp --wrap "<mcp server>" 代理即時工具;reelier scan/from-session 凍結支援的歷史記錄。
  2. 編譯。 reelier compile 將追蹤轉換為 SKILL.md——0 次 LLM 呼叫、最小斷言、誠實的缺口列印為開放問題
  3. 重播。 reelier run 在 Level 0 重播——無 LLM、位元組相同、預設唯讀(寫入需要 --allow-writes)。
  4. 差異比對。 reelier diff 逐步回報 SAME 或 DRIFTED,並以失敗的斷言作為原因——發生漂移時退出碼為 1。
  5. 登入。 reelier login 透過瀏覽器中的裝置碼將此機器連線到 Reelier Cloud——或為 CI 和自架設設定 REELIER_CLOUD_URL/REELIER_CLOUD_KEY
  6. 推送。 每次執行都是一張收據;reelier push 可選擇性地將其同步到帳本,以取得永久連結和可嵌入的已驗證重播徽章。

已經有代理程式技能?轉換它——你的技能,減去模型:

reelier compile trace.jsonl --from-skill ./my-skill/SKILL.md

三項測試,一個技能

測試指令答案
確定性reelier run <skill.md>這是否仍會做它原本做的事?
復原reelier run <skill.md> --fail N如果這壞了,技能會注意到並修復嗎?
漂移reelier run <skill.md> --wrap "<your mcp server>"世界是否已從此技能之下移開?

分類法歸功於 Mads Hansen 對發布文章的評論。 每項測試的完整語義,包括復原注入與清單防護: docs/REFERENCE.md

閘控 Dependabot / Renovate 升級 PR

Dependabot 和 Renovate 會開啟 PR 並執行你的測試套件——但兩者都不知道你的代理程式在執行時期實際做了什麼,因此依賴升級若靜默改變工具呼叫的形狀(重新命名的欄位、新的預設值、不同的錯誤),就會在綠色單元測試下通過。這是它們不會執行的檢查。

.github/workflows/reelier-bump-check.yml 複製到你的儲存庫,將 skill: 指向你自己記錄的 .skill.md 檔案,它將:閘控來自 dependabot[bot]/renovate[bot](或 dependencies 標籤)的 PR、安裝升級的依賴、在 --max-level 0(0 個 token)下對其即時重播你記錄的技能,並在漂移的確切步驟上讓檢查失敗。

這測試依賴與 MCP 工具呼叫行為——它測試模型升級;--max-level 0 從不呼叫 LLM。完整清單複製與設定: 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
團隊維護排程重播 + 漂移警報
記錄簽署收據

「已驗證」描述的是記錄,絕非代理程式——收據證明執行內容與變更內容,而非代理程式擅長其工作。

僱傭合約不會讓員工變好——它讓員工做的事可見且有界。這裡也一樣:收據證明範圍與變更,絕非正確性。

適合誰

  • 獨立開發者 / OSS 維護者——再次擁有真正的回歸測試;漂移無法靜默通過。
  • 團隊發布代理程式變更——「執行乾淨」變成可檢查的 PR 產物,而非聲稱。
  • 為客戶執行代理程式的代理商——客戶可驗證的簽署、加時間戳的交付證明。
  • 市集買家或賣家——經證實的收據是無法被假造的評論。
  • 面對稽核的營運——每次寫入的簽署、CI 認證軌跡,包含冪等金鑰。

MIT,永久免費(≤0.16.0 版本仍為 AGPL-3.0)。你的資料——技能、追蹤、執行——在 SPEC.md 中定義,因此離開就是複製一個資料夾。

貢獻: 歡迎 issue 和 PR——SPEC.md 是格式的真相來源;修正程式碼,而非規格。PR 前請先執行 npm test

如果 Reelier 幫你省了一次重新執行,為它加星 ⭐——這是其他建構者找到它的方式。