Vì sao AI agent không được hành động khi bạn chỉ hỏi
AkiDevRule 3.8.0 buộc agent chỉ làm khi có lệnh, gắn mã Q/T/N cho việc còn mở và đọc trọn rule. Mỗi thay đổi kèm bằng chứng từ CHANGELOG.

Một AI agent chỉ được sửa file khi lời của bạn là một mệnh lệnh; một câu hỏi chỉ nhận câu trả lời. AkiDevRule 3.8.0 (20/10/2026) biến nguyên tắc này thành luật có thể kiểm: agent.A3 dựng lại quanh một gốc duy nhất, agent.A4 gắn mã Q/T/N cho việc còn mở, agent.B1 khoá phạm vi vào đúng yêu cầu. Mỗi thay đổi dưới đây đi kèm sự cố hoặc số đo thật được ghi trong CHANGELOG 3.8.0.

Vì sao agent không được hành động khi bạn chỉ hỏi?
Vì nhận ra một câu hỏi chưa bao giờ là chỗ hỏng; chỗ hỏng là không có khoảnh khắc nào bắt agent phán đoán trước khi ghi. Ngày 20/10/2026, một agent đang chạy agent.A3 nhận câu hỏi giấu dấu hỏi sau một lời nói lửng ("có thể là ghi thành notes ...?") và biến nó thành một lần sửa notes, rồi đáp lại lời sửa sai bằng lần git restore thứ hai không ai giao. Khi được nhờ phân loại đúng những tin nhắn đó sau đó, nó phân loại đúng cả. CHANGELOG ghi nguyên nhân gốc: A3 không đòi phán đoán ở lúc nào, và 11 thay đổi trước đó đã đẩy ranh giới này qua lại, 7 lần để hạn chế hành động và 4 lần để mở rộng nó.
Điều gì phân biệt một lệnh với một câu hỏi?
Lệnh là động từ hành động nhắm vào agent ("sửa X", và cả "bạn sửa X được không?"); câu hỏi, lời nói lửng, "có nên", "thế nào" hay lời sửa một việc chưa ai giao chỉ nhận câu trả lời. Luật mới gắn kiểm tra vào đúng lúc cần: trước lần gọi đầu tiên làm đổi trạng thái (mọi thứ ngoài đọc và kiểm tra), agent phải nêu ra chính câu chữ của bạn đã ra lệnh; không có câu nào, hoặc câu đọc được hai nghĩa, thì không gọi. Chiều ngược lại cũng là lỗi: đã có lệnh thì agent làm đến cùng, và hỏi thừa trên việc an toàn bị tính ngang với tự ý hành động.
Mã Q, T, N trong báo cáo của agent nghĩa là gì?
Q, T, N là ba mã gắn cho việc còn mở, đặt theo điều gì xảy ra nếu bạn im lặng, nên bạn nhìn mã là biết có cần mình hay không.
- ◆
Q(quyết): im lặng là dừng, bạn phải trả lời trước khi việc tiếp tục. - ◆
T(tự làm): im lặng là tiếp tục, agent đã tự quyết trong phạm vi lệnh, nêu việc gì, vì sao, và phương án đã loại. - ◆
N(nhớ): im lặng không đổi gì, chỉ là lời nhắc, lưu ý hay ý tưởng ngoài lệnh. - ◆Khi không còn
Q, bạn đọc xong; việc làm được trong lệnh thì đã làm, không bao giờ xếp vào danh sách.
Bằng chứng trong CHANGELOG: 1.260 mục có mã trong 298 khối việc còn mở, qua 254 phiên Claude Code và 500 phiên agy CLI, từ 28/08 đến 20/10/2026, và một chữ cái từng mang tối đa bốn nghĩa (S là bước cổng, phương án thiết kế hoặc việc cần làm). Ba chữ cái chia hết mọi mục vì lời im lặng của bạn chỉ có đúng ba hệ quả, nên loại việc mới không cần mã thứ tư.
"Yêu cầu là toàn bộ phạm vi" nghĩa là gì?
Bước bạn không nêu, như PR sau commit, push sau khi sửa, deploy sau khi build, không được tự làm chỉ vì đó là bước quen thuộc. Ngày 08/10/2026, chủ dự án nhờ một agent thêm đúng một dòng comment và agent còn mở một pull request (PR #1) không ai yêu cầu; luật agent.B1 cũ liệt kê commit và push nhưng không có PR hay deploy. B1 giờ gọi tên PR, deploy, tag và thêm một nguyên tắc: bước thường theo sau của một quy trình vẫn là bước không được yêu cầu.
Cùng nguyên tắc dọn dẹp: trong 516 transcript Claude Code (20/10/2026) có 528 lệnh rm ở 131 transcript, phần lớn xoá file tạm do chính agent tạo. agent.C5 giờ chỉ còn hai luật: không tạo file mà việc làm được không cần, và không tạo ngoài thư mục nháp của phiên. Và coding.B3 thêm "mỗi trạng thái thay đổi chỉ chạy kiểm tra một lần": 507 trên 2.522 lần chạy kiểm tra (20%) lặp lại cùng loại mà không có chỉnh sửa nào xen giữa, 78% trong số đó sau một lần output bị cắt bằng grep hoặc head.
Vì sao rule phải được đọc trọn file mới tính?
Vì đọc một phần rồi tuyên bố đã đọc là cách rule bị bỏ qua mà vẫn trông tuân thủ. Ngày 19/10/2026, một worker được giao đọc hai file rule gọi Read với limit: 40 và limit: 30, rồi mở câu trả lời bằng biên nhận [RULES] nêu tên cả hai. Đo trên transcript: subagent đọc một phần 34 trong 440 lần đọc rule (7,7%), phiên chính 44 trong 1.164 (3,8%). Gốc rễ là mô tả công cụ Read khuyên chỉ đọc phần cần dùng.
Từ 3.8.0, cổng aki-route-guard chỉ tính lần đọc trọn file, và trên Claude Code một lần Read một phần file rule được viết lại thành đọc cả file ngay trong hook, không tốn thêm vòng nào. Cổng cũng đọc được transcript của Cursor, nơi trước đó mọi lần sửa đều bị từ chối dù rule đã đọc.
Trình cài thay đổi gì ở 3.8.0?
- ◆Không còn file
*.akidevrule-backup-*nằm cạnh mỗi file nó đụng tới sau mỗi lần cài; bản sao lưu bị xoá khi lần chạy thành công và chỉ giữ khi lần chạy hỏng. - ◆Cấu hình rtk tuỳ chọn: hỏi một lần trong terminal, mặc định là không, cờ
--rtktrả lời có. Lý do: rtk mặc định có thể cắt output mà agent đang đọc làm bằng chứng. - ◆Một file
route-map.jsonthay ba bảng chép tay đã lệch nhau, nên cổng chặn và script đo cùng đọc một bản đồ đường dẫn sang rule.
Bắt đầu từ đâu?
Chạy npx @akinet/akidevrule@latest (Node 18+, MIT), rồi mở phiên mới; chạy lại đúng lệnh đó là cách cập nhật. Xem trang dự án AkiDevRule, mã nguồn trên GitHub, gói trên npm và Release Notes 3.8.0. Nếu bạn đến từ 3.7, bài AkiDevRule 3.x kể phần trước của hành trình.