Một kỹ năng AI kỹ thuật quan trọng là sử dụng các tác nhân lập trình (coding agents). Khả năng điều khiển chúng để viết mã cũng như thực hiện các tác vụ phi mã code, chẳng hạn như phân tích dữ liệu hoặc quản lý vận hành hệ thống, cho phép bạn hoàn thành được nhiều việc hơn.
Tốc độ phát triển nhanh chóng của các tác nhân lập trình đồng nghĩa với việc kỹ năng này cũng đang tiến hóa nhanh không kém — nhanh hơn các kỹ năng AI kỹ thuật hàng đầu khác. Các tác nhân độc quyền (như Claude Code, Codex và Cursor) và tác nhân mã nguồn mở (như OpenCode và Pi) đều tiến bộ vượt bậc nhờ những cải tiến về cả khung (harness) lẫn mô hình. Vì vậy, việc theo kịp cách sử dụng các tác nhân lập trình đòi hỏi một quá trình liên tục thử nghiệm, xây dựng và học hỏi.
Qua phỏng vấn hàng chục Kỹ sư AI hàng đầu và suy ngẫm về cách nhóm của chúng tôi sử dụng các tác nhân lập trình, chúng tôi nhận thấy một quy trình làm việc cấp cao nhất quán để xây dựng phần mềm với chúng. Các bước chính là:
- Lập kế hoạch (Planning). Bước này bao gồm (i) động não, có thể bao gồm nghiên cứu, thử nghiệm và hiểu cơ sở mã hiện có (nếu có) và (ii) viết một bản đặc tả (spec) nắm bắt các yêu cầu, thiết kế kỹ thuật và kiến trúc, sau đó tạo ra một kế hoạch thực thi. Bạn cũng có thể xem xét lại kế hoạch để chất vấn các giả định chính và kiểm tra các vấn đề về bảo mật, thiết kế quá mức (overengineering) và các lỗ hổng khác.
- Thực thi (Execution), nơi bạn xây dựng, kiểm thử và xác minh, với sự cân bằng phù hợp giữa quyền tự chủ của tác nhân và sự giám sát của con người. Điều này bao gồm (i) để tác nhân xây dựng phần mềm, với mức độ tự chủ đã được hiệu chỉnh và (ii) xác minh đầu ra của nó thông qua các kiểm tra tự động và/hoặc của con người.
- Triển khai và giám sát (Deployment and monitoring), trong đó bạn (i) triển khai, có thể được kiểm soát bằng một pipeline CI/CD hoặc các cổng kiểm soát bổ sung của con người, và (ii) sử dụng các tác nhân để theo dõi log, phát hiện vấn đề, đồng thời đề xuất và thực hiện các cải tiến.
Quy trình làm việc cấp cao này tương tự như quy trình thường được sử dụng để xây dựng phần mềm trước khi có các tác nhân lập trình. Giờ đây, chúng ta tập trung ít hơn nhiều vào mã và thay vào đó tập trung vào việc quyết định xây dựng cái gì, thiết kế kiến trúc, viết bản đặc tả và xác minh đầu ra.
Thời lượng của mỗi bước có thể thay đổi đáng kể giữa các dự án và các bước có thể được bỏ qua. Ví dụ: bản đặc tả cho một nguyên mẫu greenfield (xây dựng từ đầu) có thể được mô tả sơ sài trong một prompt được viết nhanh, trong khi bản đặc tả cho một dự án brownfield (đã có sẵn) với nhiều người dùng có thể đòi hỏi nhiều công sức hơn để viết và xác minh. Hơn nữa, quy trình này có tính lặp lại cao, và các nhà phát triển lành nghề biết khi nào phản hồi từ một bước sau đó sẽ đưa họ quay lại bước trước đó. Ví dụ: nếu việc xác minh thất bại, họ biết cách điều khiển tác nhân để xây dựng lại và sửa lỗi; hoặc nếu việc giám sát phát hiện vấn đề, họ biết cách yêu cầu các tác nhân cập nhật hệ thống và triển khai lại.
Để sử dụng các tác nhân lập trình một cách hiệu quả trong quy trình làm việc này, các kỹ năng chính là:
- Điều hướng quy trình làm việc
- Kích hoạt quyền tự chủ của tác nhân
- Xem xét công việc
- Tùy chỉnh tác nhân và môi trường của nó
- Nền tảng về tác nhân lập trình
Điều hướng quy trình làm việc. Bạn biết cách điều hướng từng bước của quy trình làm việc nêu trên. Điều này liên quan đến việc quyết định dành bao nhiêu công sức của con người và bao nhiêu cho tác nhân cho mỗi bước, và khi nào nên quay lại bước trước đó để lặp lại. Nó đòi hỏi sự hiểu biết sâu sắc về sự đánh đổi giữa tốc độ, chi phí, rủi ro kỹ thuật và công sức của con người, để bạn có thể quyết định mức độ nghiên cứu và lập kế hoạch từ đầu, khi nào nên giữ quyền sở hữu của con người đối với công việc quan trọng, cách chọn kiến trúc, mức độ chi tiết cần viết vào một tập hợp các tài liệu lập kế hoạch (như bản đặc tả), và cách phân rã công việc thành các bước có thể xác minh được.
Kích hoạt quyền tự chủ của tác nhân. Khi áp dụng một tác nhân lập trình vào các bước trong quy trình làm việc, bạn chọn mức độ tự chủ: Bạn có theo dõi nó và tương tác qua lại hay ủy thác một phần công việc lớn hơn cho nó? Và khi nào bạn đặt ra một mục tiêu rõ ràng và để nó lặp lại cho đến khi thành công? Ngoài ra, bạn phải quản lý ngữ cảnh (context) một cách cẩn thận cho tác nhân. Khi quá trình xây dựng tiến triển qua các giai đoạn khác nhau, bạn sẽ hiệu chỉnh để đảm bảo rằng các bài học chính, phản hồi của người dùng và các giả định — bao gồm cả những giả định đã thay đổi giữa chừng — được ghi lại để tác nhân sử dụng về sau. Ngoài ra, bạn sẽ quyết định khi nào thiết lập nhiều tác nhân chạy song song trên một sự phân rã của nhiệm vụ — bằng cách để một con người hoặc một tác nhân cấp cao hơn điều phối các tác nhân khác này — và cách quản lý sự chú ý của con người trên các phiên tác nhân đồng thời. Bạn cũng biết cách vận hành các tác nhân một cách an toàn, thiết lập quyền và kiểm soát các hành động một cách phù hợp để cho phép phát triển nhanh chóng trong khi hạn chế rủi ro rò rỉ, mất dữ liệu hoặc các thiệt hại khác.
Xem xét công việc. Đầu ra của một tác nhân lập trình là không chắc chắn. Chúng ta không biết trước nó có thể đưa ra những ý tưởng tốt nào và những lỗi nào nó sẽ cài vào. Xem xét và xác minh đầu ra là một bước quan trọng để đảm bảo bạn nhận được kết quả mong muốn và để điều hướng lại tác nhân nếu không. Bạn sẽ thiết kế việc kiểm thử và xác thực phù hợp với nhiệm vụ, áp dụng cả xác minh hành vi và chức năng khi cần thiết. Bạn cũng có thể kiểm tra luồng người dùng, có thể yêu cầu tác nhân cung cấp ảnh chụp màn hình làm bằng chứng thành công hay thất bại. Đối với đánh giá định tính/hành vi, có thể sử dụng các bộ đánh giá (eval sets), có thể với LLM-as-a-judge.
Bạn cũng cần quyết định bao nhiêu phần trăm trong số các bài kiểm tra này nên được tự động hóa. Một số quy trình làm việc sẽ có tất cả các bài kiểm tra và xác thực được tự động hóa hoàn toàn để tác nhân có thể tự kiểm tra công việc của mình và biết khi nào nó đã hoàn thành một nhiệm vụ. Bạn phải đánh giá các bài kiểm tra để đảm bảo chúng tương ứng với mục tiêu của bạn, và bạn sẽ phát triển chúng nếu không. Ngoài ra, bạn sử dụng đánh giá mã do tác nhân thực hiện (agentic code review) và chạy các cuộc kiểm toán bảo mật và kiến trúc hỗ trợ AI. Khi đánh giá AI không đủ, bạn chèn một cách có chọn lọc các đánh giá của con người về hành vi của mã (và đôi khi, cả về mã) trong khi khám phá cách tự động hóa việc đánh giá này hơn nữa. Cuối cùng, bạn xác minh việc triển khai và có thể vận hành giám sát và quản lý sự cố với các tác nhân.
Tùy chỉnh tác nhân và môi trường của nó. Khả năng cập nhật cả tác nhân và môi trường nó làm việc cho phép các tác nhân của bạn có được ngữ cảnh cần thiết một cách hiệu quả, truy cập các công cụ, và xây dựng một cách chính xác và hiệu quả. Bạn biết cách tích hợp các kỹ năng, plugin và máy chủ MCP của tác nhân. Đôi khi bạn sẽ cắt bỏ chúng khi chúng không còn cần thiết nữa (ví dụ: khi một mô hình mới làm cho một kỹ năng cũ trở nên lỗi thời). Bạn có thể sử dụng các hook để tự động hóa các phần có thể lặp lại của quy trình phát triển, như kích hoạt các đánh giá mã tự động hoặc pipeline CI/CD. Bạn cũng có thể duy trì môi trường mà tác nhân làm việc: cập nhật ngữ cảnh thường trực (như AGENTS.md hoặc CLAUDE.md) với thông tin về cơ sở mã, các giả định kiến trúc chính, phong cách mã và các mẫu truy cập dữ liệu. Bạn biết cách bảo toàn trạng thái qua nhiều phiên và qua các tác nhân song song, và tích lũy kiến thức của tác nhân theo thời gian, có thể bằng cách chạy các buổi tổng kết sau khi chạy (post-run retrospectives) để ghi lại những gì đã hiệu quả và không hiệu quả. Bạn cũng biết cách thiết lập các quy ước và cấu trúc nhất quán để làm cho cơ sở mã của bạn có thể điều hướng được đối với tác nhân, và cách thỉnh thoảng dọn dẹp các khoản nợ kỹ thuật do tác nhân tạo ra. Khi làm việc trong một nhóm, bạn cân nhắc cách phối hợp ngữ cảnh giữa các tác nhân của các nhà phát triển khác nhau.
Nền tảng về tác nhân lập trình. Cuối cùng, để đưa ra các quyết định đúng đắn trong suốt quá trình, bạn có hiểu biết tốt về cách các tác nhân lập trình hoạt động: cách chúng thực hiện tìm kiếm/truy xuất cơ sở mã, cách chúng quản lý cửa sổ ngữ cảnh của mình, cách các thao tác khác nhau (như thêm lệnh gọi công cụ, máy chủ MCP, v.v.) ảnh hưởng đến ngữ cảnh, cách các tác nhân và tác nhân phụ tương tác, và cách tác nhân được xây dựng bằng cách bọc một khung (harness) xung quanh một LLM. Điều này làm cho tác nhân bớt giống như một hộp đen và giúp bạn nhận ra các chế độ thất bại, chẳng hạn như thiết kế quá mức một giải pháp đơn giản, mất đi tính chặt chẽ vì tác nhân thiếu một quy trình xác minh rõ ràng, dừng lại trước mục tiêu, hoặc các hành động của tác nhân có nguy cơ phá hủy tệp hoặc dữ liệu sản xuất. Nó cũng giúp bạn suy luận về trạng thái của tác nhân và điều hướng nó bằng cách đưa ra các chỉ dẫn hoặc ngữ cảnh phù hợp. Và khi giám sát một lần chạy, sự hiểu biết này cho phép bạn phát hiện tốt hơn khi tác nhân đi chệch hướng và cần sự can thiệp của bạn.
Tôi thấy rằng mạng xã hội thường đưa ra những mô tả quá đơn giản về cách sử dụng các tác nhân lập trình. Ví dụ, đôi khi việc để các tác nhân chạy tự động trong nhiều giờ và tiêu tốn hàng triệu hoặc hàng chục triệu token là hữu ích. Nhưng hiện tại, tiện ích thực tế của các tác vụ có tầm nhìn rất dài (very long-horizon tasks) — đặc biệt là so với chi phí của chúng — đã bị thổi phồng quá mức so với thực tế. Thay vào đó, hầu hết việc sử dụng tác nhân lập trình hiệu quả là một quá trình phức tạp, có tính lặp lại cao, và việc có thể can thiệp với phán đoán kỹ năng cao sẽ mang lại kết quả tốt hơn nhiều.
Kỹ năng sử dụng các tác nhân lập trình sẽ giúp bạn trở thành một người xây dựng hiệu quả. Điều này giúp bạn có vị thế để cũng điều hướng toàn bộ quá trình xây dựng. Tôi sẽ nói thêm về điều này trong một bài viết trong tương lai.



![Tỏa sáng tại nơi làm việc: 30 thủ thuật chuyên nghiệp để thay đổi cách bạn sử dụng Copilot [Tháng 9 năm 2026]](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1788628071941_pqwsyn_HRZ5ruNbsAA5DkG.jpg)

