Các phần cơ sở kiến thức ▾

Điều hướng

▸ Bắt đầu tại đây Theo vai trò

Danh mục

Công cụ 52
Bảng thuật ngữ 12

Công cụ

MiniMax Code: Đại lý MiniMax với khóa riêng thông qua Gonka

MiniMax Code (lệnh mcode) — đại lý mã nguồn terminal của phòng thí nghiệm MiniMax: phân tích dự án, chỉnh sửa tệp, chạy lệnh và kiểm thử, trong khi bạn điều khiển nó từ TUI, từ tập lệnh hoặc từ trình chỉnh sửa. Mã nguồn của phiên bản terminal được mở, mã riêng của nhà cung cấp thuộc giấy phép MIT. Sản phẩm còn mới và thay đổi nhanh chóng, vì vậy mọi nội dung dưới đây gắn liền với phiên bản 0.5.1, mà chúng tôi đã sử dụng từ khi cài đặt cho đến khi nhận được phản hồi của đại lý.

Thông thường mcode hoạt động thông qua tài khoản nhà cung cấp và đăng ký Token Plan. Nhưng nó cũng hỗ trợ BYOK: endpoint riêng và khóa riêng, và bạn không cần đăng nhập vào tài khoản để thực hiện điều đó — như đã nêu rõ trong README. Ba định dạng API được hỗ trợ: openai-completions, openai-responses và anthropic-messages; JoinGonka Gateway hỗ trợ cả ba.

Kết quả là một mô hình đối xứng. Mạng Gonka phục vụ mô hình mở MiniMax M2.7, cùng với DeepSeek V4 Flash và GLM-5.3 Flash — tất cả đều ở cùng một mức giá. Đại lý của nhà cung cấp hoạt động trên mô hình của chính họ, chỉ là nó được tính toán bởi mạng phi tập trung, và bạn trả tiền cho số token thực tế; có thể chuyển đổi sang mô hình lân cận bằng một lệnh duy nhất trong phiên.

MiniMax Code là gì và cách cài đặt nó

Agent có ba điểm vào, và cả ba đều hoạt động với nhà cung cấp BYOK theo cùng một cách:

Điểm vàoLệnhDùng để làm gì
TUI tương tácmcode [prompt]Khám phá mã nguồn, trò chuyện, xem các chỉnh sửa và quyền cho phép
Headlessmcode exec [prompt]Script, CI, tác vụ theo lô
ACPmcode acpTrình soạn thảo và ứng dụng khách hỗ trợ Agent Client Protocol

Trình cài đặt chính thức sẽ đặt phiên bản mới nhất vào ~/.minimax-code, tự động tải Node.js phù hợp khi cần và không yêu cầu quyền quản trị:

# macOS / Linux / WSL
curl -fsSL https://filecdn.minimax.chat/public/install.sh | bash

# Windows (PowerShell)
irm https://filecdn.minimax.chat/public/install.ps1 | iex

Nếu bạn đã có Node.js (22.19 trở lên trong dòng 22, 24.2 trở lên trong dòng 24, cùng với 25 và 26), có thể dùng npm:

npm install -g @minimax-ai/code@latest --registry=https://registry.npmjs.org/ --ignore-scripts=false --include=optional --allow-scripts=@minimax-ai/code,better-sqlite3

Lệnh dài này không phải ngẫu nhiên: agent cần bản build SQLite gốc, nên các phụ thuộc tùy chọn và script cài đặt phải được giữ bật. Sau khi cài xong, hãy mở lại terminal và kiểm tra: mcode --version.

Trong TUI, bạn sẽ cần Shift+Tab (chế độ lập kế hoạch), Alt+M (chuyển đổi chế độ quyền — Ask, Auto và Full access), @ để tham chiếu tệp và /help để xem danh sách lệnh. Công việc bị gián đoạn sẽ được tiếp tục bằng mcode --continue, còn mcode init . sẽ tạo tệp AGENTS.md trong dự án với các quy tắc cho agent.

Dữ liệu người dùng — config.yaml, phiên làm việc, trạng thái đăng nhập — được lưu tách biệt khỏi chương trình, trong thư mục ~/.minimax (với hồ sơ có tên — ~/.minimax-<profile>); biến MINIMAX_DATA_DIR cho phép chỉ định vị trí khác.

