Sekcje bazy wiedzy ▾

Nawigacja

▸ Zacznij tutaj Według ról

Kategorie

Narzędzia 52
Słownik 12

Narzędzia

MiMo Code + JoinGonka Gateway: agent Xiaomi na modelach sieci Gonka

MiMo Code (komenda mimo) — to terminalowy agent kodujący laboratorium Xiaomi MiMo: czyta i pisze kod, uruchamia polecenia, pracuje z Git i posiada trwałą pamięć o projekcie między sesjami. Jest to fork OpenCode: wszystko, co potrafi oryginał, jest na miejscu, a dodatkowo dodano punkty kontrolne sesji, przywracanie kontekstu, subagenty i gotowe przepływy pracy. Kod jest otwarty na licencji MIT; projekt jest młody i szybko się zmienia, dlatego wszystko poniżej odnosi się do wersji 0.1.15, wydanej 22 września 2026 roku.

Warstwa modelowa w MiMo Code jest wymienna: dowolne API kompatybilne z OpenAI można podłączyć jako własnego dostawcę — poprzez opis w mimocode.jsonc i klucz w auth.json. JoinGonka Gateway właśnie taki jest, dlatego podłączenie sprowadza się do jednego polecenia instalatora.

Własnych modeli MiMo w sieci Gonka nie ma: sieć zdecentralizowana obsługuje DeepSeek V4 Flash, GLM-5.3 Flash i MiniMax M2.7 — wszystkie w tej samej cenie, $0.0069 za milion tokenów wejściowych. Agent nie jest przywiązany do modeli Xiaomi: dostawcy w nim są wymienni, a cała infrastruktura — pamięć, punkty kontrolne, subagenty — działa w oparciu o model, który wybierzesz. Polecenia, pliki i komunikaty poniżej zostały sprawdzone poprzez uruchomienie MiMo Code przez bramkę 23 września 2026 roku. Po potwierdzeniu adresu na konto wpłynie 3M darmowych tokenów — wystarczy, aby powtórzyć to samodzielnie.

Szybki start: instalacja i jedno polecenie

Krok 1: zainstaluj MiMo Code. Oficjalne metody z README projektu:

# macOS and Linux
curl -fsSL https://mimo.xiaomi.com/install | bash

# Windows (PowerShell)
powershell -ep Bypass -c "irm https://mimo.xiaomi.com/install.ps1 | iex"

# via npm, on any system
npm install -g @mimo-ai/cli

Skrypt instaluje plik binarny w ~/.mimocode/bin i dopisuje ten katalog do PATH przez profil powłoki (flaga --no-modify-path to wyłącza). Build pobiera z repozytorium Xiaomi; jeśli pobieranie nie idzie, instaluj przez npm — to ta sama wersja, do nas obiema drogami dotarła 0.1.15. Weryfikacja — mimo --version.

Krok 2: zdobądź klucz. Zarejestruj się na gate.joingonka.ai/register, potwierdź adres i utwórz klucz z prefiksem jg- w sekcji «Klucze API». Jeden klucz i jedno saldo działają dla wszystkich modeli w sieci.

Krok 3: uruchom instalator.

npx @joingonka/setup --tool mimo-code

Instalator zapyta o klucz — nie przekazuje się go w argumentach wiersza poleceń — i zapisze te same dwa pliki, co kreator własnego dostawcy w samym MiMo Code, tylko od razu z pełnym katalogiem i limitami:

  • dopisze dostawcę joingonka do globalnej konfiguracji ~/.config/mimocode/mimocode.jsonc (albo do mimocode.json lub config.json, jeśli MiMo Code już tam pisze): adapter @ai-sdk/openai-compatible, adres bramy z /v1 i trzy modele w sieci z oknami kontekstu, limitami odpowiedzi i obsługą narzędzi;
  • umieści klucz we własnym magazynie kluczy MiMo Code — ~/.local/share/mimocode/auth.json z uprawnieniami 600. W samej konfiguracji klucza nie ma, więc można go bezpiecznie trzymać w dotfiles;
  • ustawi model domyślny — pole model — na DeepSeek V4 Flash, ale tylko jeśli nie jest wybrany lub wskazuje na model, który zniknął z sieci. Twojego wyboru, także w innej globalnej konfiguracji, nie nadpisze;
  • zachowa kopie poprzednich plików, nie ruszy cudzych dostawców, kluczy i komentarzy, a pliku, którego nie da się sparsować, nie nadpisze — zatrzyma się i powie, co poprawić;
  • na końcu wyśle prawdziwe zapytanie do bramy i wprost powie, czy klucz, adres i model zostały przyjęte.

