Một trong những trải nghiệm khá khó chịu khi làm việc với AI Coding Agent là chuyện... phải liên tục bấm Approve.
Một task đáng lẽ có thể để AI tự xử lý trong vài phút, cuối cùng developer vẫn phải ngồi canh màn hình để liên tục cấp quyền.
Vấn đề không hẳn nằm ở việc AI cần xin phép. Kiểm soát quyền thực thi là cần thiết, đặc biệt khi agent có thể chạy shell commands, chỉnh sửa filesystem hoặc truy cập các công cụ bên ngoài.
Vấn đề là AI đang yêu cầu con người đưa ra quá nhiều quyết định không thực sự cần thiết.
Và để giải quyết việc đó, cho pháp các thợ code có thể yên tâm cắm máy đó và đi ngủ thì Kiro giới thiệu tính năng Approve for me, một cơ chế sử dụng AI để đánh giá và phê duyệt các hành động của AI Agent.
Điều thú vị là thay vì loại bỏ approval, Kiro lại đưa thêm một AI vào quy trình để quyết định khi nào approval thực sự cần thiết.
Nghe hơi giống chuyện thuê thêm một người để quản lý một nhân viên AI vậy. 😅
Hiểu đơn giản, Approve for me là chế độ cho phép Kiro tự động đánh giá mức độ an toàn của những hành động chưa được xử lý bởi permission rules.
Khi agent muốn thực hiện một hành động, Kiro sẽ kiểm tra các rules đã cấu hình.
Nếu hành động chưa có rule quyết định, Kiro sử dụng một LLM để đánh giá. Theo công bố ban đầu, cơ chế này sử dụng model của Anthropic.
Kết quả đánh giá có ba khả năng:
Có thể hình dung luồng xử lý như sau:
Agent Action → Permission Rules → AI Safety Evaluation → Approve / Block / Ask Human
Điểm quan trọng ở đây là AI không thay thế hoàn toàn hệ thống permission hiện có.
Những rule mà developer hoặc tổ chức đã cấu hình vẫn được ưu tiên áp dụng.
Approve for me chỉ xử lý những hành động chưa có rule quyết định.
Trước đây, Kiro sử dụng Autopilot để cho phép agent chỉnh sửa file mà không cần xác nhận từng thay đổi.
Với phiên bản mới, giao diện chat có ba chế độ.
| Mode | Cách hoạt động |
|---|---|
| Supervised | Developer kiểm tra, chấp nhận hoặc từ chối thay đổi file sau mỗi lượt chỉnh sửa |
| Accept file changes | Agent tự tạo, sửa, xóa file; lệnh thực thi vẫn cần approval theo cơ chế quyền hiện có |
| Approve for me | AI đánh giá các hành động chưa được permission rules xử lý và quyết định approve, block hoặc hỏi developer |
Supervised phù hợp với những công việc cần kiểm soát chặt chẽ.
Accept file changes, tên mới của Autopilot, phù hợp khi developer tin tưởng agent chỉnh sửa code nhưng vẫn muốn kiểm soát các lệnh thực thi.
Approve for me hướng đến một mô hình linh hoạt hơn: tự động hóa các approval thông thường nhưng giữ lại những quyết định có rủi ro hoặc chưa rõ ràng cho con người.
Và theo mình, đây mới là điểm đáng chú ý nhất.
Theo số liệu Kiro công bố từ một tuần quan sát các phiên Kiro CLI interactive:
trust-all-tools được bật.Con số 97,1% khá thú vị.
Nó cho thấy phần lớn những lần agent dừng lại để hỏi đều nhận được câu trả lời là Yes.
Vậy developer đang thực sự kiểm tra hành động của agent hay chỉ đang bấm Approve theo thói quen?
Đây chính là hiện tượng permission fatigue.
Khi một hệ thống cảnh báo quá thường xuyên, người dùng dần mất khả năng phân biệt cảnh báo quan trọng với những thông báo bình thường.
Một lời nhắc trước khi chạy npm test có thể chỉ làm gián đoạn công việc.
Nhưng một lời nhắc liên quan đến việc đọc AWS credentials, thay đổi security configuration hay xóa dữ liệu lại có ý nghĩa hoàn toàn khác.
Nếu cả hai đều xuất hiện liên tục dưới cùng một hình thức, developer rất dễ chấp thuận mà không kiểm tra kỹ.
Approve for me cố gắng giảm những quyết định ít giá trị để con người tập trung vào những quyết định quan trọng hơn.
Giả sử team backend đang phát triển một hệ thống thương mại điện tử bằng Node.js.
Một pull request làm hỏng một số unit tests liên quan đến xử lý đơn hàng.
Developer giao cho Kiro nhiệm vụ:
Investigate failing tests in the order service, fix the root cause, and verify that all existing tests pass. Do not change production configuration.
Agent bắt đầu thực hiện workflow:
Read Code → Run Tests → Investigate → Fix Code → Rerun Tests → Report
Trong quá trình đó, agent có thể cần thực hiện nhiều hành động.
| Hành động | Kết quả minh họa |
|---|---|
| Đọc source code trong workspace | Allow theo rule |
Chạy npm test | AI đánh giá và có thể Approve |
| Sửa logic xử lý đơn hàng | Allow theo rule |
| Chạy lại unit tests | AI đánh giá và có thể Approve |
| Thay đổi Git hooks để bỏ qua kiểm tra | Có thể bị Block |
| Truy cập file credentials ngoài workspace | Ask hoặc Block tùy policy và ngữ cảnh |
Đây là tình huống minh họa. Quyết định thực tế phụ thuộc permission rules, môi trường, trust state và đánh giá của model.
Trước đây, một workflow như vậy có thể liên tục dừng lại ở những bước cần approval.
Với Approve for me, các hành động thông thường có thể được xử lý mà developer không cần can thiệp.
Nhưng nếu agent phát sinh một hành động bất thường, chẳng hạn thay đổi cấu hình bảo mật để test chạy thành công, hệ thống có thể chặn lại.
Agent sau đó có thể tìm phương án khác thay vì tiếp tục thực hiện hành động không được chấp thuận.
Điều chúng ta muốn không phải là AI làm mọi thứ mà không hỏi, mà là AI biết khi nào nên hỏi.

