# Agent AI tự động viết code từ lời dẫn: một thử nghiệm đầy hứa hẹn

Đăng ngày: 2026-07-08

Simon Willison, một gương mặt quen thuộc trong giới phát triển và công nghệ, vừa mang đến một thử nghiệm mới mà tôi tin là đáng để chúng ta chú ý: llm-coding-agent phiên bản 0.1a0. Về cơ bản, đây là một agent lập trình được xây dựng trên thư viện llm của chính anh ấy, với tham vọng biến những mô tả ngôn ngữ tự nhiên thành các tác vụ lập trình cụ thể, từ viết code đến quản lý dự án. Tôi thấy cách Simon tạo ra nó khá trực diện và thông minh. Anh ấy bắt đầu với một thư viện Python mới, sau đó "ra lệnh" cho Claude qua hai prompt rõ ràng. Đầu tiên, yêu cầu viết một file spec.md cho dự án, định rõ nó sẽ là một agent lập trình theo kiểu Claude code, tích hợp các công cụ để đọc, chỉnh sửa file và thực thi lệnh. Kế đó, Simon yêu cầu agent commit bản spec đó, rồi triển khai dự án theo phương pháp TDD (red/green TDD) với hàng loạt commit hợp lý, mỗi commit đều có kiểm thử đạt và tài liệu được cập nhật. Kết quả cuối cùng là một gói llm-coding-agent trên PyPI, có thể chạy dễ dàng bằng lệnh uvx --prerelease=allow --with llm-coding-agent llm code. Điều tôi thấy thú vị là agent này còn tự động phát triển một API Python dạng CodingAgent(model="gpt-5.5", root="/path", approve=True).run("Fix the failing test in tests/test_parser.py") mà Simon ban đầu không hề yêu cầu nhưng lại cực kỳ hài lòng khi thấy nó được hiện thực hóa. Để vận hành được những tác vụ như vậy, agent được trang bị một bộ công cụ khá đầy đủ. Chẳng hạn, CodingTools_edit_file giúp thay thế một chuỗi chính xác trong file, đòi hỏi old_string phải khớp hoàn toàn và trả về bản diff để người dùng xác minh. CodingTools_execute_command cho phép chạy lệnh shell trong thư mục gốc của phiên làm việc, với timeout mặc định 120 giây (tối đa 600 giây), trả về cả stdout, stderr và mã thoát. Để quản lý cấu trúc file, có CodingTools_list_files liệt kê các file theo mẫu glob, bỏ qua thư mục ẩn, node_modules, pycache và các mục trong .gitignore, giới hạn 200 đường dẫn. CodingTools_read_file đọc file văn bản với các dòng được đánh số như lệnh cat -n, hỗ trợ offset và limit để phân trang các file lớn. CodingTools_search_files tìm kiếm nội dung file bằng biểu thức chính quy, trả về tối đa 100 kết quả và có thể giới hạn bằng glob. Cuối cùng, CodingTools_write_file dùng để tạo hoặc ghi đè file với nội dung cung cấp, tự động tạo các thư mục cha nếu cần, dù được khuyên dùng edit_file cho các file đã tồn tại. Simon cũng đã thử nghiệm khả năng của agent bằng một tác vụ khá cụ thể và sáng tạo. Anh ấy chạy llm code --yolo, sau đó yêu cầu agent tạo thư mục /tmp/demo và trong đó "tạo một ứng dụng CLI SwiftUI đơn giản để hiển thị thời gian bằng nghệ thuật ASCII". Điều đáng nói là agent, sử dụng GPT-5.5, đã ghi nhận rằng "SwiftUI isn't suitable for a true CLI" nhưng vẫn tiếp tục quá trình xây dựng ứng dụng. Cuối cùng, nó đã tạo ra một ứng dụng AsciiTime có thể chạy và cho ra output hiển thị thời gian bằng ký tự ASCII đặc trưng. Nhìn vào cách llm-coding-agent vận hành, từ việc tự động viết spec, áp dụng TDD, cho đến tự tạo ra một API Python hoàn chỉnh và thực hiện các tác vụ lập trình phức tạp, tôi nhận ra đây không chỉ là một công cụ tiện lợi mà còn là một bước tiến quan trọng. Nó cho thấy cách AI đang dần đi sâu vào quy trình phát triển phần mềm, không chỉ dừng lại ở việc tạo ra các đoạn code ngắn mà còn có khả năng lập kế hoạch, suy luận và thực thi các dự án nhỏ. Điều này đặt ra câu hỏi lớn về tương lai của nghề lập trình, về việc AI sẽ trở thành một "đồng nghiệp" như thế nào, và liệu chúng ta đã sẵn sàng để trao cho chúng quyền năng "tự chủ" hơn trong việc xây dựng phần mềm hay chưa. Chắc chắn, vai trò của người kỹ sư sẽ thay đổi, nhưng một điều rõ ràng là khả năng của AI trong việc kiến tạo code đang ngày càng trở nên tinh vi hơn.

Canonical: https://www.tungpham.vn/blog/agent-ai-tu-dong-viet-code-tu-loi-dan-mot-thu-nghiem-day-hua-hen
