Xiaomi verzija Claude Code-a zvanično objavljena, ovaj put otvorena i data dobro.
MiMo Code 0.1 verzija je zvanično objavljena i otvorena je pod MIT licencom. Podržava:
- MiMo Auto (vremenski ograničeno besplatno), ko želi da pokupi token-e neka požuri
- Xiaomi MiMo platforma OAuth prijava
- Jednim klikom prenos postojeće autorizacije iz Claude Code-a
- Prilagođeni Provider, može dodati bilo koji OpenAI kompatibilan API
Način instalacije je vrlo jednostavan, jedna komanda rešava: curl -fsSL https://mimo.xiaomi.com/install | bash.

Izgled ovog instalacionog interfejsa je prilično visok — moram reći, prijatelji, Xiaomi zaista nešto zna kada je u pitanju izgled.
Interno je integrisan SDK sa https://ai-sdk.dev/, podržava neprimetno povezivanje sa više modela i platformi. Postoji i biblioteka modela na https://models.dev/, koja pruža bogat izbor pretreniranih modela.
01. Instalacija i upoznavanje
Zvanično se kaže da je način pokretanja vrlo jednostavan — samo mimo, ali u stvarnom iskustvu to nije dobro urađeno, kod mene je odmah prijavilo grešku.

Na sreću, Warp nudi podrazumevani Agent servis, pa prema uputstvu popravite i gotovo.

Da vam pokažem i rešenje.

Samo ponovo izvršite source, da varijable okruženja postanu aktivne. Ili otvorite novi terminal.

Prijatelju, čak i pri otvaranju prelijeće meteor.
Unesite /connect da se povežemo sa provajderom.

Radi lakše, izabraćemo auto — time izbegavamo prijavu.
Uz to, povežimo i DeepSeek V4 — isto izvršite /connect, izaberite DeepSeek provajdera, a zatim unesite API Key i izaberite model koji želite da povežete.

02. Pregled Harness arhitekture
Harness je urađen prilično sveobuhvatno, s mnogo truda uloženog u računanje, memoriju i evoluciju.

Rešava uglavnom dva problema.
Prvo, pošto će prozor konteksta na kraju biti potrošen, pored neophodnog sažimanja mora se bolje snaći i u pretraživanju i skladištenju, tako da Agent pametnije trajno upisuje i priziva ključne informacije.
Drugo, pošto se sposobnost modela da prati instrukcije pogoršava sa povećanjem dužine unosa, potrebni su odgovarajući mehanizmi koji će unaprediti sposobnost Agent-a da prati instrukcije i osigurati njegove performanse u dugim razgovorima.
03. Promotivna stranica za PaiCLI
Naš prvi zadatak je:
Napravi promotivnu stranicu za naš PaiCLI, referenca https://mimo.xiaomi.com/mimocode

Da vidimo kako se MiMo Code snalazi.

Nažalost, prvo je upotrebio Web fetch, nije dobio rezultat, a zatim je hteo da koristi CDP, ali opet nije dobio.
Onda moramo da primenimo kućne metode.

Neka MiMo Code prvo instalira Skill web-access.
Instaliraj Skill sa https://github.com/eze-is/web-access, a zatim možeš da dohvatiš web stranice.
Iz izlaza se vidi da je koristio podrazumevani direktorijum Claude Code-a.

Po logici sam ga već ranije instalirao u Claude Code-u, ali ne znam zašto ga treba ponovo instalirati.
Nije važno.

Dajem dozvolu.
Vidi se da je ovaj put CDP agent već startovan.

Nastavljam sa davanjem dozvola.

Ovog put može da dohvati sadržaj stranice.

Razjasnio je dizajnerski stil sajta: svetla topla pozadina, minimalistički raspored, PingFang SC font, komanda za instalaciju u terminalu.
Krece u redizajn promotivne stranice PaiCLI-ja.
Sačekajte, da vidimo kako se MiMo Code snalazi.

Završeno, da otvorimo i vidimo efekat — ukupan stil je zaista prilično dobar.


MiMo Code podržava i redosled novih instrukcija tokom izvršenja.

Po završetku podesili smo poddomen, pa možete direktno pristupiti i isprobati.
https://paicli.paicoding.com/

