Tin tức

Lisp Agents: Đệ quy, Homoiconicity, và Vòng lặp Agent 100 dòng

Một kỹ sư khám phá lại sức mạnh của Lisp cho các agent AI, xây dựng một vòng lặp agent đệ quy trong 100 dòng, nơi mô hình tự viết công cụ của nó thông qua eval.

July 12, 2026· 3 min read
Lisp Agents: Đệ quy, Homoiconicity, và Vòng lặp Agent 100 dòng

Một lập trình viên gần đây đã xem lại Lisp sau 25 năm, được thúc đẩy bởi một khóa học AI đại học ca ngợi Lisp là ngôn ngữ cho AI biểu tượng. Kết quả: một vòng lặp agent AI tối thiểu trong 100 dòng Common Lisp, sử dụng đệ quy thay vì vòng lặp while, và tận dụng tính homoiconicity của Lisp để cho phép mô hình tự viết công cụ của nó trong thời gian chạy.

Vòng lặp agent cốt lõi là một hàm đệ quy 8 dòng. Nó gửi một danh sách tin nhắn đến một mô hình, kiểm tra các lệnh gọi công cụ, thực thi chúng, và đệ quy với lịch sử đã được làm giàu. Không framework, không máy trạng thái—chỉ đệ quy gấp trạng thái qua các đối số.

Một công cụ để thống trị tất cả

Thay vì xây dựng một danh mục công cụ (tìm kiếm web, I/O tệp, thực thi Python), tác giả đã cung cấp cho agent một công cụ duy nhất: eval. Bởi vì Lisp là homoiconic—mã và dữ liệu chia sẻ cùng một cấu trúc—mô hình có thể viết các biểu mẫu Lisp tùy ý dưới dạng chuỗi, mà agent đọc, đánh giá, và trả về kết quả. Mô hình đã sử dụng điều này để tính Fibonacci đệ quy, định nghĩa một hàm brave-search một cách nhanh chóng, và thậm chí phân tích cú pháp các phản hồi JSON từ API Brave Search—tất cả mà không cần bất kỳ công cụ xây dựng sẵn nào.

Điều này đảo ngược mẫu thiết kế agent điển hình. Thay vì một danh mục công cụ cố định được quyết định tại thời điểm thiết kế, agent quyết định nó cần gì tại thời điểm chạy, viết nó bằng Lisp, và eval nó thành hiện thực. Các khả năng trở thành các hiện vật đàm thoại.

Bộ nhớ như tuần tự hóa

Tính bền vững được xử lý bằng cách tuần tự hóa danh sách tin nhắn (vốn đã là một danh sách các bảng băm, về cơ bản là JSON) vào đĩa và đọc lại. Không schema, không di chuyển, không cơ sở dữ liệu vector. Agent nhớ lại lịch sử của nó, đệ quy, và ghi nhớ. Tác giả lưu ý rằng điều này phát triển không giới hạn—các cửa sổ ngữ cảnh cuối cùng sẽ đạt đến giới hạn—nhưng đề xuất một bước nén nơi agent tóm tắt quá khứ của chính nó, đệ quy trên lịch sử của chính nó.

Thí nghiệm cũng tiết lộ một tính chất hấp dẫn: các kỹ năng là những ký ức. Hàm brave-search chỉ tồn tại trong hình ảnh Lisp đang chạy. Khi tiến trình thoát, hàm biến mất. Nhưng bản ghi vẫn tồn tại. Trong một phiên mới, agent đọc lại lịch sử của nó và eval hàm trở lại thành hiện thực. Các khả năng của nó theo nghĩa đen là những câu chuyện nó tự kể cho chính nó.

Tác giả thừa nhận cảnh báo bảo mật: eval như một công cụ có nghĩa là thực thi mã tùy ý. Đây là một món đồ chơi chỉ dành cho môi trường sandbox. Nhưng như một minh chứng cho sự liên quan lâu dài của Lisp đối với các agent AI, nó là một minh chứng hấp dẫn.