Khóa JoinGonka. Đăng ký tại gate.joingonka.ai/register: sau khi xác nhận địa chỉ, tài khoản sẽ nhận được 3M token miễn phí. Khóa có tiền tố jg- được tạo trong bảng điều khiển, ở mục «Khóa API»; nên tạo riêng một khóa cho agent — lưu lượng của nó sẽ hiển thị thành một dòng riêng.

Cách nhanh chóng: trình cài đặt một lệnh

Đóng mcode nếu nó đang chạy, rồi thực hiện:

npx @joingonka/setup --tool minimax-code --model minimax

Trình cài đặt sẽ hỏi khóa, lưu một bản sao của config.yaml cũ, chỉ ghi thêm khối của riêng nó vào đó và kết thúc bằng một yêu cầu trực tiếp tới gateway: khóa, địa chỉ và model được kiểm tra ngay lập tức chứ không phải ở tác vụ đầu tiên. Trong ~/.minimax/config.yaml sẽ xuất hiện provider joingonka trong nhánh custom_provider — đó chính là nơi mcode lưu các endpoint bên thứ ba:

custom_provider:
  joingonka:
    name: JoinGonka
    kind: custom
    enabled: true
    api: openai-completions
    options:
      apiKey: jg-your-key
      baseURL: https://gate.joingonka.ai/v1
      authMode: api-key
    models:
      MiniMaxAI/MiniMax-M2.7:
        name: MiniMax M2.7 (Gonka)
        limit:
          context: 200000
          output: 8192
      deepseek-ai/DeepSeek-V4-Flash-0731:
        name: DeepSeek V4 Flash (Gonka)
        reasoning: true
        limit:
          context: 380000
          output: 32768
      zai-org/GLM-5.3-Flash:
        name: GLM 5.3 Flash (Gonka)
        reasoning: true
        limit:
          context: 390000
          output: 8192
defaultModel: custom_provider:joingonka/MiniMaxAI/MiniMax-M2.7

Những điều cần biết về khối này:

  • Định dạng API được ghi rõ ràng. Không có trường api, mcode coi provider là tương thích Anthropic; trình cài đặt chọn openai-completions — đường dẫn chuẩn tắc của gateway.
  • Mỗi model có giới hạn riêng. Với model lạ, mcode gán cửa sổ 200 000 và phản hồi 16 384 token; giá trị thực của mạng thì khác, nên limit được đặt cho cả ba mục.
  • Khóa nằm trong file dưới dạng literal, và bản thân file nhận quyền 600. mcode cũng lưu khóa như vậy: cờ --api-key-env của nó đọc biến và ghi giá trị vào config chứ không phải tham chiếu.
  • Model mặc định. Cờ --model minimax đặt MiniMax M2.7. Không có cờ, trình cài đặt chọn DeepSeek V4 Flash cho các coding agent — model này có cửa sổ và trần phản hồi lớn hơn — còn --model glm cho GLM-5.3 Flash. Nếu trong config đã chọn model của provider khác, chạy lại mà không có --model sẽ không đụng đến nó.
  • Profile. Để dùng profile có tên, hãy chạy trình cài đặt với biến môi trường, ví dụ MINIMAX_DATA_DIR=~/.minimax-work.

Việc đóng mcode trong lúc cài đặt không phải là hình thức: agent ghi lại toàn bộ config.yaml khi tự lưu và có thể xóa mất chỉnh sửa được thực hiện sau lưng nó.

Thiết lập thủ công: mcode provider add và config.yaml

Kết quả tương tự cũng đạt được bằng lệnh chính thức của agent. Khóa được truyền qua biến môi trường — không nên để nó trong đối số và lịch sử shell:

# read the key without echo
read -s JOINGONKA_API_KEY
export JOINGONKA_API_KEY

mcode provider add --name JoinGonka \
  --base-url https://gate.joingonka.ai/v1 \
  --api-format openai-completions \
  --model MiniMaxAI/MiniMax-M2.7 \
  --api-key-env JOINGONKA_API_KEY \
  --context-limit 200000 --output-limit 8192 --use

