- Điểm đáng ngạc nhiên nhất trong quá trình phát triển trợ lý lập trình AI Sketch là một tác nhân LLM được gắn khả năng dùng công cụ có thể hoạt động mạnh mẽ chỉ với một vòng lặp đơn giản cỡ 9 dòng
- Luồng cơ bản là gửi đầu vào của người dùng tới LLM; nếu phản hồi có lệnh gọi công cụ thì thực thi và đưa kết quả trở lại cuộc hội thoại để dùng cho lần suy luận tiếp theo
- Chỉ với system prompt, lịch sử hội thoại và mô tả công cụ, LLM cũng có thể gọi các công cụ như
bashtheo đúng schema đã định - Sketch thực hiện các tác vụ git, xử lý bước đầu khi merge, sửa lỗi type checker, v.v. chỉ với Claude 3.7 Sonnet và
bash, nhưng cũng thể hiện những hành vi gây khó chịu như muốn bỏ qua kiểm thử - Khi có thêm các công cụ bổ sung phù hợp với workflow của lập trình viên và các vòng lặp tác nhân tạm thời, ta có thể giao phó nhiều tác vụ hằng ngày hơn — những việc trước đây khó xử lý bằng tự động hóa truyền thống
Vòng lặp tác nhân gần như chỉ 9 dòng
- Sketch là một trợ lý lập trình AI đang được phát triển trong vài tháng gần đây
- Vòng lặp cốt lõi nhận đầu vào của người dùng, kiểm tra kết quả gọi LLM; nếu có lệnh gọi công cụ thì đưa kết quả thực thi vào tin nhắn tiếp theo, còn nếu không thì quay lại nhận đầu vào từ người dùng
- Dù phần triển khai đầy đủ cần thêm mã phụ trợ, ý tưởng cốt lõi gần với một vòng lặp 9 dòng
- Script đầy đủ: agent_loop.py
- Hàm
llm()có vai trò gửi system prompt, toàn bộ cuộc hội thoại đến thời điểm hiện tại và tin nhắn tiếp theo tới API của LLM - Việc sử dụng công cụ được thực hiện theo cách LLM trả về đầu ra phù hợp với một schema cụ thể
- Trong script đầy đủ, system prompt và prompt mô tả công cụ cho LLM biết rằng nó có thể truy cập
bash
- Trong script đầy đủ, system prompt và prompt mô tả công cụ cho LLM biết rằng nó có thể truy cập
Những khả năng và giới hạn thấy được qua Sketch
- Chỉ với một công cụ đa dụng là
bash, các mô hình hiện nay, đặc biệt là Claude 3.7 Sonnet, đã có thể xử lý nhiều tác vụ phát triển- Thay vì tự tìm và sao chép/dán các thao tác git khó hiểu, có thể yêu cầu Sketch làm
- Trước khi xử lý thủ công một lần git merge, có thể để Sketch thử bước đầu
- Cũng có thể thử giao cho Sketch việc sửa từng lỗi type checker phát sinh sau khi thay đổi kiểu dữ liệu
- Nếu được prompt phù hợp, vòng lặp tác nhân sẽ hoạt động liên tục
- Nếu công cụ cần thiết chưa được cài đặt, nó sẽ cài đặt
- Nếu tùy chọn dòng lệnh của
grepkhác nhau tùy môi trường, nó sẽ thích nghi với sự khác biệt đó
- Các giới hạn cũng rất rõ ràng
- Khi kiểm thử không pass, nó có thể có hành vi kiểu như muốn bỏ qua luôn
- Sketch không chỉ dùng
bash, mà còn sử dụng một vài công cụ bổ sung để cải thiện chất lượng, tốc độ lặp và workflow của lập trình viên - Công cụ khiến LLM chỉnh sửa văn bản một cách chính xác hóa ra lại khá khó xây dựng
- Việc LLM chật vật với một lệnh
sedmột dòng cho thấy trình soạn thảo trực quan có những điểm mạnh khác với trình soạn thảo theo từng dòng
- Việc LLM chật vật với một lệnh
- Vòng lặp tác nhân có thể đi sâu hơn vào các tác vụ tự động hóa hằng ngày vốn quá cụ thể đối với công cụ đa dụng, nhưng lại quá khó hiểu hoặc thiếu ổn định đối với tự động hóa truyền thống
- Liên kết stack trace với commit git là một ví dụ về việc LLM có thể xử lý bước đầu khá tốt
- Có thể sẽ xuất hiện nhiều vòng lặp tác nhân LLM tùy chỉnh, tạm thời hơn trong thư mục
bin/
Chưa có bình luận nào.