04. Računskom snagom u pouzdanost
Malopre sam pomenuo da MiMo Code projektuje Harness oko tri teme — računanje, memorija i evolucija — pa da ih redom raščlanimo.
Prvo, računanje.
Osnovna struktura Agent-a za kodiranje je da se jezički model stavi u runtime petlju i poziva više puta — model je zadužen za rezonovanje i odlučivanje, a runtime za upravljanje alatima, trajno stanje i slaganje ulaza za svaku rundu. Model je po sebi bezstanja, svaki poziv kreće od nule, a svu kontinuitet pruža runtime.

Za kratke zadatke (do 10 rundi) ova struktura je u redu — prosledite modelu celu istoriju razgovora. Ali kada zadatak dođe do desetina ili stotina koraka, stopa greške u svakom koraku se kumulativno uvećava, a Agent u dugom toku nema spoljašnji signal za ispravku.
Pristup MiMo Code-a je da na različitim nivoima grubosti uloži dodatnu računsku snagu u zamenu za pouzdanost.
Max Mode
Max Mode je najzanimljiviji dizajn MiMo Code-a.
Pri svakoj rundi odlučivanja, paralelno se generiše N kandidata (podrazumevano N=5), svaki kandidat samostalno dovršava rezonovanje i planiranje poziva alata, ali bez stvarnog izvršenja. Zatim isti model deluje kao sudija, poredi proces rezonovanja i plan akcije svih kandidata i bira najbolji za izvršenje.
Podrazumevano se koristi temperature=1 za 5 nezavisnih uzorkovanja — gotovo da nikada ne daje iste rezultate. Ako više kandidata slučajno ide u istom pravcu, to samo po sebi ukazuje na visok nivo poverenja u taj pravac; a kada su razlike među kandidatima velike, sudija sa niskom temperaturom bira najstabilniji, što je pouzdanije od oslanjanja na jedno uzorkovanje.

Na SWE-Bench Pro, Max Mode donosi 10-20% poboljšanja u odnosu na jedno uzorkovanje, po ceni oko 4 do 5 puta veće potrošnje token-a. Ta cena nije mala, ali za dugotrajne zadate gde jedan pogrešan korak sve ruši, vredi.
Trenutno je Max Mode samo eksperimentalna funkcija i mora se ručno konfigurisati za uključivanje. Putanja konfiguracionog fajla MiMo Code-a je projektni .mimocode/mimocode.json ili globalni ~/.config/mimocode/mimocode.json — u njemu postavite experimental.maxMode na true.
Goal
Max Mode rešava "uradi pravo", Goal rešava "zavravi do kraja".
Jedan veoma čest tip neuspeha u dugim zadacima je da Agent, kada u kasnijim rundama vidi prethodni napredak, teži da prerano proglasi "završeno" ili da obrnuto pita korisnika.
Mehanizam Goal-a je sledeći.

Korisnik postavi uslov zaustavljanja opisan prirodnim jezikom, na primer "svi testovi prolaze i kod je komitovan". Svaki put kada Agent pokuša da se završi, sistem automatski pokreće poseban poziv modela da pregleda kompletnu istoriju razgovora i proceni da li je uslov zaista ispunjen. Ako nije, specifična razlika se vraća Agentu da nastavi sa radom; ako se potvrdi da se ne može završiti, ocenjuje se kao nemoguće i izlazi.
Ovaj proveravalac ne učestvuje u stvarnom radu, tako da nema pristrasnost prema onome što je Agent završio. Dobija kontekst identičan onome što Agent ima, uključujući stvarne izlaze alata. U stvarnom radu, greške zadržavanja su češće od grešaka propuštanja, ukupna verovatnoća beskonačne petlje manja je od 0.5%, a po dostizanju gornje granice automatski se izlazi.
Max Mode je paralelna dimenzija — u istom koraku troši N puta više računske snage da bi izabrao najbolje; Goal je serijska dimenzija — na istom zadatku radi duže samoprovjeru i izvršenje.
Oboje mogu biti uključeni istovremeno.
Dynamic Workflow
Kada zadatak postane dovoljno veliki — na primer migracija celog projekta iz jednog jezika u drugi — potrebno je uskladiti desetine ili čak stotine paralelnih radnih jedinica, pa pozivi alata po rundama više nisu dovoljni.
Tradicionalni pristup je da se proces upiše u Skill fajl, prirodnim jezikom se modelu kaže "prvo uradi A, pa B, ako C onda uradi D".
To radi u jednostavnim scenarijima, ali u složenim procesima sistemski otkazuje — kompresija konteksta može da proguta korak, model može da preskoči deo procesa, grananje i logiku pokušaja oslanja se na procenu modela umesto na kod, a dva pokretanja istog procesa idu različitim putanjama.
Suština problema je u tome što logika orkestracije postoji kao prirodni jezik, a prirodni jezik je dvosmislen, zaboravan i neproverljiv.
Dynamic Workflow pretvara logiku orkestracije u kod.

