Reelier
chính thứcTác nhân đưa ra tuyên bố. Reelier viết biên nhận — ghi lại quy trình gọi công cụ của tác nhân một lần, phát lại một cách xác định với 0 token, và so sánh các lần chạy để phát hiện sai lệch.
Bạn có thể làm gì với Reelier MCP?
- Quét lịch sử agent để tìm quy trình làm việc có thể phát lại —
reelier_scanphát hiện các phiên Claude Code, Codex, Windsurf hoặc OpenClaw trong quá khứ có chứa chuỗi lệnh gọi công cụ có thể biên dịch thành kỹ năng. - Biên dịch một phiên thành kỹ năng xác định —
reelier_from_sessionchuyển đổi một bản ghi đã thu thập thành tệpSKILL.mdvới một xác nhận cho mỗi bước, không có LLM tham gia. - Phát lại một kỹ năng với chi phí token bằng không —
reelier_replaythực thi một kỹ năng đã biên dịch một cách xác định trong mili giây, mặc định chỉ đọc, tạo ra một biên nhận giống hệt byte. - So sánh hai lần chạy để phát hiện sai lệch —
reelier_diffso sánh các lần phát lại từng bước, báo cáo SAME hoặc DRIFTED kèm xác nhận thất bại, và thoát với mã khác không nếu có sai lệch. - Đẩy biên nhận để có liên kết cố định có thể chia sẻ —
reelier_pushđồng bộ biên nhận chạy lên sổ cái, tùy chọn tạo huy hiệu phát lại đã xác minh.
Tài liệu
Reelier
Agent đưa ra tuyên bố. Reelier viết biên lai.
Ghi lại lần chạy đã hoạt động, phát lại một cách xác định — 0 token, giống hệt từng byte, một biên lai cho mỗi bước — và reelier diff phát hiện ngày nó bị lệch.
Hãy coi nó như CI + kiểm thử snapshot cho các luồng công việc gọi công cụ của agent của bạn.
Agent của bạn lặp lại cùng một luồng công việc mỗi lần chạy — đốt token và âm thầm bị lệch. Reelier biên dịch một lần chạy đã hoạt động thành một tệp SKILL.md phát lại một cách xác định (không LLM, 0 token, mỗi bước được xác nhận thành một biên lai), sau đó so sánh các lần chạy để phát hiện ngày nó ngừng khớp. Dành cho các agent trong luồng công việc sản xuất định kỳ — nơi "nó đã chạy" không phải là bằng chứng.
Cài đặt → biên lai đầu tiên của bạn trong 60 giây
npm i -g reelier && reelier init
reelier init quét công việc bạn đã làm trước tiên — trên Claude Code, Codex, Windsurf và OpenClaw — và đề xuất biến một phiên làm việc thực tế trước đây thành một kỹ năng có thể phát lại. Không có lịch sử như vậy? Nó chạy một bản demo không cần thiết lập và kết thúc bằng một biên lai thực:
Your receipt:
skill: reelier-init-demo
steps: 2 total, 2 passed, 0 unchecked, 0 failed
replay time: 44ms [measured]
LLM tokens: 0 [measured]
An agent doing a comparable task re-reasons every run (~2.8s, ~18k tokens on
our benchmark). Your replay: 44ms, 0 tokens.
Hoặc chạy nó với Docker — không cần cài Node
docker run --rm ghcr.io/seldonframe/reelier --help
# Replay a skill from the current directory:
docker run --rm -v "$PWD:/work" -w /work ghcr.io/seldonframe/reelier run my.skill.md
# Record from your agent history (mount it read-only):
docker run --rm -v "$HOME/.claude:/root/.claude:ro" -v "$PWD:/work" -w /work \
ghcr.io/seldonframe/reelier scan
Tại sao
- Agent của bạn học lại công việc mỗi lần chạy — rồi âm thầm bị lệch. Mỗi lần chạy đều suy luận lại luồng công việc, và mỗi sửa chữa "hợp lý" nhỏ đều tích tụ — điều mà các nhà vận hành lâu năm gọi là mô sẹo. Một kỹ năng đã biên dịch không bao giờ học lại và không thể bị lệch.
- Vấn đề thực sự là hóa đơn. "Cái đó tốn bao nhiêu?" là câu trả lời đầu tiên mà mỗi lần chạy agent dài nhận được. Reelier phát lại với 0 token, kèm theo biên lai.
- Nó không phải là RPA mong manh. Phát lại các lệnh gọi công cụ (JSON đã nhập/xuất có kiểu), không phải pixel — và mỗi bước đều mang xác nhận riêng, vì vậy một bước bị hỏng thất bại rõ ràng, không bao giờ âm thầm vượt qua.
- Đã nâng cấp mô hình? Một lần phát lại được ghim — ghi lại trên mô hình mới và
reelier diffdựa trên đường cơ sở đã đóng băng của bạn: GIỐNG HỆT hoặc BỊ LỆCH, theo từng bước, trước khi nó đến môi trường sản xuất. - "Bất cứ thứ gì xác định thì nên là code." Đồng ý — agent của bạn đã viết nó rồi. Reelier ghi lại lần chạy thực tế, đang hoạt động của nó vào một tệp đã được kiểm thử. Tính xác định mà không cần viết code thủ công.
Cách nó hoạt động — ghi → biên dịch → phát lại → so sánh → biên lai
reelier init # 60s: record → compile → replay → your receipt
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)
- Ghi — ba cách:
reelier mcp --wrap "<your mcp server>"(một proxy không mất mát trước các công cụ của agent), trực tiếp từ một phiên hiện có (reelier scan/reelier from-session), hoặcreelier initcó hướng dẫn. - Biên dịch —
reelier compilebiến một dấu vết thành mộtSKILL.mdmột cách xác định (0 lệnh gọi LLM) — một công thức với xác nhận trên mỗi bước, và các khoảng trống trung thực của trình biên dịch được in ra dưới dạng Câu hỏi mở (bao gồm ngày tháng, UUID và dấu thời gian mà nó gắn cờ là "đây có nên là một biến không?") thay vì phỏng đoán. - Phát lại —
reelier runchạy nó ở Cấp độ 0: không LLM, mili giây, giống hệt từng byte. Chỉ đọc theo mặc định — một bước ghi (idempotent-write) không bao giờ được kích hoạt lại trừ khi bạn truyền--allow-writes. - So sánh —
reelier diffso sánh hai lần chạy của một kỹ năng và báo cáo GIỐNG HỆT hoặc BỊ LỆCH theo từng bước, với xác nhận thất bại là lý do. Mã thoát 1 khi bị lệch, vì vậy nó kiểm soát một lần phát lại theo lịch trình. - Biên lai — mỗi lần chạy là một biên lai (kết quả từng bước, thời gian, 0 token).
reelier pushtùy chọn đồng bộ chúng với sổ cái biên lai để có liên kết cố định có thể chia sẻ + một huy hiệu phát lại đã xác minh có thể nhúng.
Chuyển đổi Kỹ năng Agent
Biến một kỹ năng hướng dẫn + một lần chạy đã ghi thành một lần phát lại xác định — kỹ năng của bạn, trừ đi mô hình:
reelier mcp --wrap "<your mcp server>" # record: agent runs the skill's task once
reelier compile trace.jsonl --from-skill ./my-skill/SKILL.md
# → my-skill.skill.md — name + description carried from your SKILL.md,
# steps ONLY from the recorded run (never generated from instruction text)
Nhập phiên từ bất kỳ agent nào
Bạn đã có sẵn các luồng công việc có thể phát lại trong nhật ký phiên của chính agent. reelier scan tìm thấy chúng; reelier from-session biến một cái thành kỹ năng. Định dạng được phát hiện từ nội dung tệp — không cần cờ cho các agent được hỗ trợ:
reelier scan # discovers sessions from every known agent under your home dir
reelier from-session ~/.claude/projects/*/*.jsonl # Claude Code
reelier from-session ~/.codex/sessions/**/rollout-*.jsonl # Codex CLI
reelier from-session ~/.openclaw/agents/*/sessions/*.jsonl # OpenClaw
| Agent | Vị trí phiên | Trạng thái |
|---|---|---|
| Claude Code | ~/.claude/projects/<project>/<uuid>.jsonl | được hỗ trợ |
| Codex CLI | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl | được hỗ trợ |
| OpenClaw | ~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl | được hỗ trợ |
| Cursor | .../User/globalStorage/state.vscdb (SQLite, không có tài liệu) | đã phát hiện, chưa thể phân tích cú pháp |
| Windsurf | .../User/globalStorage/state.vscdb (SQLite, không có tài liệu) | đã phát hiện, chưa thể phân tích cú pháp |
Chỉ các lệnh gọi có thể phát lại (các hàm dựng sẵn của Reelier, hoặc lệnh gọi mcp__<server>__<tool>) mới được biên dịch thành kỹ năng — các hành động tệp/vỏ/tìm kiếm gốc được báo cáo là đã bỏ qua, không bao giờ bịa thành một bước. Truyền --agent <claude-code|codex|openclaw> để ép buộc một định dạng thay vì tự động phát hiện; reelier scan / reelier from-session --agent cursor (hoặc --agent windsurf) báo cáo trung thực những gì có trên đĩa thay vì phỏng đoán một định dạng nhị phân không có tài liệu.
Ba bài kiểm tra, một kỹ năng
Một kỹ năng đã ghi cung cấp cho bạn ba câu hỏi khác nhau để hỏi nó, không chỉ một:
- Tính xác định —
reelier run <skill.md>phát lại dựa trên các xác nhận bạn đã ghi. Cùng các bước, cùng các xác nhận, 0 token. Trả lời: điều này có còn làm những gì nó đã làm không? - Phục hồi —
reelier run <skill.md> --fail N[=status]tiêm một lỗi tổng hợp tại bướcN(trạng thái mặc định500; ghi đè bằng--fail N=429, có thể lặp lại) thay vì gửi lệnh gọi công cụ thực của bước đó, sau đó chạy CÙNG một bậc thang leo thang mà một lỗi thực sẽ gặp phải. Không có gì bên ngoài mạng thực sự xảy ra — một bước giả lập không bao giờ gọi công cụ của nó, vì vậy bạn có thể kiểm tra phục hồi một bước ghi mà không cần--allow-writesvà không có tác dụng phụ. Trả lời: nếu điều này bị hỏng, kỹ năng có nhận thấy và tự chữa lành không? (Một lần chạy giả lập chỉ là kiểm thử cục bộ —reelier pushtừ chối xuất bản một cái; xem bên dưới.) - Độ lệch —
reelier run <skill.md> --wrap "<your mcp server>"phát lại dựa trên các phụ thuộc trực tiếp, chỉ đọc của bạn thay vì dấu vết đã ghi. Kết hợp vớireelier manifest(bên dưới), đây là cách bạn phát hiện lược đồ của một công cụ thay đổi trước khi một lần phát lại thực sự làm điều đó.
Phân loại nhờ đánh giá của Mads Hansen về bài đăng ra mắt.
Độ lệch lược đồ công cụ: reelier manifest
Các bước của kỹ năng gọi các công cụ cụ thể với hình dạng đối số cụ thể. Nếu lược đồ công cụ của máy chủ MCP được bọc thay đổi kể từ khi bạn ghi lại, việc phát lại nên từ chối rõ ràng, không âm thầm điền sai đối số. reelier manifest đóng dấu một bản tóm tắt lược đồ cho mọi công cụ mà các bước của kỹ năng thực sự sử dụng:
reelier manifest <skill.md> --wrap "<your mcp server>" # stamp/refresh the manifest from live servers
reelier run <skill.md> --wrap "<your mcp server>" # preflight checks the manifest BEFORE step 1 runs
Nếu lược đồ của một công cụ đã đóng dấu bị lệch (hoặc công cụ biến mất), reelier run thất bại đóng — MANIFEST DRIFT — refusing to replay — trước khi bất cứ điều gì thực thi. --ignore-manifest là ghi đè phá vỡ rào cản rõ ràng khi bạn biết độ lệch là ổn; nó vẫn được ghi lại trong lần chạy (manifestIgnored: true), vì vậy nó không bao giờ là một sự bỏ qua âm thầm. Một kỹ năng không có tệp kê khai nào chỉ nhận được một ghi chú tư vấn — mọi kỹ năng trước khi có tệp kê khai vẫn tiếp tục hoạt động không sửa đổi.
Phê duyệt ghi từng bước: reelier approve
--allow-writes/--yes là các cờ bao trùm — chúng nói "lần chạy này có thể ghi," không phải "lần ghi chính xác này đã được xem xét." reelier approve ràng buộc băm phê duyệt vào công cụ + mẫu đối số của một bước cụ thể:
reelier approve <skill.md> # walk each write/destructive step, y/N to approve
reelier approve <skill.md> --all # approve every write step non-interactively
Một bước đã phê duyệt có công cụ/đối số vẫn khớp với băm đã đóng dấu của nó thực thi không cần cờ nào cả. Nếu công cụ hoặc đối số của bước đã thay đổi kể từ khi phê duyệt, phát lại thất bại đóng — Approval mismatch — và không cờ nào ghi đè nó; bạn xem xét lại và phê duyệt lại. Một bước ghi không có trường approve: giữ nguyên hành vi --allow-writes/--yes chính xác như hiện tại, không thay đổi.
Xác nhận giá trị, không chỉ hình dạng
Các xác nhận của một kỹ năng là thứ làm cho một lần phát lại trở thành bằng chứng. Ngữ pháp kiểm tra trạng thái, cấu trúc, và giá trị:
- assert: status == 200
- assert: json.results is array
- assert: json.count >= 1 # numeric range
- assert: json.plan is string # type
- assert: json.id matches /^usr_/ # value pattern
- assert: body contains "ok"
Sử dụng nó bên trong agent lập trình của bạn (MCP)
reelier serve hiển thị các lệnh riêng của Reelier dưới dạng công cụ MCP, để Claude Code / Cursor / Windsurf / Codex có thể gọi nó giữa phiên:
{ "mcpServers": { "reelier": { "command": "npx", "args": ["-y", "reelier", "serve"] } } }
Agent nhận được reelier_scan, reelier_from_session, reelier_replay, reelier_diff và reelier_push — với các mô tả cho nó biết chính xác khi nào nên sử dụng từng cái (và khi nào không). Nó ghi lại một tác vụ xác định một lần, sau đó phát lại thay vì suy luận lại.
Công cụ
- reelier_scan — quét lịch sử phiên agent (Claude Code, Codex, Windsurf, OpenClaw) để tìm các luồng công việc gọi công cụ có thể phát lại
- reelier_from_session — biên dịch một phiên đã ghi thành SKILL.md có thể phát lại với một xác nhận trên mỗi bước
- reelier_replay — phát lại một kỹ năng một cách xác định với 0 token LLM (chỉ đọc theo mặc định; ghi bị kiểm soát sau
--allow-writes) - reelier_diff — so sánh hai lần chạy: GIỐNG HỆT hoặc BỊ LỆCH theo từng bước, với xác nhận thất bại là lý do; thoát 1 khi bị lệch
- reelier_push — đồng bộ biên lai chạy lên sổ cái để có liên kết cố định có thể chia sẻ (tùy chọn tham gia)
Bằng chứng đo lường được
Từ một điểm chuẩn đối đầu trực tiếp, thực tế (agent so với Reelier, cùng tác vụ, cùng dữ liệu) — bảng đầy đủ + phương pháp luận trong examples/benchmark:
- 1.000 / 1.000 lần phát lại giống hệt từng byte (kiểm tra phương sai đuôi N=1000)
- 0 token mỗi lần phát lại — được xác minh từ bản ghi chạy, không phải giả định
- ~Rẻ hơn 50 lần ($0,000000/lần phát lại so với $0,019068/lần chạy trung bình trên nhánh agent)
- ~Nhanh hơn 59 lần (48ms so với độ trễ trung bình 2.842ms)
- một độ lệch thực tế tự chữa lành với giá ~$0,001, một lần, sau đó miễn phí mỗi lần phát lại sau đó
Độ trễ thay đổi theo mạng — Phát lại Cấp độ 0 thực thi lại các lệnh gọi công cụ của kỹ năng, vì vậy thời gian thực tế phụ thuộc vào kết nối của bạn. Điều không thay đổi: 0 token LLM, cùng các bước mỗi lần chạy, và biên lai. Được chứng thực độc lập — arXiv 2605.14237 cho thấy giảm 93,3–99,98% token cho cùng một mẫu ghi-và-phát lại.
Hoạt động với bất kỳ mô hình nào (BYOK)
Phát lại Cấp độ 0 (mặc định) không bao giờ gọi mô hình — 0 token, theo thiết kế. Leo thang (--max-level 1|2) là tùy chọn tham gia và giao tiếp qua một bề mặt BYOK hẹp (--llm-base-url + --llm-model): một bộ chuyển đổi Anthropic Messages gốc, và một bộ chuyển đổi tương thích OpenAI cho mọi thứ khác (OpenRouter, Ollama, điểm cuối OpenAI của Gemini, Groq, vLLM, LM Studio, Kimi, …). Trỏ nó vào một mô hình mạnh hơn và lần tự chữa lành tiếp theo của mỗi kỹ năng sẽ thông minh hơn miễn phí.
Sở hữu nó — MIT, BYOK, ưu tiên cục bộ
Sử dụng nó ở bất cứ đâu, nhúng nó vào bất cứ thứ gì — không có ràng buộc copyleft, không cần xem xét pháp lý. Kỹ năng, dấu vết và bản ghi chạy của bạn là dữ liệu của bạn — rời đi là sao chép một thư mục. Các định dạng được chỉ định trong SPEC.md, một tham chiếu kiểu RFC chuẩn tắc để bất kỳ ai cũng có thể phát ra hoặc tiêu thụ chúng mà không cần đọc mã nguồn.
Đóng góp
Hoan nghênh các vấn đề và PR — xem SPEC.md để biết các định dạng (đặc tả thắng code; sửa code, không sửa đặc tả). npm test chạy toàn bộ bộ kiểm thử; npm run build && npx tsc --noEmit trước khi tạo PR.
git clone https://github.com/seldonframe/reelier && cd reelier
npm install && npm test
Lịch sử sao
Giấy phép
MIT — tự do fork, nhúng, kiểm toán và tự lưu trữ mãi mãi. (Các phiên bản ≤0.16.0 được phát hành theo AGPL-3.0 và vẫn như vậy.)
Nếu Reelier tiết kiệm cho bạn một lần chạy lại, hãy star nó ⭐ — đó là cách những người xây dựng khác tìm thấy nó.