Axiom – ngăn chặn các tác tử AI tự đặt ra những giới hạn mà mã nguồn chưa từng quy định
Đường dẫn bài viết: https://github.com/axiom-csc/axiom-skill Đường dẫn bình luận: https://news.ycombinator.com/item?id=50386839 Điểm: 1 Số bình luận: 0
Axiom — Rào chắn cục bộ cho các tác tử lập trình AI
Axiom là rào chắn cục bộ dành cho các tác tử lập trình AI. Công cụ này hoạt động như một điểm can thiệp trước khi ghi (pre-write hook) trong Claude Code và Cursor, đồng thời đóng vai trò bộ lọc stdin/stdout đối với bất kỳ tác tử nào có khả năng chuyển tiếp các lệnh gọi công cụ qua tiến trình con. Không phụ thuộc thư viện ngoài. Không sử dụng mã khóa API. Không tiêu tốn token. Cơ chế can thiệp được thực hiện trước khi lệnh ghi diễn ra.
Cơ chế phát hiện hoạt động dựa trên biểu thức chính quy (regex) và mô hình cây cú pháp trừu tượng (AST), không dựa trên ngữ nghĩa. Tác tử hoặc đối tượng tấn công có chủ đích có thể vượt qua các bước kiểm tra này thông qua việc xáo trộn mã ở mức độ đơn giản. Công cụ này xử lý các vi phạm vô ý phổ biến nhất, không có khả năng chống lại các cuộc tấn công đối kháng. Để ngăn ngừa tấn công đối kháng, cần kết hợp công cụ với giải pháp cô lập vùng chứa (container) và cơ chế bảo vệ nhánh mã nguồn.
[ Claude Code / Đường ống tác tử AI ]
|
( Điểm can thiệp PreToolUse Hook )
|
+───────────────────────────────────────────────────+
| Động cơ lõi Axiom |
| +─────────────────────────────────────────────+ |
| | Noema: Đường ống hạ cấp AST nhận biết phạm vi| |
| +─────────────────────+───────────────────────+ |
| | |
| +─────────────────────+───────────────────────+ |
| | Lemma: Bộ giải logic quan hệ (Python) | |
| +─────────────────────+───────────────────────+ |
| | |
| +─────────────────────+───────────────────────+ |
| | Manam: Bộ điều khiển nhận thức ba trạng thái | |
| +─────────────────────+───────────────────────+ |
+───────────────────────────────────────────────────+
|
+───────────────+───────────────+
v v
[TRUE / FALSE] [UNKNOWN]
(Cho phép chạy công cụ) (Dừng theo cơ chế đóng an toàn)
Cài đặt
# Cấp độ dự án (khuyến nghị)
curl -fsSL https://raw.githubusercontent.com/axiom-csc/axiom-claude-skill/v1.2.2/install.sh | bash
# Toàn cục — áp dụng cho mọi dự án trên máy này
curl -fsSL https://raw.githubusercontent.com/axiom-csc/axiom-claude-skill/v1.2.2/install.sh | bash -s -- --global
Quy trình hoàn tất. Trình cài đặt sẽ tải xuống điểm can thiệp, đăng ký vào tệp .claude/settings.json và khởi tạo tệp .axiom/invariants.yaml từ cơ sở mã nguồn chỉ trong một bước. Kể từ thời điểm này, Axiom sẽ tự động vận hành trong mọi phiên làm việc của Claude Code và Cursor.
Lý do phương thức curl | bash bảo đảm an toàn: Trình cài đặt là một tập lệnh bash có chức năng tải xuống 6 tệp Python và đăng ký điểm can thiệp trong .claude/settings.json. Hệ thống không thực hiện các lệnh gọi mạng sau khi cài đặt, không bao giờ chạy dưới quyền quản trị (root) và chỉ ghi vào thư mục dự án (hoặc ~/.claude/ với tham số --global). Tham khảo mã nguồn tại: https://github.com/axiom-csc/axiom-claude-skill/blob/v1.2.2/install.sh
Đối với các tác tử bổ sung:
curl -fsSL .../install.sh | bash -s -- --agents=cursor # Claude Code + Cursor
curl -fsSL .../install.sh | bash -s -- --agents=cursor,vscode # + Tác vụ lưu tệp của VS Code
Gỡ cài đặt
bash install.sh uninstall
Nguyên lý hoạt động
Lần xử lý
Thành phần
Chức năng
1
Noema
Trích xuất các ràng buộc định kiểu từ ngữ cảnh nhiệm vụ thông qua mẫu biểu thức chính quy (regex)
2
Lemma
Đánh giá các ràng buộc dựa trên các điều kiện bất biến (logic Python tất định)
3
Manam
Thực thi logic 3 trạng thái: TRUE / FALSE / UNKNOWN
Khi trả về UNKNOWN — Claude dừng lại và đưa ra câu hỏi chuẩn xác.
Khi trả về FALSE — Claude thông báo lỗi AxiomConstraintViolation và ngừng hoạt động.
Khả năng tương thích của tác tử
Tác tử
Chế độ
Khả năng chặn?
Claude Code
Điểm can thiệp PreToolUse thông qua .claude/settings.json
Có — chặn trước khi ghi
Cursor
.cursor/hooks.json (cùng định dạng)
Có — chặn trước khi ghi
Aider / Continue / thông thường
Chế độ --stdin (chuyển tiếp lệnh gọi công cụ qua JSON)
Có — nếu được liên kết thủ công
VS Code + Copilot
Tác vụ lưu tệp (.vscode/axiom-task.json)
Không — gắn cờ cảnh báo sau khi ghi
Chế độ tổng quát --stdin — áp dụng cho mọi tác tử có khả năng chuyển tiếp dữ liệu JSON qua một tiến trình con:
echo '{"tool_name":"Write","tool_input":{"file_path":"src/auth/middleware.py","content":"if user.id==1: return True"}}' \
| python3 .claude/skills/axiom-csc/hooks/pre_tool_use.py --stdin
# exit 1 = từ chối (deny), exit 2 = hỏi lại (ask), exit 0 = cho phép (allow)
Nội dung phát hiện
Danh mục
Nội dung Axiom phát hiện
Hạn chế đã ghi nhận
Thanh toán / giới hạn số học
Các giới hạn gán cứng không khớp với chính sách
Các giới hạn lưu trong biến (max = 10000; amount > max); biểu thức toán học — MAX_TRANSACTION = 10000 * 8 được đọc là 10000 thay vì 80000
Xác thực: ID gán cứng
Kiểm tra user.id == 1 trong các đường dẫn xác thực (dựa trên AST)
Biến bí danh sâu hơn một bước chuyển tiếp
Xác thực: lệnh trả về vô điều kiện
if True: return True trong các đường dẫn xác thực
Các chuỗi điều kiện phức tạp
Xác thực: chuỗi ký tự định danh vai trò
"admin", "root" trong các tệp xác thực không thuộc tệp cấu hình
Tệp cấu hình được loại trừ theo thiết kế; tên vai trò không phải bằng tiếng Anh
Xác thực: kiểm tra bị vô hiệu hóa bởi chú thích
# check permission trong các tệp xác thực
Chú thích không phải bằng tiếng Anh
Lệnh Bash nguy hiểm
DROP TABLE, rm -rf (ngoài thư mục tmp), curl|bash, các thao tác ghi vào .axiom/
Lệnh nhiều dòng, heredoc, lệnh thông qua subprocess của Python; dữ liệu tải trọng mã hóa được chuyển tiếp sang bash qua đường ống (base64 -d | bash, xxd, các mẫu giải mã thập lục phân)
Thông tin bí mật
Khóa AWS, khóa Stripe chính thức/thử nghiệm, khóa OpenAI, khối chứng chỉ PEM, mật khẩu gán cứng
Thông tin bí mật lưu trong biến trước khi gán; thông tin bí mật mã hóa bằng base64
Xung đột gói phụ thuộc
Viết sai tên các gói requests, numpy, flask, django, express, react, lodash, axios
Các gói không nằm trong danh sách định sẵn
Giới hạn tần suất
Các giá trị yêu cầu/phút (req/min) tự tạo
Các giá trị nằm trong tệp cấu hình riêng biệt
Tải tệp lên
Dung lượng trần giả định
Dung lượng trần biểu thị bằng byte thay vì MB
Cơ sở dữ liệu
Mệnh đề LIMIT tùy ý
Mệnh đề LIMIT trong chú thích hoặc chuỗi ký tự
Hạn mức API
Hạn mức số lượt gọi hằng ngày tự tạo
Hạn mức lưu trong biến môi trường
Các kiểm tra xác thực được áp dụng theo phạm vi đường dẫn — chỉ kích hoạt trong các tệp thuộc auth/, middleware/, permissions/ hoặc roles/. Cấu trúc tương tự trong src/utils/helpers.py vẫn được chấp thuận.
Cơ chế phát hiện vượt quyền xác thực sử dụng mô-đun ast của Python, do đó khoảng trắng và các biến bí danh đơn giản không thể vượt qua bước kiểm duyệt.
Ví dụ trước / sau
Khi không sử dụng Axiom — tác tử thiết lập MAX_TRANSACTION cao hơn mức chính sách cho phép:
# Claude ghi:
MAX_TRANSACTION = 75000 # tăng hạn mức cho gói doanh nghiệp
Khi có Axiom (hook kích hoạt ngay khi xuất hiện lệnh gọi Edit):
❌ [Lemma BLOCK] AxiomConstraintViolation: transaction_value = 75000.0 violates lte 50000
[axiom-csc] Invariant violation: ❌ [Lemma BLOCK] AxiomConstraintViolation: transaction_value = 75000.0 violates lte 50000
Claude nhận diện lý do từ chối và yêu cầu làm rõ thay vì âm thầm ghi đè giá trị sai phạm.
Để ghi lại ảnh động minh họa (GIF): cài đặt vhs (brew install charmbracelet/tap/vhs), sau đó chạy lệnh:
vhs scripts/demo.tape
Hoặc ghi lại bằng asciinema: asciinema rec demo.cast && bash scripts/record_demo.sh — tải tệp .cast lên asciinema.org và nhúng đường dẫn.

Nguồn tin: Hacker News AI — Tác giả: nsara11. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.