Mô hình tốt nhất cho Pi Coding Agent phụ thuộc vào từng tác vụ cụ thể: bắt đầu với Claude Sonnet 5.5 cho lập trình hàng ngày, hoặc GPT-6.1 Sol nếu bạn muốn một lựa chọn từ OpenAI. Thử Claude Opus 5.5 khi gặp ca debug khó, so sánh MiniMax M3 và DeepSeek V4.1 Flash cho tác vụ thường nhật, và kiểm tra Qwen3.8 27B khi cần giữ code hoàn toàn trên máy cục bộ.

Pi là một agent harness có khả năng mở rộng, chạy ngay trong terminal. Harness quản lý hội thoại và công cụ; còn mô hình quyết định đọc file nào, chạy lệnh gì và thay đổi những gì. Pi cho phép chuyển đổi mô hình ngay trong quy trình làm việc, giúp bạn so sánh chúng trên cùng một repository thay vì phải chọn từ các bảng xếp hạng chẳng liên quan đến dự án của mình.

Model ID và tính khả dụng đã được kiểm tra đối chiếu với danh mục Haimaker vào ngày 14 tháng 10 năm 2026. Các khuyến nghị dưới đây kết hợp thông tin hiện tại từ provider với một đánh giá Pi độc lập quy mô nhỏ. Chúng tôi chưa chạy benchmark Haimaker mới cho các mô hình này trong Pi.

Nên bắt đầu với mô hình nào trong Pi?

Bắt đầu với Sonnet 5.5 hoặc GPT-6.1 Sol trên một tác vụ mà bạn đã biết cách kiểm tra kết quả. Giữ nguyên quyền truy cập công cụ và trạng thái repository, sau đó thử một ứng viên tiết kiệm chi phí trên cùng tác vụ đó. Chuyển sang Opus khi mô hình rẻ hơn cứ lặp lại hướng xử lý đã thất bại hoặc cần quá nhiều sự can thiệp từ con người.

Tác vụ PiMô hình nên thửHaimaker model IDĐánh đổi
Chỉnh sửa hàng ngày, test và làm việc với repositoryClaude Sonnet 5.5anthropic/claude-sonnet-5-5Chi phí mỗi token cao hơn các lựa chọn tiết kiệm
Lập trình và lập kế hoạch với mô hình OpenAIGPT-6.1 Solopenai/gpt-6.1-solSo sánh reasoning effort và tổng số token
Debug khó hoặc yêu cầu không rõ ràngClaude Opus 5.5anthropic/claude-opus-5-5Giá token cao hơn; có thể cần ít lần thử hơn
Lập trình thường nhật với ngân sách thấpMiniMax M3minimax/minimax-m3Kiểm tra tham số tool và khả năng phục hồi sau lỗi
Tác vụ nền chi phí thấpDeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flashRetry và độ trễ có thể vượt quá lợi thế giá thấp
Một lựa chọn so sánh tiết kiệm chi phí khácGLM-5.3 Flashz-ai/glm-5.3-flashKiểm tra output dài và tổng thời gian hoàn thành tác vụ
Nghiên cứu và input tài liệu lớnGemini 3.8 Flashgoogle/gemini-3.8-flashDung lượng input lớn nhưng câu trả lời vẫn cần được xác minh
Nghiên cứu và suy luận khóGemini 4 Argongoogle/gemini-4-argonỨng viên trả phí mới, chưa có trong đánh giá Pi bên dưới

Tổng quan mô hình của Anthropic mô tả các tầng Claude hiện tại. Tài liệu Sol của OpenAI đề cập vai trò lập trình và agent, còn danh sách mô hình của Google bao gồm các lựa chọn Gemini. Những mô tả đó giúp hình thành danh sách rút gọn; nhưng chúng không xác định mô hình nào thắng trên codebase của bạn.

Đây cũng là cách tiếp cận dựa trên tác vụ mà chúng tôi đã dùng trong hướng dẫn mô hình Hermes. Cấu hình Pi, cơ chế chuyển đổi mô hình và kiểm soát thinking đều khác, vì vậy hãy dùng thiết lập Pi bên dưới thay vì sao chép cấu hình Hermes.

Các so sánh lập trình Pi thực tế cho thấy gì?

