DashClaw: quản trị AI agent cho phiên chạy không giám sát
DashClaw là một lớp phê duyệt fail-closed, tạm dừng các lệnh rủi ro của agent lập trình — như `rm -rf` hay một lần force-push — trước khi chúng được thực thi, rồi gửi thông báo để bạn duyệt hoặc từ chối từ bất kỳ đâu. Hãy chọn DashClaw nếu bạn để agent chạy không giám sát nhiều giờ liền và cần ai đó ngoài bàn phím bắt được lệnh sai; bỏ qua nếu bạn luôn ngồi trước máy, vì Claude Code và Codex đã có sẵn cơ chế xác nhận miễn phí cho trường hợp đó.
Thách thức của các AI agent chạy không giám sát
Các AI coding agent như Claude Code hay Codex có sẵn hộp thoại xin quyền cho người đang ngồi trước màn hình, nhưng hộp thoại đó vô dụng ngay khi bạn không có mặt. README của DashClaw chỉ thẳng vào lỗ hổng này: một lập trình viên độc lập hay một đội nhỏ khởi chạy một phiên không giám sát kéo dài từ một đến sáu giờ — một phiên chạy qua đêm, một agent trong CI, hay một cụm agent chạy nền — nhắm vào một repo và hạ tầng thật, và không thể theo dõi từng lệnh gọi công cụ. Nếu agent tự suy luận ra lệnh `git push --force origin main` hay một `DROP TABLE` lúc 2 giờ sáng, hộp thoại xác nhận gắn với bàn phím chỉ đơn giản là treo phiên chạy đến sáng hôm sau — không ai kịp thấy để từ chối. Chính nhật ký của người bảo trì DashClaw còn ghi lại việc công cụ này bắt được một lệnh shell của chính người bảo trì đang trong lúc xác minh — trích xuất một API key từ `.env.local` và chuẩn bị gửi ra ngoài. Đó chính là lỗ hổng cụ thể: không phải "agent cần được giám sát" một cách chung chung, mà là việc các hộp thoại xác nhận có sẵn về bản chất đòi hỏi bạn phải có mặt, còn những phiên chạy không giám sát dài lại đúng là lúc bạn không có mặt.
DashClaw cung cấp những gì
DashClaw là một runtime quản trị, đứng giữa thời điểm agent lập trình AI quyết định gọi một công cụ và thời điểm công cụ đó thực sự chạy, rồi chấm điểm rủi ro cho hành động đó dựa trên chính sách của bạn. Nó chạy như một server cục bộ, khởi động bằng `npx dashclaw up`, cùng hook cho Claude Code, Codex, Hermes, một MCP server, và SDK cho Node và Python. Mọi quyết định đều được ghi vào một sổ ghi có thể phát lại, đã ký số.
Năng lực cốt lõi trong kiểm soát AI agent
- ✓Chặn theo kiểu fail-closed: một lệnh gọi bị chặn sẽ khiến hook thoát với mã 2, nên công cụ đó không bao giờ thực sự chạy — việc chặn diễn ra trước khi thực thi, chứ không phải sau đó.
- ✓Phê duyệt từ xa chỉ với một cú nhấp: xử lý một hành động đang bị tạm dừng từ hộp thư `/approvals`, CLI, ứng dụng PWA trên điện thoại, Telegram hoặc Discord, không cần ngồi trước bàn phím.
- ✓Sổ kiểm toán chống giả mạo: biên nhận được ký bằng Ed25519 và một sổ ghi quyết định có thể phát lại; ai cũng có thể kiểm tra một biên nhận tại `POST /api/integrity/verify` mà không cần API key, vì khóa ký được công bố qua JWKS.
- ✓Hiệu chỉnh mức độ gián đoạn: một bộ điều khiển distribution-free biến lịch sử duyệt/từ chối của bạn thành một giới hạn tỷ lệ gián đoạn sai đã được chứng minh, thay vì một ngưỡng đoán mò.
- ✓Đầu dò kiểm tra hiệu lực thực thi: đưa một hành động giữ giả lập đi qua đúng đường hook thật và kết luận dựa trên việc nó có thực sự được thực thi hay không, chứ không dựa vào việc đọc sổ ghi.
- ✓Quét prompt injection được bật mặc định: các mẫu ghi đè hệ thống có độ tin cậy cao sẽ ép ra quyết định `block` ngay tại bước guard, còn các mẫu yếu hơn chỉ nâng lên mức `warn`.
- ✓Bộ dựng chính sách khai báo: mười công tắc an toàn dựng sẵn — Deploy Gate, Risk Threshold, Rate Limiter, Evidence Required, Protected Path, Subagent Constraint và một số công tắc khác — trải trên 15 loại guard policy, cộng thêm một bộ sinh chính sách bằng AI và khả năng nhập YAML.
- ✓Bao phủ nhiều runtime: Claude Code, Codex, Hermes, OpenClaw, MCP, SDK cho Node và Python, cùng REST thuần đều đi vào cùng một guard engine và cùng một sổ ghi quyết định.
Ai nên dùng DashClaw
DashClaw nhắm đến một đối tượng hẹp có chủ đích: một lập trình viên độc lập hay một đội nhỏ chạy các phiên coding agent không giám sát kéo dài — chạy qua đêm, agent trong CI, hay cụm agent chạy nền — nhắm vào một repo và hạ tầng thật, theo đúng mô tả trong README. Nếu bạn luôn làm việc trước bàn phím và có thể tự mắt kiểm tra từng lệnh gọi công cụ, các hộp thoại xác nhận có sẵn trong Claude Code hay Codex đã đủ dùng miễn phí, và DashClaw chỉ thêm việc cài đặt bạn không cần. Nó phù hợp hơn khi phiên chạy đủ dài, hoặc có đủ nhiều agent, đến mức bạn không thể theo dõi liên tục.
Bắt đầu nhanh và tự triển khai
Cách nhanh nhất chỉ cần một lệnh: `npx dashclaw up`. Lệnh này tự cấp phát Postgres (qua Docker hoặc bản nhúng sẵn), tạo secret, cấp một API key, áp migration, khởi động server ở cổng 3000, đề nghị gắn sẵn hook cho Claude Code, và mở trình duyệt với trạng thái đã đăng nhập — không cần tài khoản để chạm tới hành động đầu tiên bị chặn. Để gắn plugin cho một coding agent cụ thể sau đó: `npm i -g @dashclaw/cli`, rồi `dashclaw install claude` (lệnh này gắn vào `~/.claude/settings.json` và mặc định các bản cài mới ở chế độ enforce), `dashclaw install codex --project /path/to/repo`, hoặc `bash scripts/install-hermes-plugin.sh` cho Hermes (có bản `.ps1` cho Windows). Để triển khai lên cloud với chi phí 0 đồng, kết hợp gói miễn phí của Vercel với gói Postgres miễn phí của Neon và điền các biến môi trường từ `.env.example`; migration schema sẽ chạy trong lúc build. Nếu muốn xem hộp thư Approvals trước khi triển khai bất cứ thứ gì, `hosted.dashclaw.io/connect` sẽ dựng một không gian làm việc dùng thử có giới hạn ngay trên trình duyệt, và sau đó bạn có thể xuất không gian làm việc đó rồi chạy `dashclaw import <bundle.json>` vào instance của riêng mình — chính sách, quyết định, lịch sử và agent đều được mang theo, nhưng API key và các giá trị bí mật thì không bao giờ đi kèm trong dữ liệu xuất ra.
Điểm mạnh
- ✓Việc chặn được xác minh chứ không chỉ tuyên bố suông: một đầu dò kiểm tra hiệu lực thực thi đưa một hành động giả lập đi qua đúng đường hook thật và kiểm tra xem nó có thực sự chạy hay không, nên một hook đã cũ hoặc âm thầm hỏng sẽ không hiện màu xanh giả.
- ✓Việc phê duyệt không bị trói vào một chiếc laptop — cùng một hành động đang tạm dừng có thể được xử lý từ CLI, PWA trên điện thoại, Telegram hoặc Discord.
- ✓Người bảo trì công khai chính nhật ký sự cố của mình: một đợt 18 ngày tắt hết chính sách mặc định, và một lỗi timeout ở bản v4.72.1 từng âm thầm để lọt các lệnh bị chặn trong khi sổ ghi vẫn trông sạch sẽ. Sự thẳng thắn kiểu này hiếm thấy trong tài liệu của một công cụ bảo mật.
- ✓Cấp phép MIT và chi phí 0 đồng để dùng thử — chỉ một lệnh chạy cục bộ, hoặc triển khai qua gói miễn phí Vercel kết hợp Neon.
DashClaw không phải là gì
- △Việc thực thi chỉ thực sự mang tính cơ học tại một số điểm cụ thể — hook của Claude Code, Codex và Hermes, gateway của OpenClaw, và `dashclaw_invoke`. Ở mọi nơi khác (SDK trần, REST API, phần lớn client MCP, chat trên desktop) nó chỉ mang tính hợp tác: bên gọi phải tự chọn tham khảo quyết định của guard, DashClaw không ép buộc điều đó.
- △Dự án còn khá non trẻ: theo README, commit đầu tiên là vào tháng 2 năm 2026, và dự án tự mô tả mình được kiểm chứng qua việc dùng liên tục (dogfood), chứ chưa qua một lượng người dùng lớn.
- △Đây không phải một nền tảng agent — không có công cụ lịch, CRM, nhắn tin hay RAG — nên nó chỉ quản trị hành động, chứ không giúp agent hoàn thành việc gì cả.
- △Đây không phải một công cụ observability. Nếu thứ bạn thực sự cần là nhật ký chi tiết và bảng điều khiển về những gì agent đã làm, cơ chế chặn trước khi thực thi của DashClaw không đáp ứng điều đó; hãy dùng kèm một công cụ như LangSmith hoặc Langfuse.
DashClaw so với các công cụ agent khác
Câu hỏi thường gặp
DashClaw bắt các lệnh shell và lệnh cơ sở dữ liệu mang tính phá hoại trước khi chúng thực thi — README liệt kê lệnh `rm -rf` trong thư mục làm việc, một `DROP TABLE` nhắm vào cơ sở dữ liệu đang chạy, một `git push --force origin main`, và trường hợp đọc file `.env` với ý định lấy dữ liệu ra ngoài. Mỗi lệnh đều bị tạm dừng ngay tại hook thay vì được chạy.
DashClaw có thể tự triển khai với chi phí 0 đồng: chạy `npx dashclaw up` cục bộ để tự cấp phát Postgres và khởi động server ở cổng 3000, hoặc triển khai bằng cách kết hợp gói miễn phí của Vercel với gói Postgres miễn phí của Neon.
DashClaw có sẵn hook cho Claude Code, Codex và Hermes, một plugin gateway cho OpenClaw, một MCP server, cùng SDK cho Node và Python. SDK Python còn tích hợp thêm CrewAI và AutoGen, và agent LangChain cũng có thể gọi tới DashClaw qua chính SDK Python đó.
DashClaw không khẳng định mình thực thi cứng trên toàn bộ hệ thống, và README nói rõ điều này sẽ không bao giờ thay đổi. Việc thực thi chỉ thực sự mang tính cơ học tại một số điểm cụ thể — hook của Claude Code, Codex và Hermes, gateway OpenClaw, và `dashclaw_invoke` — còn SDK trần, REST API và phần lớn client MCP chỉ dựa trên thực thi mang tính hợp tác.
DashClaw được phát hành theo giấy phép MIT và lưu trữ công khai trên GitHub, nơi hiện có 288 star và 49 fork.
DashClaw vẫn ở giai đoạn sớm: README ghi rằng commit đầu tiên là vào tháng 2 năm 2026, và dự án tự mô tả mình được kiểm chứng qua việc dùng liên tục (dogfood) chứ chưa qua một lượng người dùng lớn, với những sự cố như đợt 18 ngày trong tháng 6 năm 2026 được công khai ngay trong nhật ký của người bảo trì.
Trường hợp sử dụng tốt nhất
- •Khởi chạy một phiên coding agent qua đêm nhắm vào một repo thật, rồi thức dậy với một sổ ghi quyết định thay vì một cú force-push bất ngờ.
- •Chạy agent trong CI hoặc cả cụm agent chạy nền, những nơi không ai theo dõi từng lệnh gọi công cụ theo thời gian thực.
- •Gắn vào phiên Claude Code, Codex hoặc Hermes để các lệnh Bash, Edit, Write, MultiEdit hay MCP mang tính phá hoại bị tạm dừng trước khi thực thi.
- •Duyệt hoặc từ chối một hành động đang tạm dừng ngay từ điện thoại qua PWA, Telegram hoặc Discord khi bạn không ở gần máy tính.
Cách sử dụng
Sau khi server đã chạy, vòng lặp SDK gồm bốn lệnh gọi. Gọi `guard()` với hành động thật (một lệnh shell, một lần ghi file) và server của DashClaw sẽ chấm điểm rủi ro dựa trên bằng chứng đó — bằng chứng chỉ có thể làm tăng điểm rủi ro, không bao giờ làm giảm. Gọi `createAction()` để ghi lại mục tiêu đã khai báo. Nếu quyết định trả về là `require_approval`, `waitForApproval()` sẽ chặn cho đến khi có người xử lý từ hộp thư, CLI, PWA trên điện thoại, Telegram hoặc Discord — mỗi lượt cấp quyền chỉ dùng được một lần và gắn chặt với đúng hành động đó. Cuối cùng, gọi `reportActionSuccess()` hoặc `reportActionFailure()` để đóng bản ghi; kết quả đầu tiên sẽ thắng, và một lần thử lại sau đó sẽ nhận về mã 409. Bên trong Claude Code, Codex và Hermes, hook sẽ tự chạy vòng lặp này giúp bạn — Bash, Edit, Write, MultiEdit, việc sinh sub-agent, và mọi lệnh gọi `mcp__*` đều đi qua một bước kiểm tra PreToolUse theo kiểu fail-closed. Các bản cài mới mặc định ở chế độ enforce; thêm `--observe` hoặc đặt biến `DASHCLAW_HOOK_MODE=observe` để chỉ ghi log mà không chặn. Bạn có thể xác nhận hook đã được gắn đúng bằng cách đưa một payload tool-call mẫu vào `.claude/hooks/dashclaw_pretool.py` và kiểm tra phản hồi.
