Towards Data Science propone un walkthrough pratico per costruire un coding agent capace di scrivere ed eseguire codice, usando l’OpenAI Agents SDK e Docker. Il punto di partenza è che il code execution è una delle capacità più utili da dare a un LLM agent: una volta che l’agente può scrivere e far girare codice, può ispezionare file e dataset, scrivere logica di elaborazione dati e produrre artifact per i passi successivi.
I tre componenti
L’autore, Shuai Guo, scompone un code-executing agent in tre parti: il model, che decide quale analisi serve e scrive il codice; il workspace, dove entrano i file di input ed escono gli artifact; e l’execution environment, dove il codice generato viene effettivamente eseguito. Quest’ultimo può essere gestito dalla piattaforma oppure un sandbox locale controllato da noi: in quel caso Docker è la via naturale per impacchettare il runtime e isolare l’esecuzione.
Nell’Agents SDK il pattern è implementato dal SandboxAgent. Si descrive il workspace con un Manifest (quali file locali montare nel workspace), si definisce l’agente con model, istruzioni e manifest, si crea il sandbox Docker via DockerSandboxClient e infine si collegano agente e sessione a runtime con Runner.run. Al termine, il workspace può essere persistito come archivio tar per estrarre gli output.
Il case study: anomaly detection su dati energetici
Il tutorial applica il pattern a un dataset sintetico di consumo energetico orario di un edificio (colonne timestamp, energy_kwh, outdoor_temp_c). All’agente viene chiesto di individuare eventi di consumo anomali e di salvare tre file: un CSV con le anomalie, un grafico PNG e un report markdown. Il runtime Docker è un’immagine python:3.12-slim con numpy, scipy, pandas e matplotlib, con la variabile MPLBACKEND=Agg per salvare figure senza display.
Nel run descritto, l’agente ha caricato il CSV con pandas, costruito una baseline oraria attesa, calcolato i residui e degli z-score robusti, generato il grafico e prodotto il report — validando persino i propri output. Ha individuato un evento chiaramente anomalo.
La parte più riutilizzabile è la checklist finale: essere espliciti su ruolo, task e output attesi nelle istruzioni; decidere quali file entrano nel workspace; definire runtime e librerie; e indicare nomi e percorsi precisi dei file di output, per rendere banale l’estrazione finale.
In sintesi
- Un code-executing agent si compone di tre parti: model, workspace ed execution environment (Docker per il sandbox locale).
- Nell’OpenAI Agents SDK il SandboxAgent con Manifest gestisce lo staging dei file e la persistenza degli artifact.
- Istruzioni esplicite e nomi di output ben definiti rendono il pattern riutilizzabile per molti workflow agentici.
Fonte: Build an LLM Agent That Can Write and Run Code — https://towardsdatascience.com/build-an-llm-agent-that-can-write-and-run-code/
Hai qualcosa da aggiungere? Unisciti alla discussione.