Một đánh giá Pi quy mô nhỏ cho thấy nên kiểm tra Sonnet, Sol và Opus trước khi giả định mô hình tiết kiệm sẽ hoàn thành nhanh hơn hoặc rẻ hơn. Đánh giá cũng chỉ ra rằng tăng reasoning có thể thêm bước kiểm tra và lệnh gọi tool mà không cải thiện tỷ lệ hoàn thành trên tác vụ dễ. Điều thực sự đáng so sánh là kết quả cuối cùng, bao gồm cả những lần thử thất bại và thời gian review.

Đánh giá lập trình cá nhân của Ibragim Badertdinov sử dụng 10 tác vụ với 3 lần chạy cho mỗi cấu hình. Kết quả ngày 30 tháng 9 báo cáo:

Mô hình và effortTỷ lệ thành công trong một lần thửThời gian mỗi tác vụ
Sonnet 5.5, high100%46 giây
GPT-6.1 Sol, medium100%1 phút 7 giây
Opus 5.5, low100%37 giây
DeepSeek V4.1 Flash, max93,3%4 phút 30 giây
GLM-5.3 Flash, max96,7%7 phút 1 giây

Đây là kết quả của tác giả, không phải của chúng tôi. Phương pháp luận mô tả các tác vụ được xác định rõ từ công việc thực tế của tác giả, kiểm tra tự động và truy cập API. Các tác vụ vẫn được giữ riêng tư, và kết quả sử dụng Pi 0.85.1, không phải bản Pi 1.x hiện tại. Tỷ lệ pass bằng nhau cũng không đồng nghĩa chất lượng code bằng nhau.

Kết quả này cho thấy nên kiểm tra cả reasoning effort chứ không chỉ riêng mô hình. Opus ở mức effort thấp hoàn thành bộ tác vụ nhỏ này nhanh hơn các cấu hình khác trong bảng. Điều đó không có nghĩa effort thấp là đủ cho một tác vụ migration khó. Hãy chạy tác vụ với ràng buộc thực tế, rồi kiểm tra xem việc tăng reasoning có thay đổi patch hay chỉ thêm các bước kiểm tra lặp lại.

Khi tự so sánh, hãy ghi lại: tỷ lệ hoàn thành thành công, tham số tool sai, số lần retry, thời gian thực thi và hóa đơn cuối cùng. Hướng dẫn chi phí API coding-agent của chúng tôi giải thích tại sao chỉ nhìn giá token có thể cho câu trả lời sai.

Kết nối Pi với các mô hình này như thế nào?

Dùng Haimaker Connect để kết nối Pi mà không cần viết tay cấu hình provider. Cài đặt Pi trước, sau đó chạy Connect để cấu hình file gốc và xác minh kết nối.

Với cài đặt mới, quickstart của Pi sử dụng gói npm bên dưới và yêu cầu Node.js 22.19 trở lên:

npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi --version

Khuyến nghị: Haimaker Connect

Chạy trình hướng dẫn thiết lập và chọn Pi:

npx -y @haimaker/connect

Với Pi và khuyến nghị Sonnet ở trên, chọn cả hai rõ ràng:

npx -y @haimaker/connect --pi --model anthropic/claude-sonnet-5-5
pi --provider haimaker --model anthropic/claude-sonnet-5-5

Connect mở trình duyệt đăng nhập hoặc sử dụng HAIMAKER_API_KEY hiện có. Nó ghi provider Haimaker vào models.json, lưu key trong auth.json của Pi, và xác minh một request. Sau đó Pi gửi request trực tiếp đến Haimaker. Xem tài liệu gói Connect để biết các tùy chọn.

Khi không có --model, Connect cấu hình haimaker/auto. Khi so sánh, hãy dùng model cụ thể có tên để routing không đổi mô hình giữa các request. Connect chỉ ghi một mục mô hình duy nhất; dùng cấu hình thủ công bên dưới nếu muốn giữ nhiều ứng viên trong bộ chọn của Pi. Nó sao lưu file hiện có, nhưng ghi lại models.json dưới dạng JSON không có comment.

Dùng Haimaker Connect để cấu hình Pi, sau đó so sánh các mô hình trên cùng một tác vụ repository.

KẾT NỐI PI VỚI HAIMAKER

