- pi-coding-agent là một framework tác nhân lập trình được thiết kế để giảm thiểu các tính năng phức tạp, giúp người dùng nắm toàn quyền kiểm soát ngữ cảnh và tính minh bạch
- Bốn thành phần cốt lõi là pi-ai, pi-agent-core, pi-tui, pi-coding-agent, lần lượt phụ trách tích hợp API LLM, vòng lặp tác nhân, giao diện terminal và tích hợp CLI
- Hệ thống theo đuổi sự đơn giản hóa cực đoan bằng cách giữ system prompt và bộ công cụ ở mức dưới 1000 token, chỉ cung cấp bốn công cụ read/write/edit/bash
- Loại bỏ hoàn toàn giới hạn bảo mật, sub-agent, plan mode, hỗ trợ MCP, thay vào đó ưu tiên khả năng quan sát và quyền kiểm soát hoàn toàn
- Kết quả benchmark và trải nghiệm sử dụng thực tế cho thấy thiết kế đơn giản, minh bạch đủ sức cạnh tranh với các tác nhân phức tạp hơn
pi-ai và pi-agent-core
- pi-ai cung cấp API tích hợp nhiều nhà cung cấp LLM như Anthropic, OpenAI, Google, xAI, Groq
- Bao gồm streaming, gọi công cụ, hỗ trợ suy luận (trace), theo dõi token và chi phí, cùng khả năng tương thích với trình duyệt
- Chỉ với bốn API chính (OpenAI Completions/Responses, Anthropic Messages, Google Generative AI) là có thể giao tiếp với phần lớn mô hình
- Tích hợp xử lý thống nhất các khác biệt API giữa từng nhà cung cấp
- Ví dụ: khác nhau về tên trường
max_tokens, vị trí trường reasoning, không hỗ trợ vai trò developer
- Do cách báo cáo token không đồng nhất nên không thể tính chi phí chính xác tuyệt đối, pi-ai theo dõi theo kiểu best-effort
- Tính năng context handoff cho phép thay đổi mô hình hoặc nhà cung cấp ngay giữa phiên
- Ví dụ: khi chuyển Anthropic → OpenAI → Google, nội dung suy luận được giữ lại bằng cách chuyển sang thẻ ``
- Hỗ trợ định nghĩa mô hình an toàn kiểu dữ liệu thông qua model registry
- Phân tích dữ liệu từ OpenRouter và models.dev để tự động tạo thông tin chi phí và tính năng theo từng mô hình
- Hỗ trợ đầy đủ hủy request (abort) và trả về kết quả một phần
- Khi dừng streaming bằng AbortController, vẫn có thể tận dụng nguyên kết quả trung gian
- Áp dụng cấu trúc tách riêng kết quả công cụ
- Tách dữ liệu văn bản dành cho LLM và dữ liệu hiển thị cho UI, đồng thời kiểm tra tham số bằng TypeBox/AJV
- Trong tương lai sẽ bổ sung tính năng streaming kết quả công cụ
- Vòng lặp tác nhân tự động lặp lại việc xử lý message, thực thi công cụ và phản hồi kết quả
- Kiến trúc dựa trên sự kiện giúp dễ xây dựng UI phản hồi nhanh
- Được đơn giản hóa bằng cách loại bỏ các tham số điều khiển không cần thiết (như số bước tối đa)
pi-tui
- pi-tui là framework giao diện terminal dựa trên Node.js, hỗ trợ cập nhật thời gian thực với mức flicker tối thiểu
- Chỉ cập nhật các dòng thay đổi nhờ differential rendering
- Giảm flicker bằng chuỗi đồng bộ đầu ra (CSI ?2026h/l)
- Trong hai hướng tiếp cận TUI, dự án chọn kiểu xuất CLI giữ lại scrollback buffer
- Tận dụng nguyên các tính năng mặc định của terminal như cuộn tự nhiên, tìm kiếm
- Có cấu trúc tương tự Claude Code, Codex, Droid
- Sử dụng retained mode UI
- Mỗi component tự cache kết quả render của mình và chỉ vẽ lại khi có thay đổi
- Cho phép cập nhật hiệu quả mà không cần render lại toàn màn hình
- Hiệu năng và mức dùng bộ nhớ rất nhỏ, ở mức vài trăm KB nên có thể xử lý mượt cả các phiên lớn
pi-coding-agent
- pi-coding-agent là tác nhân lập trình dựa trên CLI, cung cấp các tính năng sau
- Hỗ trợ Windows/Linux/macOS, quản lý phiên (tiếp tục/phan nhánh), chuyển đổi mô hình, nạp AGENTS.md theo từng dự án
- Hỗ trợ xác thực OAuth, đổi theme theo thời gian thực, xuất phiên sang HTML, headless mode (JSON/RPC)
- System prompt được giữ ngắn gọn dưới 1000 token
- Chỉ nêu bốn công cụ read/write/edit/bash
- Loại bỏ mô tả không cần thiết và các quy tắc phức tạp; người dùng có thể tự do mở rộng qua AGENTS.md
- Bộ công cụ tối thiểu chỉ gồm 4 công cụ
- Chỉ dùng
read, write, edit, bash và như vậy đã đủ cho phần lớn công việc lập trình
- Có thể bật thêm công cụ tùy chọn khi cần (ví dụ: grep, find, ls)
- Mặc định áp dụng YOLO mode
- Không giới hạn quyền truy cập toàn bộ file system và thực thi lệnh
- Loại bỏ prompt bảo mật và quy trình kiểm tra trước, thay vào đó khuyến nghị dùng môi trường container
- Loại bỏ toàn bộ To-do tích hợp sẵn, Plan mode, MCP, background bash, sub-agent
- To-do/Plan được thay đơn giản bằng quản lý dựa trên file (TODO.md, PLAN.md)
- MCP bị loại do lãng phí token và tăng độ phức tạp, thay bằng cách dùng CLI+README
- Với background bash, dự án khuyến nghị dùng tmux
- Sub-agent bị vô hiệu hóa do thiếu khả năng quan sát, nếu cần thì tự gọi chính nó bằng bash
- Đặc biệt coi trọng observability
- Mọi lệnh, truy cập file và đầu ra đều được hiển thị minh bạch
- Tương phản với cấu trúc “hộp đen” của các tác nhân khác như Claude Code
Benchmarks
- Được thử nghiệm trên Terminal-Bench 2.0 cùng mô hình Claude Opus 4.5
- Đạt hiệu năng cạnh tranh khi so với Codex, Cursor, Windsurf
- File kết quả (
results.json) đã được gửi lên kho lưu trữ công khai
- Các tác nhân đơn giản như Terminus 2 cũng cho hiệu năng tương tự, qua đó chứng minh cách tiếp cận tối giản là hiệu quả
Kết luận
- pi là tác nhân lập trình ưu tiên kiểm soát ngữ cảnh, sự đơn giản và tính minh bạch hơn các tính năng phức tạp
- Cả trong sử dụng thực tế lẫn benchmark, nó đều cho thấy hiệu quả tương đương các tác nhân quy mô lớn
- Các tính năng dự kiến bổ sung trong tương lai chỉ gồm nén ngữ cảnh (compaction) và streaming kết quả công cụ
- Dự án được phát hành dưới dạng mã nguồn mở, bảo đảm tự do fork và mở rộng
- Bài học cốt lõi là: “Đơn giản chính là khả năng kiểm soát, và khả năng kiểm soát chính là năng suất”
2 bình luận
Pi: Phân tích tác nhân AI dành cho nhà phát triển, cốt lõi của OpenClaw và được tối giản đến mức cực độ
Ý kiến trên Hacker News
Có vẻ như bạn đã tạo ra một dự án thật sự tuyệt vời và được suy nghĩ rất kỹ
Tôi cũng hoàn toàn đồng cảm với tầm quan trọng của context engineering và cấu trúc hội thoại dạng cây
Luồng hội thoại tuyến tính truyền thống quá hạn chế, nên khi cộng tác với LLM để nghiên cứu hoặc lên ý tưởng thì khá bất tiện
Tôi cũng đã làm một công cụ cá nhân với triết lý tương tự, theo kiểu xây dựng context tốt rồi tái sử dụng, hoặc chạy các side quest và chỉ mang về những kết quả tốt
Phiên bản bạn làm ra là một cách hiện thực hóa có giá trị hơn nhiều. Nhờ vậy tôi mới biết đến Pi và rất vui vì điều đó
Cách này giúp duy trì bộ nhớ qua các phiên và giảm lãng phí context khi tạo sub-agent
Có thể tham khảo mã ví dụ của tôi
Tôi có cảm giác mối quan hệ giữa OpenClaw và Pi-agent khá giống mối quan hệ giữa ollama/llama-cpp
Cái đầu tiên thu hút nhiều sự chú ý hơn, nhưng thực ra cái sau mới ấn tượng hơn
Claude Code hiện tại ổn nhờ lợi ích từ gói thuê bao, nhưng khi thị trường ổn định và đơn giá API tiến gần hơn, thì trải nghiệm cao cấp tính phí theo token có lẽ sẽ là lựa chọn tốt hơn
Cuối cùng, tôi nghĩ framework agent có thể tùy biến sẽ vượt trội hơn các ứng dụng đóng
Cấu trúc chi phí suy luận hiệu quả hơn nhiều so với tưởng tượng, và họ cũng có đủ vốn R&D
Tất cả công cụ đều đang dần cải thiện, còn các sản phẩm cạnh tranh cũng không hề hoàn hảo
Cá nhân tôi rất vui khi dự án của Peter đang nhận được sự chú ý
Phía OpenClaw vẫn có rất nhiều PR, còn Pi chỉ bằng khoảng 1/100 nên việc quản lý dễ hơn nhiều
OpenAI khi đó cũng từng nói kiểu “không hiểu vì sao ChatGPT lại nổi tiếng đến vậy, GPT vốn đã có sẵn qua API rồi mà”
Tôi ngạc nhiên vì Google đến giờ vẫn chưa hỗ trợ tool call streaming
Họ thậm chí còn không cung cấp tokenizer cục bộ, nên AI Studio phải đếm token bằng cách gọi API mỗi lần, một cấu trúc rất kém hiệu quả
Mức sử dụng CPU tăng đến 100%, khiến tôi có cảm giác laptop của mình ngốn điện còn hơn cả một cụm TPU
Các biện pháp bảo mật của nhiều coding agent khác phần lớn chỉ là security theater
Codex chạy lệnh bên trong sandbox của OS (ví dụ: macOS Seatbelt), nên không hoàn toàn là vô dụng
Dù phiền thật, nhưng vẫn tốt hơn là phải khắc phục một lệnh sai
Nó không đụng vào DB, chỉ sửa UI và mã tầng middleware
Tôi đã thấy một số power user chuyển sang Pi rồi, và bản thân tôi cũng đang cân nhắc
Ưu điểm của Pi là kiểm soát context hoàn toàn và cấu trúc công cụ có thể mở rộng
Có nhiều ví dụ như system prompt, mở rộng todo, adapter MCP, v.v.
Nếu hiểu được các giới hạn hiệu năng của context hay những vấn đề như context rot, contextual drift, thì giá trị của Pi sẽ rất rõ ràng
Tổng hợp liên kết liên quan
Armin rõ ràng đang đi trước thời đại
Claude Code vẫn còn khá nông ở phần hook và quản lý context
Tôi vẫn đang dùng Cursor
Tôi đã định chuyển sang Claude Code, nhưng với codebase nhỏ của mình thì Cursor nhanh hơn hẳn
Tuy vậy, UI review diff của nó không tích hợp với Git nên khá bất tiện
Tôi thấy khó phân biệt thay đổi do AI tạo với thay đổi do mình tạo, và review tích hợp Git quan trọng hơn
Claude Code tạo cảm giác phải tin tưởng rồi phó mặc kết quả nên hơi bất an
Điều cốt lõi là có thể tự do đổi model. Hiệu năng model khác nhau tùy ngôn ngữ và loại tác vụ
Tôi đã tạo một hook để đưa danh sách file vào context ngay từ lúc khởi động và cải thiện tốc độ
Tôi cũng làm một công cụ tùy chỉnh để sửa nhiều file cùng lúc nên nhanh hơn khoảng 3 lần, nhưng đã tắt đi vì một số trường hợp ngoại lệ
Ví dụ như tự động hóa test frontend hoặc chỉnh sửa landing page
Còn các tính năng chính thì tôi quản lý bằng một instance Claude riêng trong vòng phản hồi chặt chẽ
Bài viết về kiến trúc agent tối giản rất ấn tượng
Tôi thích triết lý “không cần thì đừng xây”
Tôi dùng OpenClaw để quản lý song song nhiều workflow — hỗ trợ khách hàng, giám sát triển khai, code review, v.v.
Cốt lõi là context engineering
Mô hình workspace-first của OpenClaw duy trì việc học qua nhiều phiên bằng AGENTS.md, TOOLS.md và thư mục memory/
Bạn có thể quan sát qua log quá trình agent tự học
Tôi thích cách tiếp cận thừa nhận mô hình đe dọa thực tế hơn là diễn bảo mật
Tôi cũng đồng tình rằng có nhiều agent chuyên biệt chạy song song sẽ tốt hơn một agent đa dụng
Sẽ rất thú vị nếu so sánh Pi và OpenClaw trên Terminal-Bench
Tôi thích bài viết giải thích vì sao Armin Ronacher dùng Pi
Sau khi đọc bài viết của Armin, tôi mới lần đầu biết rằng Pi là agent harness của OpenClaw
Pi có cấu trúc dựa trên JavaScript, nên rất hợp với kiến trúc sandbox của trình duyệt
Tôi nghĩ nó phù hợp với hướng phát triển tương lai của AI agent
Tuy vậy, tôi mong tác giả linh hoạt hơn về vendor extensions
Thảo luận liên quan
Tôi vẫn chưa dùng chế độ YOLO
Có lẽ phải thêm 6 tháng nữa thì tooling mới hoàn chỉnh
Gần như không có nhu cầu để agent thực thi lệnh tùy ý
Chỉ cần tích hợp lint, tìm kiếm, chỉnh sửa và truy cập web vào hệ thống quyền là đủ
Những runtime có sandbox và kiểm soát quyền như Deno hay Workerd có thể là tuyến phòng thủ đầu tiên
Vì vậy tôi khó hiểu vì sao Anthropic lại chọn Bun — kiến trúc bảo mật của nó gần như không có