Template di sandbox
Comprendi i template di sandbox E2B in CodeCourier - template di strumenti integrati, template personalizzati e gestione dei template.
I template di sandbox definiscono l’ambiente di base per gli agenti di coding IA. Ogni template è un’immagine E2B precostruita che contiene uno strumento CLI specifico, le sue dipendenze e un set standard di strumenti di sviluppo. Quando CodeCourier crea una sandbox, seleziona un template in base allo strumento CLI configurato e lo usa per provisionare la macchina virtuale.
Cos’è un template?
Un template E2B è uno snapshot di un ambiente Linux che funge da punto di partenza per ogni sandbox. I template sono identificati da un ID stringa (ad esempio, claude, opencode) e sono memorizzati nell’infrastruttura di E2B. Quando una sandbox viene creata, E2B provisiona una nuova micro-VM dall’immagine del template, dando alla sandbox un file system completo, i pacchetti installati e gli strumenti configurati dal template.
I template risolvono un problema di performance critico: invece di installare strumenti CLI e dipendenze da zero a ogni avvio di sandbox, il template fornisce tutto preinstallato. Questo riduce il tempo di avvio della sandbox da minuti a secondi.
Template integrati
CodeCourier include template per ogni strumento CLI supportato. Il registro degli strumenti in convex/config/tools.config.ts definisce la configurazione del template per ogni strumento.
Template Claude Code
- Template ID:
claude - Custom Tag:
claude-custom - Timeout predefinito: 15 minuti (900.000 ms)
- Memoria predefinita: 1.024 MB
- CPU predefinite: 2
- Provider: Anthropic
- Preinstallato: Claude Code CLI (
@anthropic-ai/claude-code), Node.js, Python, Git
Il template Claude Code è il più completo. Supporta output JSON in streaming, file di progetto CLAUDE.md, iniezione di skill, iniezione di comandi, compilazione di learning e controllo del thinking effort. È il template predefinito per la maggior parte delle operazioni.
Template OpenCode
- Template ID:
opencode - Provider: OpenRouter
- Preinstallato: OpenCode CLI, Node.js, Git
Il template OpenCode supporta i modelli basati su OpenRouter, inclusi i modelli Gemini. Usa un approccio al system prompt basato su file di config anziché CLAUDE.md.
Template Codex
- Template ID:
codex - Provider: OpenAI
- Preinstallato: Codex CLI, Node.js, Git
Il template Codex esegue l’agente di coding autonomo di OpenAI. Usa i modelli della famiglia GPT-5.4 e fornisce output in formato testo.
Template Pi
- Template ID:
pi - Provider: OpenRouter
- Preinstallato: Pi CLI, Node.js, Git
Il template Pi fornisce un agente di coding open source con compatibilità CLAUDE.md. Legge i file CLAUDE.md nello stesso modo di Claude Code, rendendo facile passare da uno strumento all’altro.
Capacità dei template
Non tutti i template supportano le stesse funzionalità. Il registro degli strumenti definisce un oggetto di capacità per ogni strumento che CodeCourier usa per determinare quali funzionalità sono disponibili:
{
supportsStreaming: true, // Real-time output streaming
supportsChecker: true, // Can act as checker in workflows
supportsIssueSessions: true, // Can run issue sessions
supportsInteractiveMode: true,// Supports follow-up messages
supportsCustomSystemPrompt: true,
supportsCustomClaudeMd: true, // CLAUDE.md file support
supportsSkillInjection: true, // .claude/skills/ injection
supportsLearnings: true, // Learning extraction
outputFormat: 'stream-json', // Output format type
}Queste capacità influenzano l’interfaccia - ad esempio, se uno strumento non supporta l’iniezione di skill, il selettore di skill viene nascosto quando quello strumento è scelto. Se uno strumento non supporta lo streaming, la vista del terminale ricade in modalità polling.
Template personalizzati
Per casi d’uso avanzati, puoi costruire e usare template E2B personalizzati. I template personalizzati ti permettono di preinstallare strumenti aggiuntivi, configurare pacchetti di sistema specifici o impostare ambienti di sviluppo personalizzati.
Costruire un template personalizzato
E2B fornisce un template builder che prende una specifica in stile Dockerfile e produce un template. Il processo generale:
- Definisci il tuo ambiente di base in un file di configurazione del template E2B.
- Includi tutti gli strumenti e i pacchetti di cui i tuoi agenti hanno bisogno.
- Costruisci il template usando il CLI o l’API E2B.
- Annota il template ID restituito da E2B.
Usare un template personalizzato
Per usare un template personalizzato in CodeCourier, specificalo cometemplateId nella configurazione della sandbox. CodeCourier costruisce il custom tag usando la funzione buildCustomTag del registro degli strumenti, che combina l’ID dello strumento con un suffisso personalizzato.
Caching dei template
Tracciamento dei build di template
CodeCourier traccia i build di template nella tabella templateBuilds. Ogni record di build contiene:
- Tool ID - Per quale strumento CLI è destinato il template.
- Nome del template - Il nome del template E2B.
- Versione del CLI - La versione dello strumento CLI installata nel template.
- Status -
building,successofailed. - Attivato da - Chi ha avviato il build.
- Timestamp - Orari di inizio e completamento.
Questo tracciamento ti consente di monitorare l’avanzamento dei build di template e di debuggare i fallimenti. I build di template sono indicizzati per tool ID e status per un querying efficiente.
Gestione delle versioni
Gli strumenti CLI vengono aggiornati regolarmente. Quando viene rilasciata una nuova versione di Claude Code, OpenCode o Codex, il template corrispondente deve essere ricostruito per includere il CLI aggiornato. I comandi di installazione di CodeCourier usano il tag @latest per ottenere sempre la versione più recente:
# Claude Code
npm install -g @anthropic-ai/claude-code@latest
# OpenCode
npm install -g @anthropic-ai/opencode@latest
# Codex
npm install -g @openai/codex@latestDopo la ricostruzione di un template, i record di sandbox memorizzano la versione del CLI rilevata durante il setup. Questo ti permette di tracciare quale versione dello strumento è stata usata per una data sessione di sandbox.