synops/docs/features/responskvalitet.md
vegard 652d2b8917 Presiser at ↑-bump erstatter svaret in-place, ikke forlenger samtalen
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 12:24:02 +00:00

163 lines
4.1 KiB
Markdown

# Feature: Responskvalitet (intelligens og innsats)
## Konsept
Hvert bot-svar har to synlige dimensjoner: **intelligens** (hvilken
modell) og **innsats** (hvor grundig). Brukeren ser en diskret
indikator og har én knapp for å be om bedre svar.
## Nivåer
### Intelligens (modellvalg)
| Nivå | Indikator | Modell | Bruk |
|------|-----------|--------|------|
| 1 | `🧠●○○` | Haiku | Klassifisering, triage, enkle oppslag |
| 2 | `🧠●●○` | Sonnet | Chat-svar, oppsummering, daglig bruk |
| 3 | `🧠●●●` | Opus | Arkitektur, analyse, koderevisjoner |
### Innsats (resonnering)
| Nivå | Indikator | Effort | Bruk |
|------|-----------|--------|------|
| 1 | `💪●○○` | low | Kort svar, ja/nei, lookup |
| 2 | `💪●●○` | medium | Normal respons, noe resonnering |
| 3 | `💪●●●` | high | Grundig analyse, lang gjennomgang |
## Brukeropplevelse
### Indikator
Diskret visning i bot-svarens header:
```
┌──────────────────────────────────────┐
│ @bot 🧠●●○ 💪●○○ [↑] │
│ │
│ Click-through rate — andel som │
│ klikker på en lenke. │
└──────────────────────────────────────┘
```
### ↑-knappen
Én knapp. Trykk = bedre svar. Ingen meny, ingen konfigurasjon.
```
Første svar: 🧠●○○ 💪●○○ [↑]
Trykk ↑: 🧠●●○ 💪●●○ [↑] (nytt svar erstatter)
Trykk ↑ igjen: 🧠●●● 💪●●● [↑ dimmet] (maks)
```
Knappen bumper begge dimensjoner ett nivå. Ved maks er den
dimmet/deaktivert.
### Ingen ↓-knapp
Ingen ber om dårligere svar. Systemet starter lavt,
brukeren eskalerer ved behov. Kostnad øker bare når noen
faktisk vil ha mer.
## Automatisk nivåvalg
Portvokteren velger startnivå basert på heuristikker:
| Signal | Intelligens | Innsats |
|--------|-------------|---------|
| Kort spørsmål (< 20 ord) | 1 | 1 |
| Normalt spørsmål | 2 | 2 |
| Refererer til arkitektur/kode | 2 | 3 |
| Eksplisitt "grundig"/"detaljert" | 3 | 3 |
| Work item med tag "bug" | 2 | 2 |
| Work item med tag "feature" | 2 | 3 |
Brukeren kan alltid overstyre med -knappen.
## Metadata på svar-noden
```jsonc
{
"bot_response": true,
"intelligence": 2,
"effort": 2,
"model": "claude-sonnet-4-6",
"tokens_in": 1240,
"tokens_out": 580,
"retry_of": null
}
```
Ved -bump:
```jsonc
{
"bot_response": true,
"intelligence": 3,
"effort": 3,
"model": "claude-opus-4-6",
"tokens_in": 2100,
"tokens_out": 1450,
"retry_of": "uuid-av-forrige-svar"
}
```
## Edge-modell
```
nytt svar ──retry_of──→ forrige svar (erstattet)
```
Det nye svaret tar plassen til det gamle i samtalen det
dukker **ikke** opp som en ny melding under. Samtalen forlenges
ikke. Forrige svar får `metadata.replaced: true` og er skjult
som default, men tilgjengelig via en diskret "vis forrige
versjon"-lenke. Som en revisjon, ikke en ny melding.
Visuelt:
```
Før ↑:
Bruker: "Forklar publiseringsflyten"
Bot: "Kort svar..." [↑]
Etter ↑:
Bruker: "Forklar publiseringsflyten"
Bot: "Grundig svar..." [↑ dimmet]
(vis forrige versjon)
```
Ingen ekstra meldinger. Samtalen holder seg ryddig.
## CLI-integrasjon
Portvokteren sender modellvalg til `synops-respond`:
```bash
synops-respond \
--communication-id <uuid> \
--message-id <uuid> \
--model claude-opus-4-6 \
--effort high
```
`synops-respond` mapper `--model` til Claude CLI sitt
`--model`-flagg og `--effort` til prompt-strategi
(kort/normal/grundig systemprompt).
## cli_tool-noder og default-nivå
Hvert CLI-verktøy har default intelligens/innsats i sin
`cli_tool`-node metadata:
```jsonc
{
"binary": "synops-respond",
"default_intelligence": 2,
"default_effort": 2
}
```
Oppdaterbar i PG uten rekompilering.
## Bygger på
- `docs/infra/robusthet.md` LLM fallback-kjede
- `docs/concepts/arbeidstavlen.md` @bot-konvensjonen
- `docs/retninger/unix_filosofi.md` generisk dispatch, cli_tool-noder