Cờ --use trước tiên kiểm tra model đầu tiên trong danh sách bằng một yêu cầu trực tiếp, rồi mới lưu provider và đặt model làm mặc định; nếu thất bại thì không lưu gì cả. Một lần chạy thành công kết thúc bằng dòng Provider added and selected: JoinGonka. Từ tên, mcode tự suy ra khóa provider — joingonka — nên trình cài đặt chạy sau sẽ cập nhật chính mục đó chứ không tạo mục thứ hai.

Các cờ --context-limit và --output-limit áp dụng cho tất cả model được liệt kê trong lệnh, trong khi giới hạn của các model trên mạng là khác nhau. Vì vậy dùng lệnh để tạo một model thì tiện, còn các model khác nên ghi thêm vào file. Đóng mcode và hợp nhất đoạn này với khối provider đã có trong ~/.minimax/config.yaml:

custom_provider:
  joingonka:
    models:
      MiniMaxAI/MiniMax-M2.7:
        limit: { context: 200000, output: 8192 }
      deepseek-ai/DeepSeek-V4-Flash-0731:
        limit: { context: 380000, output: 32768 }
      zai-org/GLM-5.3-Flash:
        limit: { context: 390000, output: 8192 }

Cách thứ ba là tương tác: trong TUI, lệnh /model mở lựa chọn model với mục + Add 3rd-party provider…, còn /provider quản lý các kết nối đã lưu. Địa chỉ trên màn hình model được sửa bằng Ctrl+E; kiểm tra thất bại sẽ không lưu gì, bản nháp vẫn còn để chỉnh sửa.

Nên chọn định dạng API nào. Gateway chấp nhận cả ba, chỉ khác nhau ở địa chỉ cơ sở:

--api-format--base-urlKhi nào chọn
openai-completionshttps://gate.joingonka.ai/v1Lựa chọn chính: đường dẫn chuẩn tắc của gateway, cũng là thứ trình cài đặt ghi. Chúng tôi đã chạy toàn bộ vòng lặp agent trên đó
openai-responseshttps://gate.joingonka.ai/v1Nếu phần còn lại của môi trường bạn được xây dựng quanh Responses API
anthropic-messageshttps://gate.joingonka.aiĐịnh dạng Anthropic Messages: agent tự thêm đường dẫn /v1/messages. Đây cũng là giá trị mcode dùng khi --api-format không được chỉ định

Trong lần chạy của chúng tôi, cả ba định dạng đều vượt qua kiểm tra kết nối.

Kiểm tra và các lỗi thường gặp

Ba lệnh cho thấy kết nối vẫn hoạt động. Lệnh đầu tiên liệt kê các nhà cung cấp — cái đang hoạt động được đánh dấu bằng dấu sao, khóa được che:

mcode provider list
* custom_provider:joingonka   active   jg-a****9f3c

Lệnh thứ hai thực hiện một yêu cầu trực tiếp và khi thành công sẽ trả về Provider available: custom_provider:joingonka; cờ --model kiểm tra một mô hình cụ thể:

mcode provider test custom_provider:joingonka

Lệnh thứ ba kiểm tra điều quan trọng nhất — khả năng làm việc với tệp. Hãy đặt một tệp nhỏ có lỗi rõ ràng vào thư mục và yêu cầu tìm ra lỗi đó:

mcode exec "Read calc.py and tell me in one sentence whether it has a bug."

Agent phải tự gọi công cụ đọc tệp và trả lời đúng trọng tâm. Trong lần chạy thử của chúng tôi, cả ba mô hình của mạng đều hoạt động như vậy; để chỉ định một mô hình khác cho một lần chạy, dùng cờ có dạng --model custom_provider:joingonka/<model-id>. Với cờ --output-format json, phản hồi sẽ xuất hiện trường usage với số token đầu vào và đầu ra — bạn có thể dễ dàng đối chiếu với bảng điều khiển của gateway: trong mục «Sử dụng» sẽ thấy các yêu cầu theo giờ và theo ngày, cùng phân tách theo mô hình và theo khóa.

Nếu kiểm tra không thành công, mcode nêu rõ nguyên nhân ngay trong thông báo:

