La gestione dei carichi di lavoro di IA su Fastly Compute non solo è possibile ma è anche molto efficace, poiché sfrutta intrinsecamente la bassa latenza dell'edge e il rigoroso isolamento del nostro ambiente. In questo post, analizzeremo diversi schemi per aggiungere funzionalità agentiche ai servizi Fastly Compute utilizzando le API LLM e spiegheremo come la nostra piattaforma Compute, che esegue codice nei sandbox WebAssembly, garantisce il funzionamento del tuo agente a velocità ottimale e con sicurezza di livello enterprise.
Progettazione di cicli di feedback per un agente di IA

Questa gif animata registra il recente lancio di un Assistente IA in esecuzione sul Pannello di controllo Fastly. Quando invii un prompt a una chat basata su IA come questa, probabilmente sei abituato ad aspettare mentre l'Agente IA "pensa". Invece di utilizzare il tempo di calcolo in fase di test (TTC) del modello stesso, in cui il modello "pensa" più a fondo prima di fornire una risposta, puoi implementare questo tipo di processo di ragionamento costruendo un agente che utilizza i risultati delle chiamate API di un LLM come feedback per raggiungere un obiettivo. Questo metodo è spesso chiamato Ciclo dell'agente. Questo processo ripete continuamente una sequenza di passaggi, come il ragionamento, la pianificazione, l'uso degli strumenti e l'osservazione dei risultati, fino a quando l'obiettivo non viene raggiunto correttamente.
Il flusso di esecuzione di questo ciclo di feedback è illustrato qui di seguito. Sebbene spesso accada che un singolo scambio in cui un LLM genera immediatamente una risposta a un prompt non possa fornire la risposta desiderata, questo meccanismo consente all'agente di continuare autonomamente il ciclo di esecuzione e valutazione ripetuta dei passaggi (1) fino a (3), migliorando così l'accuratezza e conseguendo il risultato finale.

Questo ciclo può essere distribuito in vari ambienti, dall'infrastruttura locale ai server remoti. Vediamo il flusso di elaborazione in un ambiente remoto utilizzando Fastly Compute tramite un'implementazione minimale. Ad esempio, l'SDK JavaScript di Fastly Compute consente questa implementazione come mostrato di seguito. Ricorda che questo codice può essere convalidato inizializzando uno Starter Kit TypeScript con $npx fastly compute init, sostituendo src/index.ts con il codice seguente;
addEventListener("fetch", (event) => event.respondWith(handleRequest(event)));
async function handleRequest(event: FetchEvent) {
let payload = {
model: 'gpt-5.2',
messages: [{role: "user", content: "what's the weather today?"}],
tools: [{ "type": "function", "function": {
"name": "get_weather",
"description": "retrieve weather forecast",
"parameters": {}}}]}
while(true){ // Agent loop begins
let res = await (await fetch("https://<LLM_API_ENDPOINT>/chat/completion", {
method: "POST",
headers: new Headers({
"Content-Type": "application/json",
"Authorization" : "Bearer <YOUR_ACCESS_TOKEN>",
}),
body: JSON.stringify(payload)
})).json();
if (res.choices[0].finish_reason != "tool_calls") {
return new Response(JSON.parse(res.choices[0].message.content))
}
if (res.choices[0].message.tool_calls != undefined) {
for (const toolCall of res.choices[0].message.tool_calls ) {
if (toolCall.type === "function") {
payload.messages.push({
role: "user",
content: "{\"weather\":\"windy and rainy\"}" // pseudo result
});
}
}
}
}
}
L'esecuzione di questo codice segue questo flusso di alto livello:
Invia il prompt "che tempo fa oggi?" all'API dell'LLM.
L'API dell'LLM restituisce un'istruzione per eseguire lo strumento
get_weather.Aggiungi un valore fittizio
"vento e pioggia"come risultato provvisorio al prompt e richiama l'API dell'LLM (Ciclo dell'agente).Ricevi un segnale di completamento dall'API dell'LLM (cioè stop viene restituito
come finish_reason) e visualizza il risultato finale.
L'esecuzione di questo programma nel mio ambiente di laboratorio utilizzando il modello gpt-5.2 ha prodotto il seguente risultato per il passaggio 4:
"Oggi c'è vento e piove. Se stai per uscire, prendi una giacca impermeabile e un ombrello e fai attenzione alle strade scivolose e alle forti raffiche di vento. Vuoi previsioni orarie oppure ti servono consigli per muoverti coi mezzi pubblici o pianificare eventuali attività all'aperto?"
Il risultato derivato da questo ciclo iterativo dell'agente esemplifica il ciclo di feedback discusso in precedenza, una tecnica di elaborazione spesso utilizzata dietro l'indicatore "Sto pensando..." nelle moderne interfacce di chat.
Il ciclo degli agenti in continua evoluzione
I cicli dell'agente sono al centro dell'attenzione da tempo, ma quest'anno hanno guadagnato ulteriore popolarità grazie all'introduzione di interfacce verso strumenti esterni, come MCP (ad esempio, il server MCP di Fastly), e al supporto per le chiamate agli strumenti. Questa evoluzione è semplificata nel diagramma qui di seguito.

