15 điểm bởi GN⁺ 2026-02-02 | 2 bình luận | Chia sẻ qua WhatsApp
  • 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)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-tuiframework 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)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

 
GN⁺ 2026-02-02
Ý 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 engineeringcấ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 đó

    • Tôi cũng đã thử một hướng tương tự. Tôi quản lý một file Markdown tên là MIND_MAP.md dưới dạng đồ thị và ghi lại các trích dẫn theo kiểu inline
      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

    • Ngược lại, tôi nghĩ giá API sẽ còn giảm thêm, còn lợi ích thuê bao của Claude Code có khả năng sẽ lớn hơn
      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
    • Pi cũng có thể tích hợp với thuê bao. OpenAI đã cho phép dùng gói thuê bao GPT trong Pi
      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
    • Đây gần như là tình huống y hệt mối quan hệ giữa ChatGPT và GPT-3
      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 cũng nghĩ cuối cùng nó có thể bị enshittification (suy giảm chất lượng) như ollama
    • Cái tên “pi” hơi gây nhầm lẫn. Đã có một “Pi” nổi tiếng khác rồi, nên tôi thắc mắc vì sao lại chọn tên đó
  • 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ả

    • AI Studio có lỗi là vẫn tiếp tục đếm token ngay cả khi không nhập gì
      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
    • Thực ra Anthropic cũng không cung cấp tokenizer
  • 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

    • Tôi nghĩ mọi tool call ngoài đọc dữ liệu đều nên cần bước phê duyệt thủ cô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
    • Codex của tôi khi được yêu cầu vá SDK bên ngoài sandbox thì nó chỉnh sửa file bằng Python
    • Chạy agent bên ngoài container là rất nguy hiểm. Đây là điều cơ bản nhất
    • Tôi đã cấu hình Codex kết nối với repo GitHub để tự động tạo PR
      Nó không đụng vào DB, chỉ sửa UI và mã tầng middleware
    • Tôi tò mò liệu Codex có tự ý vô hiệu hóa sandbox như Claude Code hay không
    • Chỉ nên dùng chế độ YOLO bên trong container. Cần giới hạn để nó chỉ truy cập các tài nguyên cần thiết
  • 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àncấ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

    • Pi là phần đáng được chú ý nhất trong moltXYZ
      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

    • Điểm mạnh của Cursor là vòng phản hồi ngắ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ụ
    • Nếu cài extension Claude Code cho VS Code, bạn có thể vừa tận dụng khả năng khám phá codebase lớn vừa có tích hợp CC
    • Claude Code về cơ bản không có chỉ mục dự án, nên nó phải dò từng file một
      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ệ
    • Tôi cũng là solo developer đang bootstrap, và dùng Claude để tự động hóa các tác vụ nhỏ
      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ẽ
    • Cursor cũng đang cải thiện. Sắp tới sẽ có tính năng theo dõi blame cho các dòng do AI viết, để biết model nào đã viết bằng prompt nào
  • 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

    • Cách diễn đạt “chuẩn hóa phần giao nhau, và phơi bày phần hợp” thật sự rất ấn tượng
  • 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ó