Niestandardowe katalogi instalator uwzględnia sam: MIMOCODE_HOME, XDG_CONFIG_HOME, XDG_DATA_HOME i MIMOCODE_CONFIG. Inny model domyślny ustawia flaga --model ze skrótami deepseek, glm lub minimax; dla dotfiles i serwerów jest tryb bez pytań:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool mimo-code --non-interactive

Jeśli MiMo Code był uruchomiony, zrestartuj go: nowy dostawca jest wykrywany przy starcie.

Konfiguracja ręczna: mimocode.jsonc i auth.json

Wszystko, co robi instalator, można napisać ręcznie. Pliki są dwa i każdy ma swoje zadanie: konfig opisuje providera i modele, auth.json przechowuje klucz. Łączy je identyfikator providera — joingonka musi być taki sam w obu plikach. Konfig, ~/.config/mimocode/mimocode.jsonc:

{
  "$schema": "https://mimo.xiaomi.com/mimocode/config.json",
  "provider": {
    "joingonka": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "JoinGonka (Gonka)",
      "options": {
        "baseURL": "https://gate.joingonka.ai/v1"
      },
      "models": {
        "deepseek-ai/DeepSeek-V4-Flash-0731": {
          "name": "DeepSeek V4 Flash (Gonka)",
          "tool_call": true,
          "reasoning": true,
          "limit": { "context": 380000, "output": 32768 }
        },
        "zai-org/GLM-5.3-Flash": {
          "name": "GLM 5.3 Flash (Gonka)",
          "tool_call": true,
          "reasoning": true,
          "limit": { "context": 390000, "output": 8192 }
        },
        "MiniMaxAI/MiniMax-M2.7": {
          "name": "MiniMax M2.7 (Gonka)",
          "tool_call": true,
          "limit": { "context": 200000, "output": 8192 }
        }
      }
    }
  },
  "model": "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"
}

Klucz, ~/.local/share/mimocode/auth.json z uprawnieniami 600:

{
  "joingonka": { "type": "api", "key": "jg-your-key" }
}
PoleWartośćCo się liczy
provider.joingonkaidentyfikator provideraMałymi literami; ten sam klucz — w auth.json, inaczej MiMo Code nie powiąże klucza z providerem
npm@ai-sdk/openai-compatibleAdapter dla API zgodnych z OpenAI — przez niego MiMo Code rozmawia z gatewayem po Chat Completions
options.baseURLhttps://gate.joingonka.ai/v1Z /v1 na końcu: ścieżkę /chat/completions MiMo Code dopisuje sam
modelsklucze — id modeli sieciIdentyfikator trafia do żądania bez zmian, razem z prefiksem vendora
limitcontext i output według powyższej listyBez nich MiMo Code przyjmuje okno modelu za milion tokenów i zacznie kompresować historię zbyt późno — żądanie trafi w rzeczywisty limit modelu
tool_calltrueModel wywołuje narzędzia. Dla własnych modeli MiMo Code i tak przyjmuje to domyślnie, instalator zapisuje flagę jawnie
reasoningtrueOznaczenie modelu rozumującego: dostają je DeepSeek V4 Flash i GLM-5.3 Flash, wpis MiniMax M2.7 obywa się bez niego

Model domyślny zapisuje się jako provider/model-id; providera oddziela pierwszy ukośnik, dlatego identyfikatory sieci z własnym ukośnikiem pisze się tak, jak są.

Gdzie jeszcze może leżeć klucz. README MiMo Code pokazuje też wariant z kluczem wprost w konfigu — options.apiKey. Działa, ale wtedy klucz łatwo trafi do commita razem z dotfile'ami, a zapomniany stary klucz tam nadpisze nowy z auth.json — dlatego instalator usuwa options.apiKey ze swojego bloku. Do projektowego .mimocode/mimocode.jsonc tym bardziej nie wkładaj klucza.