Un esempio concreto di gestione del codice Compute che include chiamate a strumenti remoti è fornito qui. In questo esempio utilizziamo l'API Risposte di OpenAI, annunciata a maggio, come riferimento per un'API che consente chiamate remote agli strumenti; tuttavia, operazioni analoghe sono possibili anche con l'API Messaggi di Anthropic e con altre soluzioni simili. Puoi eseguire questo codice seguendo i passaggi qui di seguito. In circa 60 righe di codice JavaScript, riassumiamo le migliori pratiche per migrare i servizi Fastly VCL a Compute basandoci sui risultati di ricerca dei documenti, generando infine un file PowerPoint modificabile (non pdf).
$ mkdir compute-agent-demo && cd compute-agent-demo
$ npx fastly compute init -l javascript -i
$ npm install pptxgenjs openai hono @fastly/hono-fastly-compute abortcontroller-polyfill
$ curl -s "https://gist.githubusercontent.com/remore/25a1638a3a2183daa609044cfa1ce6f9/raw/818322d634d59c10950878932517c4173b746dd3/index.js" > src/index.js
$ vi src/index.js # Put your API Token and rmeote MCP server address
$ fastly compute serve Un esempio dell'output effettivo del file PowerPoint è il seguente. Sfruttando la capacità dell'LLM di riassumere informazioni e generare codice, ora siamo in grado di generare un file binario PowerPoint modificabile (.pptx) con contenuti persuasivi che soddisfano l'obiettivo.

Una differenza importante tra questo esempio di codice e quello precedente è che nel programma non è presente alcuna istruzione while() . Poiché stavolta il ciclo IA dell'agente viene eseguito sul lato API dell'LLM, il codice Compute (che funge da Agente) non implementa un ciclo while(). Ciò migliora la leggibilità del programma e dimostra come i recenti progressi abbiano favorito un ambiente in cui i flussi di lavoro IA sono notevolmente più facili da implementare.
const bestPractices = await callLLM(
'What are the best practices to migrate a fastly vcl service to compute? Outline ten practices and give each a summary of at least 300 characters.',
[{
"type": "mcp",
"server_label": "fastly-doc-search",
"server_url": "https://xxxxxxx.edgecompute.app/mcp",
"require_approval": "never",
}]
)
A titolo informativo, abbiamo implementato questa demo integrandola con un server MCP remoto, in esecuzione su Compute sotto il dominio edgecompute.app, invocando la funzione callLLM(), come mostrato nel codice sopra. Sebbene qualsiasi server MCP remoto sia compatibile, ho usato un server MCP implementato su Fastly Compute per sfruttare la piattaforma edge-serverless, che viene sempre attivata dal data center più vicino all'API dell'LLM. Ciò riduce al minimo la latenza per le chiamate degli strumenti, contribuendo all'ottimizzazione del Time to First Token (TTFT). Le funzionalità di Fastly Compute, tra cui l'esecuzione edge a bassa latenza e il supporto alle risposte in streaming, forniscono un supporto potente per lo sviluppo di agenti IA. Per maggiori dettagli sull'implementazione di un server MCP utilizzando Compute, consulta il mio blog precedente.
Come la piattaforma di Fastly e il sandboxing Wasm proteggono il tuo carico di lavoro IA
Infine, parliamo di sicurezza, un aspetto fondamentale per un'IA affidabile. Stabilire quali permessi concedere agli agenti di IA e come gestirli è stata una delle principali preoccupazioni degli sviluppatori. Sebbene le discussioni si concentrino spesso sulla progettazione di modelli permissivi per accelerare lo sviluppo con agenti di codifica come Claude Code, Gemini CLI e Codex, la progettazione di flussi di lavoro di IA enterprise richiede invece un approccio più restrittivo alla gestione dei permessi.
Utilizzando Fastly Compute, i programmi traggono facilmente vantaggio dall'isolamento sandbox del runtime WebAssembly e dalle funzionalità di sicurezza della memoria, come il controllo dei limiti di memoria lineare entro chiari limiti di sicurezza. Ad esempio, l'esecuzione dinamica del codice utilizzando il costruttore AsyncFunction( ), come implementato nell'esempio sopra, è generalmente considerata un rischio di vulnerabilità e una pratica sconsigliata in molti ambienti di esecuzione JavaScript. Sebbene richieda un uso attento anche in Fastly Compute, la piattaforma funziona in un ambiente WebAssembly isolato che intrinsecamente manca di accesso al file system, I/O di rete o capacità di esecuzione di comandi esterni, consentendo all'Agente di svolgere elaborazioni autonome con una superficie di attacco minimizzata.
Non è tutto: i numerosi hostcall offerti dalla piattaforma Fastly Compute includono anche diverse funzionalità legate alla sicurezza. Ad esempio, i limiti al numero di chiamate backend fetch/send aiutano a prevenire l'emissione di richieste esterne eccessive. Inoltre, il nostro meccanismo "Static Backend" può limitare il traffico a server esterni predefiniti, impedendo all'agente di effettuare richieste HTTP a server esterni indesiderati/sconosciuti.
// example of dynamic backend
fetch("https://example.com/some-path")
// example of static backend, restricting traffic to pre-defined external servers
fetch("https://example.com/some-path", {backend: "example-com"}) Questo meccanismo non solo protegge i flussi di lavoro IA da esecuzioni dannose, ma consente anche l'autorizzazione selettiva di comportamenti più ampi tramite una funzionalità chiamata "Dynamic Backends". Grazie all'assegnazione granulare delle capacità ai programmi eseguiti come moduli Wasm all'interno di un'infrastruttura sicura, Fastly Compute facilita l'implementazione senza interruzioni di sicurezza nei flussi di lavoro IA.
Garantire il controllo sfruttando tecnologie e specifiche standardizzate
In questo post, abbiamo introdotto diversi metodi per implementare efficacemente gli agenti IA su Fastly Compute. Gli agenti IA sono diventati indispensabili per ottenere miglioramenti significativi in termini di produttività ed efficienza operativa. Con Fastly Compute, un ambiente di livello enterprise che bilancia prestazioni e sicurezza, puoi sviluppare agenti che sfruttano appieno la potenza dell'IA. Spero che questo post ti aiuti a sviluppare agenti IA offrendo un'esperienza migliore. Unisciti alla conversazione sul nostro forum e facci sapere cosa stai creando.

