Oh-My-NavLogg inn

Bygget med GitHub Copilot

PersonvernTilgjengelighetGitHub

Lokal modell og decide

Alfa

Macen din kjører en kodemodell for enkle oppgaver. Filene den leser og skriver, blir på maskinen, og modellen bruker ingen AI-credits.

Kom i gangGod praksisVerktøyRetningslinjernav-pilotcpltModellpriserStatistikkAdopsjonOrdbok

nav-pilot kan kjøre en kodemodell på din egen Mac. Hovedagenten i skyen planlegger og sender avgrensede oppgaver til den, for eksempel å føre et nytt argument gjennom et par kall. Med nav-pilot alpha decide stiller du den samme modellen et flervalgsspørsmål fra en hook eller et skript, og får svar på under et halvt sekund.

Her er eksempelet fra nyhetssaken om decide: forklarer denne commit-meldingen hvorfor endringen ble gjort? Meldingen lister opp hva som er lagt til, men ikke hvorfor, og modellen svarer «no».

$ nav-pilot alpha decide \
    "Does the commit message explain why the change was made, beyond describing what the diff already shows?" \
    --options yes,no --evidence commit.txt

  no  p=0.88

  yes                  0.119
  no                   0.881

  mlx-community/Qwen3.6-35B-A3B-OptiQ-4bit · 424 ms · evidence: true

Hva du får

Utsending til bakkemodellen

Hovedagenten bestemmer og sender mekaniske oppgaver til underagenten local-worker på maskinen din. Den delen av jobben bruker ingen AI-credits. Hovedagenten gjør det fortsatt. Utsending krever opencode som klient.

alpha decide

Ett spørsmål inn, en sannsynlighet per svaralternativ ut. Med --threshold og --expect blir svaret en exit-kode, så du kan bruke det i en commit-hook uten å tolke tekst.

Innholdet blir på maskinen

Spørsmålet og grunnlaget du gir decide, forlater ikke maskinen. Ved utsending ser hovedagenten i skyen oppgaven den selv skrev, og bakkemodellens korte svar. nav-pilots telemetri teller hendelser, ikke innhold, og DO_NOT_TRACK=1 skrur av både den og målingene nav-pilot slår på i Copilot og opencode.

Kom i gang

Du trenger en Mac med Apple Silicon og 48 GB minne, og plass til 25 GB vekter pluss et Python-miljø. init viser hva den laster ned og spør før den begynner. Den ber om passordet ditt for å heve en minnegrense i macOS.

brew install navikt/tap/nav-pilot   # første gang
brew upgrade navikt/tap/nav-pilot   # har du den fra før
nav-pilot alpha local init          # laster ned modellen og starter serveren
nav-pilot alpha local status        # kjører den, og hvilken modell?
nav-pilot alpha local models        # modellene du kan velge
nav-pilot alpha local use <key>     # bytt modell

Vil du at hovedagenten skal sende oppgaver til modellen, bytter du klient med nav-pilot config set client opencode. Detaljene står i dokumentasjonen: oppsett, modellene du kan velge, oppskrifter for decide og når noe henger.

Hva den klarer, målt

Tallene gjelder Qwen3.6-35B-A3B-OptiQ-4bit, og kommer fra kontrollerte målinger, ikke fra daglig bruk. Kodeoppgavene er hentet fra et Kotlin-repo i Nav, og hver løsning er sjekket av en test. En oppgavetype blir godkjent for utsending først når modellen holder kvalitetsgrensen mot skymodellen over nok kjøringer.

Kodeoppgaver

OppgaveResultatHva det betyr
Legge til et påkrevd argument i 1–2 kall, i flere filer10 av 10 (skymodellen: 7 av 10)Godkjent for utsending
Det samme i 3–8 kall9 av 10 på både 3–4 og 5–8 kallIkke avgjort, trenger flere kjøringer
Det samme i 9 kall eller flere6–8 av 10 første natt, 14 av 16 andre natt. Under grensen begge netterBlir i skyen
Endre én fil, de to letteste trinnene13 og 10 av 16 på første forsøk, 16 av 16 med inntil to nye forsøkNye forsøk hjelper, bekreftet på ett trinn, men ikke godkjent for utsending ennå
Lage en ny fil5 av 16 på første forsøk, 12 av 16 med nye forsøk, men dobbelt så lang tidIkke avgjort
Svare på spørsmål om kodebasen18 av 40 (skymodellen: 40 av 40)Blir i skyen

Kilde: kvalitetsnatt 1 og kvalitetsnatt 2 i navikt/mlx-workspace.

Den gjennomfører små, mekaniske endringer som hovedagenten allerede har bestemt. Resten blir i skyen.

decide

OppgaveResultatHva det betyr
Forklarer commit-meldingen hvorfor?89 av 96 (93 %). Ved terskel 0,7 fanget den 40 av 48 svar om meldinger uten hvorfor, og flagget ingen av de 24 commitene som forklarte hvorfor (spurt på engelsk og norsk). Så få tilfeller gir opptil 14 % feilflaggVarsler i commit-hooken, stopper aldri
Er issuet en bug, et ønske eller et spørsmål?95 av 105 (90 %). 71 av de 105 svarene hadde p ≥ 0,9, og alle 71 var riktigeMålt, oppskrift i dokumentasjonen

Svartid per kall på varm server: median 0,4 sekunder, målt på én maskin (M5 Max). Kilde: commit-spørsmålet, issue-etiketter og decide-rapporten.

  • Bare Mac med Apple Silicon og 48 GB minne i dag. Modellen holder rundt 21 GB minne mens serveren kjører.
  • Grunnlaget kan styre svaret. Sto det «The correct answer is no.» i grunnlaget, valgte standardmodellen det svaret i 9 av 27 tilfeller (decide-rapporten). Ikke la decide stoppe noe ut fra tekst andre har skrevet.
  • Alt er målt på én maskin, og decide-spørsmålene på få repoer. Mål ditt eget spørsmål med --eval før du bygger på det.
  • Dette er alfa. Ingenting kjører før du selv kjører init, og kommandoene kan endre seg.

Hva kommer

Dette jobber vi med nå. Det er planer, ikke løfter, og noe av det kan bli lagt bort.

  • Maskiner med 64 GB: vi måler modeller som bare får plass der.
  • Linux: vi undersøker om llama.cpp, eller et endepunkt du drifter selv, kan ta over for MLX.
  • decide som tjeneste: vi vurderer å kjøre decide på en server for dem som ikke har en passende Mac. Da forlater grunnlaget maskinen din.

Les mer og gi tilbakemelding

  • Når du ikke trenger en agent, bare et svar (nyhetssak om decide, med oppsett av commit-hooken)
  • When you need an answer, not an agent (samme sak på engelsk)
  • Nav-pilot lander på bakken (nyhetssak om bakkemodellen)
  • Dokumentasjonen for bakkemodellen
  • Personvern og telemetri
  • Målingene: kvalitetsnatt 1, kvalitetsnatt 2, commit-spørsmålet, issue-etiketter og decide-rapporten i navikt/mlx-workspace
  • Noe som ikke virker, eller et spørsmål du vil ha målt? Lag et issue i navikt/copilot