Điều bạn thấyÝ nghĩaCần làm gì
Authentication failed (HTTP 401)Gateway không chấp nhận khóaHãy kiểm tra rằng biến từ --api-key-env đã được export trong cùng shell này và chứa đầy đủ khóa
HTTP 405 khi kiểm traĐịa chỉ cho định dạng OpenAI bị thiếu hậu tốĐịa chỉ phải kết thúc bằng /v1: agent sẽ tự thêm /chat/completions
HTTP 400: Model "…" not found. Available: …ID được nhập mà thiếu tiền tố nhà cung cấpHãy sao chép id từ danh sách mà gateway đưa ra ngay trong thông báo
Request timed out after 10000msKiểm tra kết nối chỉ chờ mười giây, còn mạng đang tải nên phản hồi muộn hơnHãy chạy lại lệnh. Hoặc lưu nhà cung cấp mà không dùng --use rồi kiểm tra riêng bằng mcode provider test
429 … currently overloaded … (rate limit)Mô hình hiện đã hết dung lượng trống trong mạngHãy thử lại sau một phút hoặc chuyển sang mô hình bên cạnh bằng lệnh /model; tình trạng có thể xem tại trang trạng thái
Không thấy các mô hình của nhà cung cấp trong /modelNhà cung cấp đã bị tắt hoặc chỉnh sửa bị mcode đang chạy ghi đèHãy đóng agent và cài đặt lại: thao tác này sẽ trả về enabled: true cùng danh mục mô hình
Cửa sổ lớn chỉ được dùng một nửa hoặc phản hồi bị cắt sớm hơn dự kiếnMô hình được thêm vào mà không có giới hạn: agent coi cửa sổ là 200 000 và phản hồi là 16 384 tokenHãy đặt limit, như trong các ví dụ ở trên

Chọn mô hình nào

Mọi model trong mạng lưới đều có cùng một mức giá, vì vậy lựa chọn phụ thuộc vào cách hoạt động. Dưới đây là các giới hạn và cách các model thể hiện trong lần chạy mcode exec của chúng tôi trên cùng một tác vụ (kiểm tra ngày 21 tháng 9 năm 2026):

ModelIDNgữ cảnh / phản hồiCách hoạt động trong mcode
MiniMax M2.7MiniMaxAI/MiniMax-M2.7200K / 8192Model cùng nhà cung cấp với chính agent này. Trong lần chạy của chúng tôi, nó phản hồi nhanh hơn những model khác. Phần suy luận được trả về ở trường riêng reasoning_content, trong nội dung phản hồi chỉ có câu trả lời
DeepSeek V4 Flashdeepseek-ai/DeepSeek-V4-Flash-0731380K / 32768Câu trả lời rõ ràng, đúng trọng tâm. Cửa sổ lớn và giới hạn phản hồi cao nhất trong mạng lưới — vì vậy trình cài đặt đặt nó làm mặc định
GLM-5.3 Flashzai-org/GLM-5.3-Flash390K / 8192Model reasoning: suy nghĩ trước khi trả lời, câu trả lời sạch sẽ. Phần suy luận được tính vào giới hạn phản hồi, nên đừng đặt output quá thấp

Nguyên tắc thực tế rất đơn giản. Với tác vụ ngắn và chỉnh sửa nhanh, hãy chọn MiniMax M2.7: hiện tại nó chiếm nhiều dung lượng mạng lưới nhất. Nếu phần suy luận hiển thị gây cản trở — ví dụ khi một script phân tích đầu ra của exec — hoặc khi cần đọc một kho mã lớn và nhận bản chỉnh sửa dài, hãy chuyển sang DeepSeek V4 Flash. Với logic phức tạp, GLM-5.3 Flash suy nghĩ tốt hơn.

Việc chuyển đổi không cần sửa tệp: trong TUI là lệnh /model, cho một phiên là mcode -m custom_provider:joingonka/<model-id>, cho một lần chạy là mcode exec --model với cùng giá trị đó. Lựa chọn cố định được lưu trong dòng defaultModel. Thành phần mạng lưới thay đổi theo thời gian; danh sách hiện tại kèm giới hạn luôn được cung cấp bởi GET https://gate.joingonka.ai/v1/models.

Chi phí và những điều cần lưu ý khi làm việc

Các công cụ agent tiêu tốn token khác với chat: với mỗi câu lệnh của bạn, mcode sẽ thêm một system prompt và mô tả của tất cả các công cụ, sau đó thực hiện một cuộc hội thoại đa bước với mô hình. Trong bài kiểm tra của chúng tôi, tác vụ «đọc file và tìm lỗi» tiêu tốn khoảng 40 nghìn token, hầu hết là ở phần đầu vào. Vì vậy, giá mỗi token là yếu tố quyết định.

