Guider
Lokal modell
Oppskrifter for deg som har satt opp en lokal modell. Er du ikke der ennå, start med oppsettet.
brew update brew upgrade navikt/tap/nav-pilot navikt/tap/cplt copilot update # Copilot CLI opencode upgrade # hvis du bruker opencode
Oppsettet står i Kom i gang med lokal modell på Mac og Kom i gang med egen LLM-server. Den lokale modellen er alfa og av som standard.
Styr delegeringen
Delegering krever opencode som klient. Der blir den lokale modellen en subagent som heter local-worker, og hovedagenten i skyen delegerer avgrensede oppgaver dit. nav-pilot legger inn local-worker selv hvis agentpakka ikke har den. Har pakka eller repoet en egen, bruker nav-pilot den. Copilot CLI har ingen slik subagent, så der kjører hele økten enten lokalt eller i skyen.
nav-pilot config get client # hvilken klient du kjører nav-pilot config set client opencode nav-pilot config set local_dispatch <nivå> # eller --local-dispatch <nivå> for én økt
Nivåene er off, conservative, balanced og aggressive (standard). Hva hvert nivå gjør, og hvorfor aggressive er standard, står i Hvorfor delegeringen er begrenset. Har du satt local_dispatch selv, beholder du verdien din. Vil du slå av alt lokalt, bruk nav-pilot alpha local off.
Når local-worker er ferdig, ber nav-pilot hovedagenten bygge prosjektet og kjøre testene før den godtar endringen. Har den lokale modellen skrevet en test, skal hovedagenten vise at testen kan feile. Feiler bygget eller testene for en ny fil, sendes feilen tilbake til local-worker én gang. Feiler det igjen, retter hovedagenten den selv.
Bytte modell i skyen
nav-pilot models viser modellene klienten kan bruke, med den du har valgt merket *. Hva du faktisk får bruke, avhenger også av Copilot-abonnementet ditt.
nav-pilot models # alle, for klienten din nav-pilot models claude opus # bare de med disse ordene i navnet nav-pilot models --client opencode # for en annen klient nav-pilot config set model <id> # velg modell
Bytte lokal modell
nav-pilot alpha local models viser de lokale modellene: størrelse, kontekst, hva de er anbefalt til, om de er lastet ned eller kjører, og hvilken serveren laster (merket *). use skriver valget til local_model, men laster ikke ned og starter ikke noe.
nav-pilot alpha local models nav-pilot alpha local use qwen3.8-27b-optiq-4bit nav-pilot alpha local init # laster ned vektene hvis de mangler, og starter nav-pilot alpha local restart # hvis serveren allerede kjører en annen modell
Vektene til den nye modellen lastes ned én gang. Størrelsene står i tabellen over lokale modeller. Lista oppdateres når du kjører init eller start. Første oppstart laster modellen inn i minnet, vanligvis på under ett minutt.
status viser hvilken modell som er valgt, og om den er valgt med local_model eller er standard. Kjører serveren en annen modell, gir status deg kommandoen for omstart. Krever modellen en nyere nav-pilot, sier status at den har falt tilbake til standard. Er modellen du har valgt, erstattet i manifestet, bruker nav-pilot den gamle til erstatningen er lastet ned.
purge fjerner Python-miljøet, den valgte modellen og modeller manifestet har erstattet. purge --all fjerner alle. Ingenting slettes før du legger til --yes.
Større modell for Macer med 64 GB
Har Macen 64 GB minne eller mer, kan du velge qwen3.6-35b-a3b-8bit. Det er standardmodellen i 8 bit i stedet for 4 bit, og vektene tar 38 GB. Den blir aldri standard, så du må velge den selv:
nav-pilot alpha local models # på mindre maskiner står det «needs 64 GB RAM» nav-pilot alpha local use qwen3.6-35b-a3b-8bit nav-pilot alpha local init # laster ned vektene og starter
Modellen krever en minnegrense på 48 GB i macOS. init og start spør før de hever den. Den har 64k kontekst og 16k svar.
Hovedagenten delegerer ingenting til denne modellen ennå, uansett delegeringsnivå. Du kan bruke den til alpha decide, eller prøve den i en økt selv. I målingene svarte den like godt som standardmodellen med decide. Prompter over 49 000 tokens kan sprenge minnegrensen. Se Målinger.
Start serveren automatisk
nav-pilot config set local_autostart true
Da starter en vanlig nav-pilot serveren når den trengs, og venter til den er klar. To oppstarter samtidig gir ikke to servere. Den er av som standard fordi serveren bruker rundt 21 GB minne. En automatisk start ber aldri om passord. Er minnegrensen i macOS for lav, skriver den kommandoen du må kjøre i stedet.
Oppskrifter for alpha decide
nav-pilot alpha decide stiller den lokale modellen ett flervalgsspørsmål og svarer med en sannsynlighet for hvert alternativ. Når serveren er varm, tar et svar under ett sekund, og spørsmålet forlater ikke maskinen. Bruk den til vurderinger en regel ikke klarer: om en commit-melding følger Conventional Commits, avgjør et regulært uttrykk, men om den forklarer hvorfor, må en modell vurdere. Med --threshold og --expect blir svaret kode 0 eller 1. Serveren må kjøre, for decide starter den ikke selv.
nav-pilot alpha decide \
"Does the commit message explain why?" \
--options yes,no --evidence msg.txt
# {"choice":"yes","p":{"yes":0.93,"no":0.07},…}Commit-hooken og etikettforslaget er målt. PR-sjekken er målt og svak, og loggsorteringen er ikke målt ennå. Alle advarer eller foreslår, ingen stopper noe. Tre råd når du skriver egne spørsmål:
- Still spørsmålet positivt: «Forklarer meldingen hvorfor?», ikke «Mangler meldingen en forklaring?».
- Sett
yesførst i alternativene. - Kjør
--evalpå nøyaktig den ordlyden du skal bruke.
Modellen er mer treffsikker på «ja» enn på «nei», og ordlyden betyr mye. Tallene står i Målinger.
En commit-msg-hook som advarer når meldingen bare sier hva diffen viser. Skriptet og hvordan du kobler det til git, pre-commit eller Lefthook, står i Din første decide-hook.
Lag en JSONL-fil med eksempler fra repoet ditt der du vet svaret, ett per linje, og omtrent like mange av hvert svar. --eval viser treffsikkerhet, en forvekslingsmatrise, snittet av sannsynligheten for riktige og gale svar, og svartid. Er modellen like sikker når den tar feil som når den har rett, hjelper ingen terskel, og spørsmålet bør ikke inn i en hook.
Et eksempel på fila står i Din første decide-hook.
nav-pilot alpha decide --eval cases.jsonl
PR-beskrivelser, issues og logger er skrevet av andre, og kan inneholde instrukser til modellen (prompt injection). La sjekker på slik tekst bare advare eller foreslå.
Modellen valgte riktig etikett på 90 % av issuene, og hadde alltid rett når den var minst 90 % sikker. Behold filteret: under 0,9 gir kommandoen ingen etikett, og da setter du den selv.
gh issue view N --json title,body -q '"Title: " + .title + "\n\n" + (.body // "")' \
| nav-pilot alpha decide \
"Is this GitHub issue a bug report (something does not work as intended), a feature request (new or changed functionality), or a question (something to clarify, investigate or decide)?" \
--options bug,feature,question --evidence - --json \
| jq -r 'select(.p[.choice] >= 0.9) | .choice'Den finner sjelden beskrivelser der grunnen mangler. Et «no» er verdt å se på. Et «yes» betyr lite.
gh pr view N --json title,body \
-q '"Pull request title: " + .title + "\n-----\n"
+ (if (.body // "") == "" then "(empty)" else .body end) + "\n-----"' \
| nav-pilot alpha decide \
"Does this pull request description explain why the change is needed?" \
--options yes,no --evidence -tail -c 30000 holder grunnlaget under grensen på 32 KiB.
kubectl logs deploy/min-app --since=1h | tail -c 30000 \
| nav-pilot alpha decide \
"Do these logs show the app failing to reach a dependency?" \
--options yes,no --evidence -