Creare sandbox
Come creare e configurare sandbox in CodeCourier, inclusa la scelta dello strumento CLI, l’allocazione delle risorse e i prompt iniziali.
Creare una sandbox in CodeCourier provisiona un ambiente Linux cloud isolato in cui un agente di coding IA può lavorare per te. Questa guida spiega come avviare sandbox dall’interfaccia del dashboard, le opzioni di configurazione disponibili e come le sandbox vengono create in modo programmatico durante i workflow run.
Avviare dal dashboard
Il modo principale per creare una sandbox autonoma è tramite la pagina Sandboxes nel dashboard del tuo progetto. La finestra di dialogo di avvio ti permette di configurare ogni aspetto della sandbox prima che venga creata.
Seleziona uno strumento CLI
Scegli quale CLI di coding IA girerà dentro la sandbox. Ogni strumento ha capacità e requisiti di provider diversi:
- Claude Code - Il CLI ufficiale di Anthropic. Richiede una chiave API Anthropic o un token OAuth. Supporta output JSON in streaming, CLAUDE.md, iniezione di skill, estrazione di learning e controllo del thinking effort. È l’opzione predefinita e più completa.
- OpenCode - CLI open source con supporto ai modelli OpenRouter. Richiede una chiave API OpenRouter. Ideale per usare i modelli Gemini.
- Codex - Il CLI di coding autonomo di OpenAI. Richiede una chiave API OpenAI. Usa i modelli della famiglia GPT-5.4.
- Pi - Agente di coding open source con supporto OpenRouter e compatibilità CLAUDE.md. Richiede una chiave API OpenRouter.
Scegli un modello
Ogni strumento CLI supporta più modelli. Il modello determina la qualità e la velocità dell’output dell’agente. Per Claude Code, le opzioni includono:
claude-opus-4-6- Qualità più alta, ideale per architetture complesse e modifiche multi-file.claude-sonnet-4-6- Equilibrio tra qualità e velocità, buono per la maggior parte dei task di sviluppo.claude-haiku-4-5- Il più veloce ed economico, adatto a modifiche semplici e revisioni.
Il modello predefinito di ogni strumento è definito nel registro degli strumenti ed è preselezionato nell’interfaccia. Puoi sovrascriverlo per singola sandbox.
Configura le risorse
Imposta le risorse di calcolo della sandbox:
- Memoria (MB) - Tra 256 MB e 8.192 MB. Il valore predefinito è 1.024 MB. Codebase grandi con compilazione pesante possono richiedere 2.048 MB o più.
- Numero di CPU - Tra 1 e 8. Il valore predefinito è 2. Più CPU aiutano con l’esecuzione parallela dei test e i build.
- Timeout - Tra 1 minuto e 4 ore. Il valore predefinito è 15 minuti (900.000 ms). La sandbox viene terminata automaticamente quando questo timeout scade.
Imposta un prompt
Fornisci un prompt iniziale che l’agente eseguirà all’avvio della sandbox. È la descrizione del task - ciò che vuoi che l’agente costruisca, corregga o investighi. Il prompt viene inviato al CLI IA come primo messaggio.
Avvia
Clicca il pulsante di avvio per iniziare la creazione della sandbox. CodeCourier:
- Valida le tue chiavi API per lo strumento CLI selezionato.
- Crea un record di sandbox nel database con status
creating. - Chiama l’SDK E2B per provisionare una micro-VM dal template selezionato.
- Esegue la sequenza di setup (Git clone, installazione delle dipendenze, iniezione della config).
- Esegue l’agente IA con il tuo prompt.
- Aggiorna lo status della sandbox a
running.
Chiavi API richieste
Opzioni di configurazione in dettaglio
Selezione del template
Il template ID determina l’immagine E2B di base usata per la sandbox. Ogni strumento CLI ha il proprio template con lo strumento preinstallato. CodeCourier supporta anche template E2B personalizzati - se hai costruito un template personalizzato con strumenti o dipendenze aggiuntive, puoi specificarne l’ID. Quando viene specificato un template personalizzato, CodeCourier usa la funzione buildCustomTag per costruire il tag E2B.
Thinking effort
Per le sandbox Claude Code, puoi configurare il thinking effort per modello. Viene passato tramite il flag --effort al CLI Claude. Le opzioni sono high, medium,low o none. Un thinking effort più alto produce un ragionamento più approfondito ma costa più token.
Template del checker
Le sandbox di workflow supportano un checkerTemplateId separato che permette allo step checker di usare un template E2B diverso da quello dello step designer. Se non impostato, il checker ricade sul template principale.
Override specifici del CLI
La configurazione della sandbox supporta override dello strumento CLI per singolo step:
designerCliId- Sovrascrive lo strumento CLI per gli step designer.optimizerCliId- Sovrascrive lo strumento CLI per gli step optimizer.checkerCliId- Sovrascrive lo strumento CLI per gli step checker.
Questo consente a un workflow di usare Claude Code per il lavoro di progettazione e OpenCode per il controllo, ad esempio.
Sequenza di setup della sandbox
Quando una sandbox viene creata, CodeCourier esegue una sequenza di setup multi-fase prima che l’agente IA inizi a lavorare. Questo setup è gestito dalla funzione setupSandboxForTool ed è composto da:
Setup comune (tutti gli strumenti)
- Git clone - Se è configurato un URL di repo GitHub, il repo viene clonato in
/home/user/project. Una nuova branch di feature viene creata per il lavoro della sandbox. - Credential helper Git - Se è disponibile un token GitHub, viene configurato un credential helper affinché l’agente possa pushare i commit.
- Variabili d’ambiente - Le variabili d’ambiente a livello di progetto vengono iniettate nell’ambiente shell della sandbox.
- System prompt - Il system prompt (dalle impostazioni del progetto o dal valore predefinito) viene scritto in un file che il CLI IA legge.
Setup specifico dello strumento
Ogni strumento CLI ha step di setup aggiuntivi:
- Claude Code - Scrive CLAUDE.md nella directory del progetto, inietta skill e comandi in
.claude/skills/e.claude/commands/, scrive i learning compilati e imposta la chiave API Anthropic. - OpenCode - Scrive il system prompt come file di config nel formato atteso da OpenCode e imposta la chiave API OpenRouter.
- Codex - Configura la chiave API OpenAI e installa il CLI Codex se non presente nel template.
- Pi - Imposta la chiave API OpenRouter e scrive CLAUDE.md (Pi supporta il formato CLAUDE.md).
Creazione programmatica
Le sandbox vengono create in modo programmatico anche in diversi contesti:
Workflow run
Quando un workflow run viene eseguito, l’orchestratore Trigger.dev crea sandbox per ogni step. La configurazione della sandbox proviene daldefaultConfig del workflow, potenzialmente sovrascritto dalle impostazioni di persona per singolo step. Ogni step ottiene la propria sandbox con lo strumento CLI, il modello e le istruzioni appropriate.
Work chain
Le work chain eseguono una sequenza di issue, ciascuna come un workflow run separato. Ogni run crea le proprie sandbox, riutilizzando la stessa branch per accumulare le modifiche tra le issue.
Sessioni di issue
Le sessioni di issue creano una singola sandbox che esegue un agente IA di scansione. La sandbox di sessione esplora il repository, identifica problemi e miglioramenti e produce una lista strutturata di issue. La sandbox è collegata al record di sessione di issue tramite il camposessionId.
Sessioni di issue
Le sessioni di analisi di issue creano una sandbox che scansiona il repository alla ricerca di potenziali miglioramenti. La sandbox è collegata alla sessione di issue tramite il campo issueSessionId.
// Internal flow: how CodeCourier creates a sandbox
const sandboxId = await ctx.runMutation(internal.sandboxes.create, {
userId: user._id,
projectId: project._id,
sandboxId: e2bSandboxId, // from E2B SDK
status: "running",
config: {
templateId: "claude",
timeoutMs: 900_000,
memoryMb: 1024,
cpuCount: 2,
},
createdAt: Date.now(),
});Ottimizzazione delle risorse