Thông qua JoinGonka Gateway, token có giá $0.0069 cho mỗi triệu token đầu vào và $0.021 cho mỗi triệu token đầu ra — giá áp dụng đồng nhất cho tất cả các mô hình trong mạng lưới và được cập nhật từ nguồn dữ liệu trực tiếp trên trang này. Thứ tự giá cả vào tháng 9 năm 2026: một tác vụ đơn lẻ tốn vài xu lẻ, một ngày làm việc tích cực với 3-7 triệu token tốn vài xu.

Phương thứcCách thanh toánYêu cầu
Tài khoản nhà cung cấp và Token PlanĐăng ký gói tín dụngĐăng nhập qua mcode login và sử dụng tín dụng hiện có
JoinGonka Gateway (BYOK)Trả theo token thực tế từ số dưKhóa jg-…; không cần đăng nhập vào tài khoản nhà cung cấp, chi tiêu hiển thị trong trang quản trị

BYOK bao gồm những gì. Nhà cung cấp của riêng bạn sẽ phục vụ các yêu cầu tới mô hình: đọc và sửa code, lệnh, sub-agent, các phiên làm việc. Các tính năng tìm kiếm tích hợp, công cụ đa phương tiện mcode-tools và các connector được quản lý là dịch vụ của chính nhà cung cấp, chúng yêu cầu đăng nhập tài khoản và sử dụng tín dụng. Các công cụ riêng của bạn được kết nối độc lập thông qua các máy chủ MCP trong file .mcp.json của dự án.

Quyền hạn. Trong TUI, các chế độ Ask, Auto và Full access được chuyển đổi bằng Alt+M hoặc lệnh /permission; đối với mcode exec, tham số --permission sẽ quản lý việc này.

Telemetry. Các kênh thống kê, số liệu và chẩn đoán trong mcode mặc định bị tắt và được bật riêng lẻ; các biến MCODE_DISABLE_TELEMETRY và DO_NOT_TRACK sẽ tắt tất cả cùng lúc. Về phần mình, cổng kết nối (gateway) không lưu trữ nội dung của các câu lệnh và phản hồi — thống kê chỉ ghi lại tổng số lượng token tiêu thụ.

Nếu bạn cần làm việc với hình ảnh — như ảnh chụp màn hình giao diện hoặc bản thiết kế — hãy tạo thêm một nhà cung cấp thứ hai với mô hình hỗ trợ thị giác, đồng thời thêm cờ --support-image khi cấu hình: các mô hình trong mạng lưới Gonka chỉ thuần văn bản, và bạn có thể sử dụng nhiều nhà cung cấp trong mcode.

Các agent từ chính các phòng thí nghiệm hiện có cho cả ba dòng mô hình: bên cạnh MiniMax Code còn có DeepSeek Harness và ZCode từ Z.ai, những người tạo ra GLM. Cả ba đều kết nối vào cùng một cổng kết nối với cùng một khóa.

MiniMax Code là agent dòng lệnh của phòng thí nghiệm MiniMax với mã nguồn mở và hỗ trợ BYOK tiêu chuẩn: bạn có thể kết nối endpoint riêng mà không cần đăng nhập vào tài khoản nhà cung cấp. Cách nhanh nhất — npx @joingonka/setup --tool minimax-code --model minimax: trình cài đặt sẽ ghi cấu hình joingonka vào ~/.minimax/config.yaml với định dạng openai-completions, địa chỉ https://gate.joingonka.ai/v1 cùng các giới hạn chuẩn của MiniMax M2.7, DeepSeek V4 Flash và GLM-5.3 Flash, sau đó kiểm tra kết nối bằng một yêu cầu thực tế. Thủ công thì bạn dùng mcode provider add … --use. Kiểm tra bằng mcode provider test custom_provider:joingonka, chuyển đổi mô hình bằng /model. Thanh toán theo token thực tế với giá của mạng lưới Gonka, không cần đăng ký gói hay hạn ngạch.

Muốn tìm hiểu thêm?

Khám phá các phần khác hoặc bắt đầu kiếm GNK ngay bây giờ.

Nhận khóa và token miễn phí →