Glavni Agent generiše JavaScript skriptu koja se deterministički izvršava u izolovanom sandbox-u.
Skripta preko agent() šalje pod-agente, a preko parallel() i pipeline() kontroliše konkurentnost.
Implementacija MiMo Code-a je kompatibilna sa ključnom semantikom Anthropic Dynamic Workflow-a, a na toj osnovi radi nekoliko proširenja.
workflow()dozvoljava skripti da poziva druge skripte, čime se logika orkestracije može ponovo koristiti i kombinovati;- rezultat svakog poziva
agent()se sinhronizuje na disk, te se nakon prekida procesa može nastaviti iz loga umesto iz početka; unutar sandbox-a mogu se direktno čitati i pisati fajlovi.
Sa drugog ugla, Skill je SOP pisan prirodnim jezikom, a Workflow je SOP pisan kodom.
05. Neka se kontekst proteže u beskonačnost
Zamislite razgovor kao niz rundi razgovora poređanih s leva na desno.
Prozor ima gornju granicu, runde se stalno akumuliraju, pa će prozor na kraju biti popunjen. Bez intervencije, kada razgovor stigne do gornje granice, ili se završi ili tiho degradira.
Pristup MiMo Code-a je da interveniše na nekoliko fiksnih pozicija pre nego što prozor stigne do granice — te pozicije se zovu checkpoint.

Na svakom checkpointu šalje se nezavisan writer pod-agent, koji čita sve razgovore i strukturirano stanje upisuje na disk. Glavni Agent nastavlja da radi, a writer se izvršava konkurentno, bez međusobnog ometanja.
Kada prozor priđe gornjoj granici, izvršava se jedan rebuild — preseca se trenutni prozor, otvara se novi i koriste se već trajno sačuvani fajlovi kao seme za obnovu konteksta.
Glavni Agent se budi u novom prozoru i može da nastavi sa radom.
Niz rundi razgovora koji je prošao kroz checkpoint-e i konačno završen rebuildom čini jedan cycle. Nema gornje granice za broj cycle-a — svaki cycle je ograničen fizičkom veličinom prozora, ali logička sesija je lanac cycle-a, a taj lanac nema maksimalnu dužinu.
Četvoroslojna memorija
Writer ne piše samo jedan fajl — on održava hijerarhijski sistem memorije u kojem svaki sloj ima različit životni vek.

- Session memorija (checkpoint.md), živi samo tokom trenutne logičke sesije, beleži kompletno radno stanje ove sesije
- Project memorija (MEMORY.md), projektni nivo trajne baze znanja, čuva arhitektonske odluke, korisnička pravila, više puta proverene tehničke činjenice.
- Global memorija, preferencije na nivou korisnika, važi kroz projekte
- History, kompletna SQLite staza svake sesije — svaka poruka, svaki poziv alata u originalnom obliku, bez indeksa. Kada se u strukturiranoj memoriji ne pronađe neki detalj, Agent preko alata history ide nazad do originalnog zapisa.
Glavni Agent u svakom trenutku može dodavati razbacana otkrića, a writer pri svakom checkpointu čita ih, rutira sadržaj u odgovarajuće strukturirano polje, a zatim ih briše.
To je kao da se glavnom Agentu da "sveska za beleške" — glavni Agent ne mora da brine u koje strukturirano polje ide informacija, samo je zapisuje, a klasifikaciju prepusta writer-u.
ending
Ovde moram pohvaliti OpenCode.
MiMoCode je izgrađen baš na OpenCode-u, zadržavši gotovo sve ključne sposobnosti (više Provider-a, TUI, LSP, MCP, dodaci).
A na toj osnovi je izgradio trajnu memoriju, pametno upravljanje kontekstom, orkestraciju pod-inteligencija, cilj-pokretanu autonomnu petlju, Compose tok rada, kao i samoevoluciju putem dream/distill.

Možda je upravo to smisao otvorenog koda — stajati na ramenima džinova i praviti vrednije stvari.
Vidimo se u sledećem.