Cấu hình thủ công: giữ nhiều mô hình trong bộ chọn

Đặt key trong shell sẽ dùng để khởi động Pi:

export HAIMAKER_API_KEY=your-haimaker-key

Thêm provider này vào ~/.pi/agent/models.json. Gộp vào object providers nếu đã có sẵn:

{
  "$schema": "https://pi.dev/schemas/models.schema.json",
  "providers": {
    "haimaker": {
      "baseUrl": "https://api.haimaker.ai/v1",
      "api": "openai-completions",
      "apiKey": "${HAIMAKER_API_KEY}",
      "models": [
        {
          "id": "anthropic/claude-sonnet-5-5",
          "name": "Claude Sonnet 5.5",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1000000,
          "maxTokens": 128000
        },
        {
          "id": "openai/gpt-6.1-sol",
          "name": "GPT-6.1 Sol",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 922000,
          "maxTokens": 128000
        },
        {
          "id": "minimax/minimax-m3",
          "name": "MiniMax M3",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 1000000,
          "maxTokens": 128000
        }
      ]
    }
  }
}

Các giới hạn trên phản ánh danh mục Haimaker đã kiểm tra, có thể khác với API trực tiếp của provider. Pi hỗ trợ nội suy biến môi trường trong thông tin xác thực provider; xem hướng dẫn cấu hình mô hình. Nên bắt đầu với tác vụ nhỏ, có phạm vi rõ ràng trước khi gửi ngữ cảnh repository lớn.

Chọn mô hình bằng cả hai định danh:

pi --provider haimaker --model anthropic/claude-sonnet-5-5

Trong Pi, mở /model để chọn mô hình đã cấu hình khác. Bộ chọn sẽ tải lại models.json. Metadata về giá được lược bỏ trong ví dụ này vì giá thay đổi thường xuyên; hãy kiểm tra hóa đơn từ provider thay vì coi hiển thị chi phí phiên chưa cấu hình là kết quả đo được của phiên chạy không tốn phí.

Provider bạn đã có tài khoản

Với provider tích hợp sẵn, chạy /login và làm theo luồng xác thực của Pi, sau đó chọn mô hình bằng /model. Tài liệu tham khảo provider của Pi liệt kê biến API-key và tùy chọn riêng cho từng provider. Gói subscription và API key dạng metered có thể có quyền truy cập và cách tính phí khác nhau, nên hãy dùng phương thức kết nối mà tài khoản của bạn thực sự hỗ trợ.

Nên cài đặt mức thinking và chuyển đổi mô hình như thế nào?

Giữ lựa chọn mô hình và mức reasoning effort là hai biến riêng biệt. Dùng mức effort vừa phải (nếu được hỗ trợ) cho lần so sánh đầu tiên, sau đó tăng lên với tác vụ cần nhiều suy luận hơn. Pi giới hạn các mức theo khả năng của mô hình đã chọn. So sánh lượng token và mức độ hoàn thành khi chọn effort — các provider diễn giải cùng một mức khác nhau.

CLI reference của Pi hỗ trợ chỉ định mô hình và effort rõ ràng:

pi --provider haimaker --model openai/gpt-6.1-sol --thinking medium

Trong phiên tương tác, /thinking thay đổi effort và /scoped-models chọn các mô hình bạn chuyển đổi bằng Ctrl+P. Bắt đầu với 2 mô hình trong vòng chuyển đổi: một ứng viên cho tác vụ thường ngày và một lựa chọn mạnh hơn. Chỉ thêm mô hình khác khi nó giải quyết được một lỗi lặp đi lặp lại. Lưu mặc định khởi động từ bộ chọn mô hình bằng Ctrl+S.

Chuyển đổi mô hình thủ công giúp bạn luôn thấy rõ mình đang dùng mô hình nào. haimaker/auto của Haimaker định tuyến ở phía API. Để routing trong Pi, dùng virtual model routing thông qua extension. Cấu hình và kiểm tra extension đó riêng. Nhiều mục trong models.json cho bạn nhiều mô hình để chọn; nhưng danh sách đó không chọn giữa chúng.

