Passa al contenuto principale

Su un modello reale

Lo stesso flow writer → reviewer, eseguito su un modello reale invece dell'harness dry.

Ti serve
  • la cartella afe-first-flow di Il tuo primo flow.
  • una chiave API di OpenRouter nell'ambiente, OPENROUTER_API_KEY.
Alla fine hai
  • lo stesso ticket, eseguito su un modello reale, con i suoi token e il suo costo nel ledger.

Passi​

  1. Prendi una chiave su openrouter.ai ed esportala:

    export OPENROUTER_API_KEY=sk-or-...
  2. Sostituisci config/models.yaml con un modello reale ed economico:

    config/models.yaml
    # yaml-language-server: $schema=../../../../schemas/afe.dev-v1alpha1.json
    apiVersion: afe.dev/v1alpha1
    kind: Model
    metadata:
    name: cheap
    annotations:
    afe.dev/description: A cheap model for drafts and reviews
    spec:
    provider: openrouter
    model: deepseek/deepseek-v4-flash
    apiKeyEnv: OPENROUTER_API_KEY
  3. Esegui il flow senza --dry, così l'harness chiama il modello:

    afe run writer-reviewer -i request.yaml -c config/ --local
  4. Rispondi all'approvazione al prompt: scrivi approve.

  5. Il ticket finisce con T-0001 ticket_done. I token e il costo del modello sono registrati nel ledger del ticket. Leggi Budget e loop per vedere dove.

Risoluzione dei problemi​

Sintomo: l'esecuzione stampa un evento error ed esce con codice 1, con uno stato 401 nel messaggio. Causa: OPENROUTER_API_KEY manca, è scritta male, o non è stata esportata in questa shell. Rimedio: esportala di nuovo e rilancia il comando. afe non legge mai una chiave da un file, solo dall'ambiente.

Sintomo: l'esecuzione impiega molto più tempo dell'harness dry, poi fallisce con uno stato 429. Causa: il modello è limitato per frequenza (rate limit) sul tuo account OpenRouter. Rimedio: aspetta, oppure cambia modello in config/models.yaml. afe ritenta un 429 tre volte con un'attesa crescente prima di arrendersi.

Vedi anche​