Który plik jest najważniejszy. Globalne config.json, mimocode.json i mimocode.jsonc MiMo Code scala w tej kolejności, każdy następny nadpisuje poprzedni. Wynik wypisuje mimo debug config, a ścieżki do konfigu i kluczy w twoim systemie — mimo debug paths.

Dostawca z interfejsu, auth.json i wybór modelu

Swojego dostawcę można dodać także bez plików — za pomocą wbudowanego kreatora. Przy pierwszym uruchomieniu w katalogu projektu MiMo Code pyta, czy ufasz folderowi (Yes, I trust this folder): agent otrzyma prawo do czytania, edytowania i uruchamiania plików w nim zawartych. Następnie komenda /connect otwiera listę Select provider: na górze znajduje się wejście do platformy Xiaomi MiMo, Codex oraz import z Claude Code, poniżej katalog dostawców, a na samym końcu — + Custom provider. Kreator zadaje sześć pytań:

KrokCo wpisaćUwaga
Provider id (1/6)joingonkaTen sam id co w instalatorze: uruchomiony później, zaktualizuje ten wpis, zamiast tworzyć drugi
Display name (2/6)JoinGonkaPodpis na listach; domyślnie pokrywa się z id
Base URL (3/6)https://gate.joingonka.ai/v1Z przyrostkiem /v1
API key (4/6)Twój klucz jg-…Trafia do auth.json, nie jest zapisywany w konfiguracji
First model id (5/6)deepseek-ai/DeepSeek-V4-Flash-0731Pełny id modelu sieci, z prefiksem dostawcy
First model name (6/6)DeepSeek V4 FlashPodpis; domyślnie — sam id

W naszym teście kreator zapisał blok dostawcy z jednym modelem bez limitów oraz dwoma polami, których nie posiada instalator: env z nazwą zmiennej JOINGONKA_API_KEY, gdzie MiMo Code również szuka klucza, oraz options.setCacheKey: true. Z bramką to działa, ale konfigurację warto dopracować: bez limit mimo models joingonka pokaże okno 1M tokenów. Najprościej po użyciu kreatora raz uruchomić instalator — dopisze on w tym samym bloku pełny katalog z limitami.

Wybór modelu. Stały wybór to pole model w konfiguracji. W interfejsie model zmienia komenda /models, dla jednorazowego uruchomienia — flaga -m. Informacje o tym, jakie modele MiMo Code widzi u dostawcy i z jakim oknem pracuje, pokazuje mimo models joingonka — wraz z progiem, po przekroczeniu którego agent zacznie kompresować historię:

joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 — window 380K, compacts at 342K
joingonka/MiniMaxAI/MiniMax-M2.7 — window 200K, compacts at 180K
joingonka/zai-org/GLM-5.3-Flash — window 390K, compacts at 351K

Cena wszystkich modeli sieci jest taka sama, więc wybór zależy od zachowania. Tak poradziły sobie w naszym teście mimo run w jednym zadaniu — odczytanie pliku i znalezienie błędu:

ModelKontekst / odpowiedźJak zachowuje się w MiMo Code
DeepSeek V4 Flash380K / 32768Rozwiązuje zadanie poprawnie; ma największy sufit odpowiedzi w sieci — to go instalator ustawia domyślnie
GLM-5.3 Flash390K / 8192Czysta odpowiedź w dwóch krokach i kilka sekund. Model rozumujący: rozumowanie wchodzi w sufit odpowiedzi
MiniMax M2.7200K / 8192Rozwiązuje zadanie poprawnie. Rozumowanie modelu przychodzi oddzielnie od odpowiedzi: domyślnie mimo run pokazuje tylko odpowiedź i wywołania narzędzi, a flaga --thinking wyprowadza również rozumowanie

Dlaczego domyślnie wybrany jest DeepSeek V4 Flash, wyjaśniono w przeglądzie modelu.

Weryfikacja: co powinno się stać

Najpierw upewnij się, że MiMo Code widzi dostawcę i klucz:

mimo models joingonka
mimo providers list

Pierwsza komenda wylicza trzy modele sieci wraz z oknami, tak jak w powyższym przykładzie; druga wypisuje ścieżkę do magazynu kluczy oraz ciąg joingonka api. Potem — jednorazowe uruchomienie. Umieść w katalogu projektu plik calc.py z oczywistym błędem — na przykład pole prostokąta, w którym boki są dodawane zamiast mnożone — i poproś, żeby go znalazł:

mimo run "Read the file calc.py in the current project directory and tell me in one sentence whether it has a bug."

W wynikach pojawi się agent i model (> build · deepseek-ai/DeepSeek-V4-Flash-0731), wywołanie narzędzia (→ Read calc.py) oraz merytoryczna odpowiedź — ze wskazaniem błędnego wyrażenia. Flaga --format json zamienia wynik w strumień zdarzeń, w którym każdy krok ma licznik tokenów, a -m joingonka/<model-id> uruchamia przebieg na innym modelu. W naszym przebiegu cykl „zapytanie → wywołanie narzędzia → wynik → odpowiedź” przeszły wszystkie trzy modele sieci.

Trzecia kontrola — od strony bramy: w panelu w sekcji „Wykorzystanie” zapytanie pojawi się w rozbiciu „Według modeli”, a w bloku „Według kluczy” zaktualizuje się czas ostatniego zapytania.

Jeśli coś poszło nie tak, diagnozę zwykle odczytasz wprost z komunikatu:

Co widaćCo to znaczyCo zrobić
Error: Invalid API keyBrama nie przyjęła kluczaSprawdź klucz w auth.json lub uruchom instalator ponownie; pamiętaj, że options.apiKey w bloku dostawcy nadpisuje auth.json
Error: Method Not AllowedW baseURL brakuje sufiksu /v1Adres musi brzmieć dokładnie https://gate.joingonka.ai/v1
Error: Model not found: joingonka/… Did you mean: …?Modelu nie ma na liście models dostawcy — najczęściej id zostało wpisane bez prefiksu dostawcyWeź pełne id z podpowiedzi lub z mimo models joingonka
permission requested: external_directory (…); auto-rejecting, a przebieg kończy się bez odpowiedziW mimo run odwołanie poza projekt jest odrzucane i przebieg się zatrzymuje. Tak bywa, gdy model szuka pliku poza projektem — na przykład w katalogu domowymWskaż, że plik jest w katalogu projektu; stały dostęp do potrzebnego katalogu daje reguła permission.external_directory
W mimo models joingonka okno 1MModel nie ma limit — tak bywa po kreatorze Custom providerUstaw limit w konfiguracji lub uruchom instalator
429 … is currently overloaded in the Gonka network (rate limit)Model nie ma teraz wolnej przepustowości w sieciPowtórz po minucie lub przełącz się na sąsiedni model komendą /models albo flagą -m; stan widać na stronie statusu
402Na koncie skończyły się środkiDoładuj konto w sekcji „Rozliczenia”; klucz przy tym działa
Odpowiedź urwała się w połowie zdaniaStrumień odpowiedzi przerwał się po drodze — tak bywa w godzinach szczytumimo run -c "continue" wznowi ostatnią sesję od tego samego miejsca

Ile to kosztuje

Narzędzie agentowe zużywa tokeny inaczej niż czat: do każdej Twojej frazy MiMo Code dodaje systemowy prompt, opisy narzędzi i kontekst serwisowy agenta, a zadanie zajmuje kilka kroków. W naszym teście każde zapytanie do modelu niosło 22-25 tysięcy tokenów wejściowych, a zadanie „przeczytaj plik i znajdź błąd” składające się z dwóch kroków kosztowało około 45-50 tysięcy tokenów — prawie wszystko to wejście. Dlatego cena za token ma tutaj kluczowe znaczenie.

Przez JoinGonka Gateway tokeny kosztują $0.0069 za milion na wejściu i $0.021 za milion na wyjściu — cena jest taka sama dla wszystkich modeli sieci i jest pobierana na tej stronie z aktualnego źródła.

ScenariuszZużyciePrzez Gateway
Jednorazowe zadanie: przeczytać plik, znaleźć błąd45-50K tokenówsetne części centa
Dzień aktywnej pracy3-7M tokenówjednostki centów
Miesiąc aktywnej pracy~150M tokenówokoło dolara

Szacunki w prawej kolumnie — według cen na wrzesień 2026. Dla porównania — jak w ogóle można płacić za modele w MiMo Code:

