Provider di modelli
Obiettivo: aggiungere un provider di modelli e puntarci gli agenti con un manifest Model.
Prerequisiti
- Un endpoint che parla l'API chat-completions di OpenAI, oppure un account OpenRouter.
- La chiave API, se l'endpoint ne richiede una, in una variabile d'ambiente.
Passi
-
Scegli un provider:
openrouter, oppureopenai-compatibleper qualunque endpoint che parla l'API chat-completions di OpenAI (Ollama, vLLM, OpenAI). -
Dichiara un manifest
Model. È un alias, e il suoproviderindica una porta di un plugin:apiVersion: afe.dev/v1alpha1kind: Modelmetadata:name: localespec:provider: openai-compatiblemodel: qwen2.5-coder:7bbaseUrl: http://127.0.0.1:11434/v1pricing: none -
Nomina con
apiKeyEnvla variabile d'ambiente che contiene la chiave API. Il valore della chiave non attraversa mai la porta. -
Esegui il flow.
afe runchiede le chiavi dei soli provider che un flow usa davvero, prima che il run parta.
Note
Oggi arrivano due provider:
| Provider | Cos'è |
|---|---|
openrouter | Un endpoint cloud che riporta il costo di ogni chiamata. |
openai-compatible | Qualunque endpoint che parla l'API chat-completions di OpenAI (Ollama, vLLM, OpenAI). Con pricing: none un modello locale costa zero. |
Risoluzione dei problemi
invalid configuration: model 'locale': set OPENROUTER_API_KEY
Il flow usa un modello la cui variabile apiKeyEnv non è impostata nell'ambiente che vede
afe run o afe worker. Esporta la variabile prima che il run parta. afe serve non ha bisogno
del valore della chiave: non esegue alcun harness e risolve solo il provider. Nemmeno un run
--dry ne ha bisogno.
model 'locale': <errore del plugin>
Il campo provider nomina una porta che nessun plugin installato fornisce. Controlla il valore
rispetto ai provider che la tua configurazione installa davvero (openrouter,
openai-compatible, o un plugin che hai aggiunto).
Il ledger mostra costo 0 per un modello che ti aspetti di pagare
Il provider non ha riportato un costo, e il manifest Model non ha pricing. Aggiungi un
pricing numerico (prezzo per token in ingresso e in uscita) al manifest, così il ledger può
calcolare il costo dai token usati.