Pi cũng tách biệt mô hình lập trình khỏi mô hình classifier và image. Tài liệu hiện tại liệt kê GPT-6 Luna qua Decisions API như một classifier được Codemode sử dụng, chứ không nằm trong bộ chọn hội thoại chính. Khi làm theo khuyến nghị từ cộng đồng, hãy kiểm tra API và vai trò của mô hình — đặc biệt nếu khuyến nghị đó được đưa ra trên phiên bản Pi cũ hơn.

Mô hình local nào đáng thử với Pi?

So sánh Qwen3.8 27B, Muse Glimmer 30B và Qwen3 Coder 30B khi bạn có đủ bộ nhớ workstation và muốn chạy suy luận local. Dùng Gemma 4 E4B hoặc Qwen3 8B trên máy nhỏ hơn. Kiểm tra xem mô hình local có sử dụng đúng tool của Pi và phục hồi được sau khi lệnh thất bại không.

Pi có tài liệu hướng dẫn tích hợp router llama.cpp cho mô hình GGUF. Nếu bạn đã dùng Ollama, hãy cấu hình endpoint tương thích OpenAI riêng của nó. Pull mô hình phù hợp với máy, rồi thêm tag chính xác vào models.json:

ollama pull qwen3.8:27b
{
  "providers": {
    "ollama": {
      "baseUrl": "http://localhost:11434/v1",
      "api": "openai-completions",
      "apiKey": "ollama",
      "models": [
        {
          "id": "qwen3.8:27b",
          "name": "Qwen3.8 27B local",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 32768,
          "maxTokens": 8192
        }
      ]
    }
  }
}

Key placeholder cho phép Pi phân giải xác thực cho provider local; Ollama sẽ bỏ qua nó. Gộp provider này cùng với cấu hình cloud hiện có, rồi chọn:

pi --provider ollama --model qwen3.8:27b

Trang Ollama của Qwen3.8 cho thấy dung lượng tải xuống khoảng 18GB, chưa tính trạng thái ngữ cảnh và buffer runtime. GPU 24GB hoặc máy có bộ nhớ thống nhất 32GB+ là điểm khởi đầu cho một phiên có phạm vi giới hạn. Ngữ cảnh 32K trong ví dụ này là cài đặt khởi đầu thận trọng, không đảm bảo sẽ vừa với máy. Với máy nhỏ hơn và các ứng viên khác, xem hướng dẫn mô hình lập trình Ollama của chúng tôi.

Khi chạy suy luận local, prompt được giữ trên máy của bạn. Tuy nhiên, công cụ bên ngoài vẫn có thể gửi dữ liệu đi nơi khác, và mô hình có tag cloud sẽ sử dụng suy luận trên cloud. Kiểm tra cả endpoint lẫn tool được bật khi muốn giữ code riêng tư.

Câu hỏi thường gặp

Tôi có thể đổi mô hình mà không mất phiên Pi không?

Có. Dùng /model để đổi mô hình trong phiên Pi đang chạy. Pi ghi nhận thay đổi mô hình và mức suy luận (thinking), khi khôi phục sẽ giữ nguyên. Dùng /scoped-models để chọn các mô hình có sẵn khi chuyển đổi bằng Ctrl+P.

Tại sao mô hình tùy chỉnh của tôi không xuất hiện trong Pi?

Kiểm tra xem Pi có phân giải được thông tin xác thực của provider không và model ID có nằm trong models.json không. Biến môi trường phải tồn tại trong tiến trình khởi động Pi. Mô hình classifier và image dùng công cụ riêng, không xuất hiện trong bộ chọn /model chính.

Pi có hỗ trợ Haimaker và mô hình Ollama local không?

Có. Dùng npx -y @haimaker/connect —pi để cấu hình Haimaker thông qua file cấu hình gốc của Pi, hoặc thêm provider thủ công trong ~/.pi/agent/models.json. Ollama dùng provider local riêng tại http://localhost:11434/v1 với tag mô hình local chính xác.

Bắt đầu với một tác vụ repository đã xác minh, giữ nguyên công cụ và ngữ cảnh của Pi, rồi so sánh hai mô hình. Giữ mô hình nào hoàn thành đúng với ít thời gian chờ và công sức review hơn. Lặp lại so sánh đó khi bản phát hành mới giải quyết được lỗi bạn thực sự gặp phải.