Một điểm mình đánh giá cao là Approve for me không bỏ qua những rule đã cấu hình.
Kiro sử dụng các hiệu ứng permission với thứ tự ưu tiên:
Deny → Ask → Allow → Evaluate
Trong đó:
Deny: Hành động bị từ chối theo rule.
Ask: Developer phải xác nhận.
Allow: Hành động được phép thực hiện.
Evaluate: Kiro sử dụng LLM để đánh giá.
Ví dụ, một engineering team có thể thiết lập chính sách:
rm -rf *.Khi đó, những hành động đã bị Deny không thể được Approve for me tự ý cho phép.
Ngược lại, những hành động đã được Allow không cần phải gửi thêm cho LLM review.
Mô hình này khá giống cách thiết kế security policy truyền thống: deterministic rules xử lý những trường hợp đã biết, AI xử lý phần còn chưa được định nghĩa rõ ràng.
Kiro cho biết đã sử dụng Approve for me nội bộ trong hai tuần.
Theo số liệu từ một tuần thử nghiệm:
| Chỉ số | Kết quả |
|---|---|
| Hành động được permission rules xử lý | Khoảng 70% |
| Hành động cần LLM review | Khoảng 30% |
| LLM review xử lý không cần hỏi người dùng | Khoảng 97% |
| LLM review chuyển lại cho người dùng | Khoảng 2% |
| LLM review chặn | Dưới 1% |
| Median review latency | Dưới 1 giây |
Điểm đáng chú ý là 97% ở đây chỉ tính trên nhóm hành động đã được gửi đến LLM review, không phải toàn bộ tool calls.
Kết quả cho thấy AI có thể giải quyết phần lớn những approval còn lại sau khi permission rules đã được áp dụng.
Tuy nhiên, đây mới là số liệu sử dụng nội bộ do Kiro công bố, chưa phải một benchmark độc lập về độ chính xác của khả năng phát hiện hành động nguy hiểm.
Và cũng cần lưu ý: ít approval prompts hơn không đồng nghĩa với an toàn hơn trong mọi tình huống.
Đây có lẽ là câu hỏi quan trọng nhất.
Approve for me sử dụng LLM để đánh giá một hành động có nên được thực thi hay không.
Nhưng LLM không phải security boundary tuyệt đối.
Một model có thể đánh giá sai.
Một shell command nhìn có vẻ bình thường vẫn có thể gây ra tác động ngoài dự kiến.
Một dependency hoặc script được agent thực thi cũng có thể chứa những hành vi mà việc đánh giá ban đầu không phát hiện đầy đủ.
Kiro cũng nói rõ rằng Approve for me chỉ quyết định hành động nào được cấp quyền, chứ không tự giới hạn những tài nguyên mà shell command có thể truy cập sau khi chạy.
Do đó, Kiro khuyến nghị sử dụng thêm Local Command Sandbox trong IDE và CLI.
Sandbox tạo ra lớp giới hạn ở mức hệ điều hành đối với shell commands, bao gồm khả năng hạn chế network access.
Với Kiro Web, các session đã chạy trong môi trường cloud sandbox được quản lý.
Đây là một cách tiếp cận theo nguyên tắc Defense in Depth:
Permission Rules → AI Approval → Sandbox → Human Oversight
Mỗi lớp giải quyết một phần rủi ro khác nhau.
Không có lớp nào nên được xem là giải pháp bảo mật tuyệt đối.
Đối với các công việc dài như refactoring, debugging hoặc xây dựng tính năng mới, việc liên tục phê duyệt từng hành động có thể phá vỡ workflow.
Approve for me giúp agent thực thi những bước thông thường liên tục hơn.
Trước đây, để tránh approval prompts, developer có thể bật trust-all-tools.
Cách này thuận tiện nhưng cũng làm tăng rủi ro vì agent được tin tưởng quá rộng.
Approve for me mang lại một lựa chọn trung gian hợp lý hơn: giảm approval nhưng vẫn có khả năng chặn hoặc hỏi khi cần.
Khi AI chỉ generate code, việc review từng thay đổi chưa phải vấn đề lớn.
Nhưng khi agent thực hiện workflow nhiều bước, liên tục đọc file, chạy tool, sửa code và kiểm tra kết quả, approval trở thành một thành phần ảnh hưởng trực tiếp đến throughput.
Approve for me giúp giảm một phần chi phí tương tác giữa developer và agent.
Điểm đầu tiên là model không bảo đảm đánh giá chính xác tuyệt đối. Doanh nghiệp vẫn cần permission policies, sandbox và các kiểm soát phù hợp.
Điểm thứ hai là chi phí. Kiro tính mức sử dụng LLM review vào gói dịch vụ của người dùng. Với những team có khối lượng agent actions lớn, đây là một yếu tố cần theo dõi.
Điểm thứ ba là không phải mọi approval đều biến mất. Những hành động không rõ mức độ an toàn vẫn có thể cần developer xác nhận.
Kiro cũng có cơ chế quay lại hỏi người dùng kèm lý do sau ba bước liên tiếp gặp hành động bị chặn.
Vì vậy, Approve for me nên được hiểu là một cơ chế giảm ma sát trong quá trình thực thi, không phải chế độ tự động hóa hoàn toàn.
Tính năng được Kiro công bố cho người dùng trả phí trên Kiro IDE, Kiro CLI và Kiro Web tại các khu vực us-east-1 và eu-central-1, tùy khả năng cung cấp của tính năng và model hỗ trợ.
Kiro IDE: Từ phiên bản 1.4.154, chọn Approve for me trong menu chế độ chat. Có thể bật Use Approve for me by default để áp dụng cho các cuộc chat mới ở tất cả workspaces. Command Palette cũng hỗ trợ quản lý thiết lập này.

