Template di sandbox

Comprendi i template di sandbox E2B in CodeCourier - template di strumenti integrati, template personalizzati e gestione dei template.

5 min letto
sandboxestemplatese2b

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:

Flag di capacità dello strumento
{
  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:

  1. Definisci il tuo ambiente di base in un file di configurazione del template E2B.
  2. Includi tutti gli strumenti e i pacchetti di cui i tuoi agenti hanno bisogno.
  3. Costruisci il template usando il CLI o l’API E2B.
  4. 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

E2B mette in cache i template a livello di infrastruttura. Una volta costruito un template, i successivi avvii di sandbox da quel template sono veloci perché l’immagine è già disponibile. Ricostruisci solo quando il tuo ambiente di base deve cambiare.

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, success o failed.
  • 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:

Comandi di installazione del CLI nel template
# Claude Code
npm install -g @anthropic-ai/claude-code@latest

# OpenCode
npm install -g @anthropic-ai/opencode@latest

# Codex
npm install -g @openai/codex@latest

Dopo 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.