Documentazione
mini-SWE-agent
mini non ha una variabile d’ambiente per l’URL di base né un’opzione da selezionare. L’endpoint si configura con quattro righe di YAML, che mini passa direttamente a litellm, più un registro dei prezzi: il budget per esecuzione di mini non può conteggiare i token senza conoscere le relative tariffe.
mini-SWE-agent non ha una variabile d'ambiente per l'URL di base — l'endpoint va in model.model_kwargs.api_base in una configurazione YAML, che mini passa direttamente a litellm.completion.
# mini has no base-URL environment variable and no settings UI. The endpoint
# goes in an agent config file, under model.model_kwargs — which mini's docs
# describe as "directly passed to litellm.completion".
model:
model_name: "openai/claude-sonnet-5"
model_kwargs:
custom_llm_provider: "openai"
api_base: "https://api.kunavo.com/v1" # keep the /v1
litellm_model_registry: "kunavo-registry.json" # see "Cost tracking" below
# The key does not live in this file. With custom_llm_provider: "openai",
# litellm reads OPENAI_API_KEY, and mini documents two ways to set it:
#
# export OPENAI_API_KEY=sk-kn-... # environment, wins over .env
# mini-extra config set OPENAI_API_KEY sk-kn-... # mini's own .env
#
# Then run it: mini -c kunavo.yaml
# Or make it the default: mini-extra config set MSWEA_MINI_CONFIG_PATH kunavo.yaml/v1: mini non lo specifica in una frase, quindi vediamo cosa chiarisce il punto. mini non legge mai questo valore: la sua documentazione dice che model_kwargs viene «passato direttamente a litellm.completion» e mostra la chiamata come litellm.completion(model=model_name, messages=messages, **model_kwargs). La regola è quindi di litellm. L’unico esempio concreto di api_base mai riportato da mini include il suffisso: http://localhost:8000/v1, nell’esempio vLLM, mentre la pagina di litellm sulla compatibilità con OpenAI indica di «assicurarsi che api_base includa il /v1postfix» quando una richiesta restituisce Not Found. Kilo Code e Aider usano la stessa forma; i client in stile Anthropic e goose usano invece l’origine senza suffisso.openai/ nel nome del modello e custom_llm_provider svolgono la stessa funzione; l’esempio di mini usa solo il secondo. Va bene usare l’uno o l’altro, oppure entrambi, ma quello scelto deve corrispondere a litellm_provider nel registro dei prezzi. Il prefisso indica un protocollo di comunicazione, non un fornitore: un ID Claude sotto openai/ è la combinazione prevista, perché l’ID viene risolto all’endpoint e non nella tabella dei provider di litellm.openai/ di litellm negozia la chiamata nativa degli strumenti — l’impostazione predefinita in mini v2 — con /v1/chat/completions di Kunavo, e se tale endpoint agisce sui marcatori cache_control che mini aggiunge automaticamente agli ID con nome Claude. Il comando curl qui sotto è la parte che puoi verificare in dieci secondi; per il resto, basta una breve prima esecuzione.sk-kn-) e aggiungi credito da $10: le chiamate vengono pagate con quel saldo e le chiamate non riuscite non vengono addebitate. La dashboard si apre quindi sulla configurazione mini-SWE-agent.Passo dopo passo
- Crea una chiave su
/app/keyse copiala: viene mostrata una sola volta. - Installa ed esegui il programma una volta affinché i percorsi vengano creati:
pip install mini-swe-agent, quindimini. La prima esecuzione indica dove si trovano.enve la configurazione dell’agente, e proponemini-extra config setup. - Inserisci la chiave dove litellm la cercherà:
export OPENAI_API_KEY=sk-kn-...oppure salvala in modo persistente conmini-extra config set OPENAI_API_KEY sk-kn-.... mini precisa che «le variabili d’ambiente hanno la precedenza sulle variabili impostate nel file.env»: questo è il motivo più comune per cui una chiave appena modificata sembra non essere cambiata. - Salva lo YAML qui sopra come
kunavo.yamlaccanto alle altre configurazioni degli agenti e aggiungi il registro dei prezzi della sezione seguente. Senza di esso, l’esecuzione si interrompe con un errore di calcolo dei costi, non con una risposta errata. - Avvialo con
mini -c kunavo.yamloppure usamini -c kunavo.yaml -m openai/claude-haiku-4-5per sostituire l’ID per una singola esecuzione. mini si apre in modalitàconfirm, in cui approvi ogni comando: una buona impostazione predefinita per la prima esecuzione su un nuovo endpoint. - Assegnagli un’attività che esegua davvero un comando, non un semplice saluto. La modalità predefinita di mini v2 è la chiamata nativa degli strumenti e il prompt distribuito specifica che «ogni risposta deve usare almeno una volta lo strumento 'bash' per eseguire comandi». È quindi un vero scambio con lo strumento a verificare che la configurazione funzioni. Se le chiamate agli strumenti restituiscono contenuti vuoti o malformati, mini include ancora il precedente metodo basato sull’analisi del testo:
mini -c mini_textbased.yamloppuremodel_class: litellm_textbasednel tuo file.
Verificato rispetto a Guida ai modelli locali di mini-SWE-agent il 21 settembre 2026. Le impostazioni di terze parti cambiano; se il nome di un campo qui non corrisponde più a quello visualizzato, fa fede quella pagina, non questa.
Verifica prima di eseguire il debug del client
Una sola richiesta stabilisce se il problema riguarda l'endpoint, la chiave o il file di configurazione. Se restituisce JSON, lo stesso base URL e la stessa chiave funzionano in mini-SWE-agent.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Quale model id inserire nel campo
Ogni modello di testo è raggiungibile come model id: l'elenco aggiornato è GET /v1/models e il catalogo con i prezzi è nella pagina dei modelli. Le tariffe sono in USD per 1M di token, input / output.
| ID del modello | Kunavo ingresso / uscita | Dove si inserisce in mini-SWE-agent |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | l’ID predefinito per una sessione di lavoro: mini reinvia il contesto a ogni passaggio, quindi è qui che si accumula la spesa |
claude-opus-5 | $3.50 / $17.50 | un’esecuzione in cui scegliere il piano sbagliato sarebbe costoso; abbinala a un cost_limit più basso, non più alto |
claude-haiku-4-5 | $0.70 / $3.50 | esecuzioni batch su molte attività e qualsiasi ciclo lasciato in modalità yolo |
gpt-5-6-sol | $2.00 / $12.00 | una seconda famiglia dietro lo stesso api_base: cambia model_name e aggiungi una voce al registro |
Monitoraggio dei costi: qui è necessario
La configurazione distribuita di mini include mini.yaml con cost_limit: 3.: un limite per esecuzione espresso in dollari. Questo limite è applicato dal calcolatore dei costi di litellm, che determina il costo di un’esecuzione cercando l’ID del modello nel proprio registro. Gli ID di Kunavo non sono presenti in quel registro, perciò il primo problema che si presenta alla maggior parte degli utenti non è una risposta errata, ma un errore: la pagina di risoluzione dei problemi di mini lo mostra come Exception: This model isn't mapped yet. model=…, custom_llm_provider=….
Ci sono due modi per risolvere il problema, e non sono equivalenti. L’opzione globale MSWEA_COST_TRACKING="ignore_errors" (o cost_tracking: "ignore_errors" nel file) rimuove la protezione, senza correggere il problema; mini la definisce «ATTENZIONE: può comportare spese non controllate!». L’altro modo consiste nel fornire a litellm le tariffe, come indicato da litellm_model_registry nel blocco di configurazione. Le tariffe riportate sotto sono quelle attuali del catalogo di questo sito, convertite nel formato per token di litellm:
{
"claude-sonnet-5": {
"input_cost_per_token": 0.0000014,
"output_cost_per_token": 0.000007,
"litellm_provider": "openai",
"mode": "chat"
},
"claude-opus-5": {
"input_cost_per_token": 0.0000035,
"output_cost_per_token": 0.0000175,
"litellm_provider": "openai",
"mode": "chat"
},
"claude-haiku-4-5": {
"input_cost_per_token": 0.0000007,
"output_cost_per_token": 0.0000035,
"litellm_provider": "openai",
"mode": "chat"
}
}- I nomi dei modelli vengono confrontati esattamente, distinguendo maiuscole e minuscole. Nell’esempio di mini, la chiave della voce è il nome senza il prefisso del provider: quindi, qui
claude-sonnet-5, anche se la configurazione indicaopenai/claude-sonnet-5. litellm_providerdeve corrispondere al prefisso e acustom_llm_provider. L’avviso di mini è esplicito: «Se usicustom_llm_provideroppure aggiungi un prefisso del provider al nome del modello (ad esempioopenai/…), anche questo deve corrispondere alitellm_providernella configurazione!»- Il percorso può essere specificato anche tramite
LITELLM_MODEL_REGISTRY_PATHinvece che con la chiave di configurazione: è utile per i runner batch, ad esempioLITELLM_MODEL_REGISTRY_PATH=kunavo-registry.json mini-extra swebench … - Queste tariffe servono come riferimento per il budget, non costituiscono una fattura. L’importo effettivo addebitato è quello registrato nel saldo Kunavo. Se il catalogo cambia, copiale di nuovo oppure ricavale da
GET /v1/models.
Domande frequenti
Come si configura mini-SWE-agent per usare un endpoint API personalizzato?
Tramite un file di configurazione, non una variabile d’ambiente: mini non ha alcuna variabile per l’URL di base. In un file di configurazione dell’agente, imposta model.model_name sul tuo ID, eventualmente preceduto da openai/, quindi, in model.model_kwargs, imposta custom_llm_provider: "openai" e assegna a api_base l’URL di base dell’endpoint. La documentazione di mini spiega perché funziona: model_kwargs «viene passato direttamente a litellm.completion». Seleziona il file con `mini -c kunavo.yaml` oppure impostalo come predefinito con MSWEA_MINI_CONFIG_PATH. Per Kunavo, l’URL di base è https://api.kunavo.com/v1.
Dove legge la chiave API mini-SWE-agent?
Dalla variabile di chiave litellm corrispondente al provider selezionato. Con custom_llm_provider: "openai", si tratta di OPENAI_API_KEY, che puoi esportare nella shell o salvare in modo persistente con `mini-extra config set OPENAI_API_KEY <key>`: il comando la scrive nel file .env di mini. mini precisa che le variabili d’ambiente hanno la precedenza sui valori nel file. La chiave non è un campo della configurazione dell’agente. Se segui un tutorial meno recente, tieni presente che la guida alla migrazione alla v2 indica che MSWEA_MODEL_API_KEY «non viene più usata per sovrascrivere le chiavi API».
api_base di mini-SWE-agent deve terminare con /v1?
Sì, per un endpoint compatibile con OpenAI, ad esempio https://api.kunavo.com/v1, anche se mini lo indica con un esempio anziché come regola. mini passa model_kwargs direttamente a litellm.completion, quindi la convenzione è di litellm. L’unico valore api_base riportato concretamente nella documentazione di mini è http://localhost:8000/v1, nell’esempio vLLM. La pagina di litellm sulla compatibilità con OpenAI chiarisce il punto: se una richiesta restituisce Not Found, assicurati che api_base includa il postfix /v1. Se manca /v1, la risposta sarà quindi un 404, non un errore di autenticazione.
Perché mini-SWE-agent restituisce l’errore "This model isn't mapped yet"?
Perché litellm non riesce a calcolare il prezzo dell’ID del modello e il limite cost_limit per esecuzione di mini — 3. dollari in mini.yaml, così come viene distribuito — viene applicato tramite il calcolatore dei costi di litellm. La soluzione consigliata da mini consiste nel configurare un registro dei modelli: un file JSON nel formato prezzi dei modelli di litellm, indicizzato per nome del modello senza il prefisso del provider, con litellm_provider impostato sullo stesso valore di custom_llm_provider o del prefisso nel nome. Nel file di configurazione, imposta litellm_model_registry sul percorso del file; in alternativa, usa LITELLM_MODEL_REGISTRY_PATH nell’ambiente. Anche MSWEA_COST_TRACKING="ignore_errors" elimina l’errore, ma rimuove la protezione sulla spesa senza correggere il problema.
mini-SWE-agent può usare modelli Claude tramite un endpoint compatibile con OpenAI?
Sì. Il prefisso openai/ e il nome custom_llm_provider indicano un protocollo di comunicazione, non un fornitore: litellm invia una chat completion in formato OpenAI all’api_base configurato e passa l’ID del modello, che viene quindi risolto dall’endpoint anziché dalla tabella dei provider di litellm. C’è un comportamento specifico di mini da conoscere: mini aggiunge automaticamente le impostazioni di controllo della cache quando il nome del modello risolto contiene "anthropic", "claude", "sonnet" o "opus", come nel caso di un ID openai/claude-… preceduto dal prefisso.
Kunavo ha testato mini-SWE-agent sul proprio endpoint?
No. Il 21 settembre 2026 è stata verificata la documentazione di mini: da essa sono tratti i nomi delle chiavi, il loro ordine e il formato di api_base. Kunavo non ha eseguito una sessione di mini sul proprio endpoint e non formula dichiarazioni sullo streaming, gli scambi con gli strumenti o la rendicontazione dei costi con questo client. Restano da verificare due aspetti: se il percorso openai/ di litellm negozia la chiamata nativa degli strumenti — predefinita in mini dalla v2.0 — con un endpoint di chat completions, e se tale endpoint agisce sui marcatori cache_control che mini aggiunge agli ID con nome Claude. Il comando curl in questa pagina verifica endpoint e chiave; una breve prima esecuzione in modalità confirm permette di verificare il resto.