Kiro CLI: Từ phiên bản 2.36, trong interactive V3 session, sử dụng /permissions, chọn Policies rồi chọn approve-for-me nếu khả dụng.

Kiro Web: Bật trong Agent Config → Tool approvals. Thiết lập áp dụng cho các session mới, không thay đổi autonomous sessions.

Tính năng mặc định không được bật. Nếu chuyển chế độ trong một chat hiện tại, chế độ mới có hiệu lực từ hành động tiếp theo của Kiro.
Điều mình thấy đáng chú ý ở Approve for me không nằm ở việc Kiro giúp developer tiết kiệm vài cú click. Mà là một sự thay đổi trong cách thiết kế AI Agent.

Trước đây, chúng ta thường chỉ tập trung vào: Prompt → Reasoning → Tool Execution → Result
Nhưng khi agent bắt đầu có quyền truy cập filesystem, terminal, cloud resources và các hệ thống bên ngoài, workflow cần thêm một thành phần: Prompt → Reasoning → Permission Evaluation → Tool Execution → Verification
Và Permission Evaluation đang dần trở thành một phần quan trọng trong kiến trúc của AI Agent.
Thay vì buộc developer quyết định mọi hành động, hệ thống có thể phân chia trách nhiệm:
Theo mình, đây là hướng đi hợp lý đối với các AI Agent ngày càng tự chủ. Bởi vì một coding agent tốt không chỉ cần biết viết code, chạy test hay sửa lỗi. Nó còn phải biết những hành động nào có thể tự thực hiện, những hành động nào cần dừng lại và khi nào phải trả quyền quyết định cho con người.
Tuy nhiên, ở thời điểm hiện tại Approve for me chưa giải quyết hoàn toàn bài toán AI Agent Security. Nhưng nó là một bước tiến đáng chú ý từ mô hình Human Approves Everything sang Human Oversees What Matters. Trước đây, với mô hình Human Approves Everything, developer phải liên tục xác nhận từng hành động của AI Agent, kể cả những tác vụ đơn giản như chạy test hay đọc source code. Điều này khiến con người vô tình trở thành nút thắt cổ chai trong quá trình tự động hóa. Với Human Oversees What Matters, vai trò của developer chuyển từ người phê duyệt mọi thao tác sang người giám sát và xử lý những quyết định thực sự quan trọng. AI có thể tự thực hiện các hành động được đánh giá an toàn, trong khi con người chỉ cần can thiệp khi có rủi ro hoặc sự không chắc chắn. Nói cách khác, developer không còn phải quản lý từng bước AI làm, mà tập trung kiểm soát những gì AI được phép làm.
Và khi AI Agent ngày càng tham gia sâu vào Software Development Lifecycle, khả năng kiểm soát hành động có lẽ sẽ quan trọng không kém khả năng viết code.
Nội dung dựa trên tài liệu chính thức của Kiro, cập nhật đến ngày 14/11/2026. Các tình huống thực tế trong bài là ví dụ minh họa, không phải kết quả kiểm thử độc lập.
Bài: Bái Tử Long. Cover Photo by Dimas Rizki Pratama on Unsplash