Một tác nhân tối giản được chuyển sang Python, bắt đầu từ `pi-mono`, lõi của OpenClaw
(github.com/solvit-team)Tôi nghĩ với nhiều người, tác nhân vẫn là một thứ gì đó khá mơ hồ. Nó trông có vẻ rất ghê gớm, nhưng khi thật sự mở ra xem bên trong vận hành thế nào thì lại khó hình dung, và cũng thường không dễ nắm được nên bắt đầu mày mò từ đâu.
Tôi cũng từng như vậy. Rồi sau đó tôi nghe rằng lõi của
OpenClawlàpi-mono, và điều khiến tôi ấn tượng là đây là một tác nhân cực kỳ tối giản. Đặc biệt, tôi cảm thấy nó là một ví dụ thể hiện rất rõ triết lý "thứ mạnh mẽ nhất là một hệ thống đơn giản". Vì vậy tôi quyết định lấy nó làm điểm khởi đầu để xây dựng tác nhân của riêng mình, và thử chuyển nó sang Python đến mức có thể tự động viết mã.Thực ra trong
py-pimonohiện tại vẫn còn rất nhiều thứ đã có trongpi-mononhưng chưa được đưa sang. Ví dụ như những thứ sau.
- Quản lý phiên
- Steering
- Follow-up
- Các loại tiện ích
- Streaming
Vì thế,
py-pimonogần với một tác nhân chỉ còn khung sườn hơn là một sản phẩm hoàn chỉnh: gần như không có gì nhiều, nhưng trước hết vẫn chạy được. Thay vào đó, cấu trúc của nó được bộc lộ khá rõ ràng để người xem dễ hình dung nên mở chỗ nào ra, và cần gắn gì vào đâu. Vì vậy tôi nghĩ ngay cả những ai vẫn còn thấy tác nhân là thứ mơ hồ cũng có thể lần theo cấu trúc mà bắt tay chỉnh sửa. Chẳng hạn, tôi muốn làm sao để có thể lần theo những câu hỏi như dưới đây trong một codebase nhỏ nhất có thể.
- Có người sẽ tò mò việc "một tác nhân tiếp tục chạy trong thời gian dài" được biểu đạt trong mã như thế nào
- Có người sẽ tò mò dữ liệu phiên được lưu lại và tải lại ra sao
Vì vậy, tôi hy vọng kho mã này có thể trở thành một điểm khởi đầu phù hợp cho việc tách riêng tối đa những phần đó, rồi cùng với LLM đọc và phân tích mã, thử gắn vào loop hay cơ chế quản lý phiên của riêng bạn, và dần dần mở rộng cấu trúc.
Tuy nhiên, để có thể chạy thử ngay và tự tay làm quen, tôi cũng đã gắn sẵn UI lên trên bộ khung tối giản này. Nếu mở thư mục
ui/, bạn cũng sẽ thấy nhiều UI khác nhau mà tôi đã thử nghịch, cùng cả phần kết nối Discord.Cài đặt:
pip install py-pimonoNếu bạn đã xác thực Codex thì có thể chạy ngay.
pyaiNgay cả khi chưa có xác thực Codex thì fallback
MockLlmdạng "vẹt nhại" vẫn sẽ chạy, nên việc đặt các điểm debug rồi quan sát vòng lặp của tác nhân cũng khá thú vị.Nếu bạn vẫn chưa có xác thực Codex thì hãy đăng nhập trước rồi chạy.
codex login pyaiSau đó, tôi nghĩ sẽ rất thú vị nếu cùng mọi người bổ sung dần, theo cách sạch sẽ và tối giản nhất có thể, chỉ những phần thật sự quan trọng nhưng vẫn còn thiếu ở đây. Thay vì để tác nhân mãi là một khái niệm mơ hồ, tôi đăng bài này với hy vọng nhiều người hơn có thể trải nghiệm cảm giác tự mình mở ra xem, sửa nó, và biến nó thành thứ của riêng mình.
Chưa có bình luận nào.