MetodaJak jest rozliczanaCzego potrzeba
Platforma Xiaomi MiMowedług warunków platformykonto Xiaomi MiMo, logowanie przez przeglądarkę
Codexsubskrypcja ChatGPTplan ChatGPT Plus lub Pro, logowanie przez przeglądarkę
Klucz dostawcy z kataloguza tokeny według cennika dostawcyosobny klucz u każdego dostawcy
JoinGonka Gatewayza tokeny z przedpłaconego saldaklucz jg-…; trzy modele sieciowe w jednej cenie, zużycie widoczne w panelu

Własna ocena kosztu w MiMo Code dla modeli bramy wynosi zero — w ich zapisach nie ma pola cost, a w zdarzeniach --format json widnieje "cost": 0. Rzeczywiste zużycie i saldo znajdują się w panelu, w sekcjach „Użycie” i „Billing”.

O czym warto pamiętać

Uprawnienia. W interfejsie MiMo Code prosi o potwierdzenie ryzykownych działań, a w mimo run nie ma kogo pytać — żądanie dostępu poza projekt odrzuca samodzielnie. Dla zaufanych środowisk jednorazowych istnieje flaga --dangerously-skip-permissions (lub zmienna MIMOCODE_DANGEROUSLY_SKIP_PERMISSIONS=1): pozwala ona na wszystko, co nie jest zabronione przez wyraźną regułę — tylko w kontenerze lub piaskownicy. W interfejsie podobny tryb na czas sesji włącza /skip-permissions.

Agenci. Domyślnie działa build z pełnym zestawem narzędzi, plan tylko czyta i analizuje, compose prowadzi proces od specyfikacji do sprawdzonego kodu; przełącza je Tab.

Długi kontekst. Przy limicie okna MiMo Code przebudowuje kontekst z ostatniego punktu kontrolnego, pamięci projektu i świeżych wiadomości; próg oblicza od limit.context. Kompresować wcześniej można komendą /context-limit, oddzielnie dla każdego modelu.

Co jest powiązane z kontem Xiaomi. Wprowadzanie głosowe (/voice) rozpoznaje mowę modelem platformy MiMo i jest dostępne po zalogowaniu. Kod, polecenia i subagenci działają przez podłączonego dostawcę — w naszym przypadku bez żadnego logowania.

Obrazki. Modele sieci są tekstowe: w /modalities pozostaw im tylko tekst, a do zrzutów ekranu dodaj drugiego dostawcę z modelem, który potrafi interpretować obraz.

MiMo Code i OpenCode to krewni o różnych ustawieniach. Katalogi i pliki mają swoje własne, więc konfiguracja jednego nie jest przekazywana drugiemu:

OpenCodeMiMo Code
Komendaopencodemimo
Konfiguracja~/.config/opencode/opencode.json~/.config/mimocode/mimocode.jsonc
Klucze~/.local/share/opencode/auth.json~/.local/share/mimocode/auth.json
Instalator--tool opencode--tool mimo-code

Wersja. Projekt aktualizuje się często; dla powtarzalności ustal jej wersję: npm install -g @mimo-ai/[email protected] lub curl -fsSL https://mimo.xiaomi.com/install | bash -s — --version 0.1.15.

Agentów od samych laboratoriów posiadają również rodziny obsługiwane przez sieć: MiniMax Code działa na modelu swojego dostawcy MiniMax M2.7, swoich agentów mają DeepSeek oraz Z.ai, autorzy GLM. Wszyscy łączą się z tą samą bramką przy użyciu jednego klucza.

MiMo Code — agent terminalowy Xiaomi MiMo, fork OpenCode z pamięcią projektu i punktami kontrolnymi. Modeli MiMo w sieci Gonka nie ma, ale dostawca w agencie jest wymienny: npx @joingonka/setup --tool mimo-code zapisze dostawcę joingonka w ~/.config/mimocode/mimocode.jsonc (adapter @ai-sdk/openai-compatible, adres https://gate.joingonka.ai/v1, DeepSeek V4 Flash, GLM-5.3 Flash i MiniMax M2.7 z uczciwymi limit) i umieści klucz jg-… w natywnym auth.json. Ręcznie to samo robi kreator /connect → + Custom provider, po nim dopisz modele i limity. Weryfikacja — mimo models joingonka i mimo run; w pojedynczym uruchomieniu trzymaj ścieżki wewnątrz projektu.

Chcesz wiedzieć więcej?

Zapoznaj się z innymi sekcjami lub zacznij zarabiać GNK już teraz.

Uzyskaj klucz i darmowe tokeny →