Architettura dell'assistente AI: LLM, memoria, strumenti, routing, osservabilità

Come vengono costruiti effettivamente assistenti seri.

Indice

Un assistente AI di produzione non è “un LLM con un prompt”. È un sistema che accetta l’intento, mantiene lo stato, decide quando recuperare dati o eseguire azioni ed espone dettagli sufficienti a livello di runtime per eseguire il debug dei guasti.

Questa visione a livello di sistema è ciò che il cluster AI Systems esplora quando gli assistenti vanno oltre una singola invocazione del modello.

OpenAI descrive gli agenti come applicazioni che pianificano, chiamano tool, collaborano e mantengono uno stato sufficiente per lavori multi-step, mentre Anthropic inquadra lo stesso problema come un’infrastruttura gestita che può eseguire file, comandi, accesso web e codice in modo sicuro.

L’architettura più pulita divide le responsabilità in cinque layer: LLM, Memoria, Tooling (strumenti), Routing (instradamento) e Osservabilità. Questa divisione corrisponde alle capacità esposte dalle API dei principali provider, da MCP, da runtime self-hosted come vLLM e llama.cpp e da sistemi di assistenza reali come OpenClaw e Hermes.

illustrazione in toni chiari di un’architettura di assistente AI a strati con linee di flusso dati, nodi di memoria e server, senza testo.

La memoria dovrebbe essere trattata come qualcosa di più del “contesto più lungo”. I sistemi di recupero trasformano la conoscenza esterna in memoria non parametrica esplicita — lo stesso spazio progettuale coperto in profondità da Retrieval-Augmented Generation (RAG) — e sia le linee guida sul contesto di Anthropic che il paper “Lost in the Middle” avvertono che inserire ciecamente più token nel contesto non garantisce un richiamo affidabile.

L’uso dei tool è un confine contrattuale, non magia. Le chiamate a funzione di OpenAI, l’uso dei tool di Anthropic e MCP si basano tutti sullo stesso schema: il modello emette una richiesta strutturata, un runtime la esegue e il risultato fluisce nuovamente nella conversazione. Se quel confine è disordinato, l’assistente diventa disordinato.

Il mio pregiudizio è semplice: iniziare in modo noioso. Un orchestratore, un percorso di memoria durevole, un trace per richiesta e una politica esplicita per l’esecuzione dei tool. I grafi multi-agente sono utili, ma solo dopo che sei in grado di spiegare i casi di fallimento del tuo singolo agente senza indovinare.

Cos’è un sistema di assistenza AI

Una definizione pratica è questa: un sistema di assistenza AI è un runtime che trasforma l’intento dell’utente in una risposta o azione combinando un’interfaccia del modello, l’assemblaggio del contesto, l’esecuzione dei tool, la gestione dello stato e la telemetria. Ecco perché la documentazione utile non è solo costituita da schede del modello (model cards). La documentazione utile comprende riferimenti API, contratti per i tool, guide per il recupero, documenti sul routing e documenti sui trace. L’API Responses di OpenAI espone interazioni con stato, tool integrati e chiamate a funzione. L’API Claude di Anthropic espone l’accesso diretto ai Messages (messaggi) così come gli Agenti Gestiti (Managed Agents). OpenClaw e Hermes vanno un passo oltre e mostrano cosa accade quando si mettono quelle capacità dietro gateway persistenti, canali, sessioni e memoria.

In altre parole, un sistema di assistenza ha un contratto più ampio di una semplice chat completion. Un buon contratto interno assomiglia a questo:

AssistantRequest  = intento utente + identità + sessione + allegati + politica
AssistantResponse = risposta + azioni + citazioni + cambiamenti di stato + ID trace

Questo contratto è importante perché ogni disaccordo in produzione si riduce in definitiva a una di queste domande: quale contesto era visibile, quale tool è stato eseguito, quale modello ha risposto, quale memoria è stata letta o scritta e dove il trace indica che il sistema ha speso tempo. OpenTelemetry definisce i trace come il percorso di una richiesta attraverso un’applicazione, che è esattamente l’astrazione di cui gli assistenti seri hanno bisogno. LangSmith e OpenLIT specializzano poi quell’idea per LLM, tool, store vettoriali e flussi di lavoro degli agenti.

Componenti principali e interfacce

La divisione dei componenti di seguito è quella che trovo più durevole. È anche la divisione che si allinea meglio con le API ufficiali e i runtime open-source che le persone operano effettivamente.

Layer Responsabilità principale Interfaccia tipica Tecnologie di esempio
Layer LLM Ragionare, generare, decidere, emettere chiamate strutturate API Responses, API Messages, endpoint compatibili OpenAI o Anthropic OpenAI, Anthropic, vLLM, llama.cpp, Ollama
Layer Memoria Mantenere lo stato di sessione, note durevoli e conoscenza ricercabile embedding, ricerca vettoriale, tool di lettura/scrittura della memoria, API di recupero Embedding e store vettoriali OpenAI, Pinecone, Weaviate, pgvector, Milvus, memoria Hermes, memoria OpenClaw
Layer Tooling Leggere dati ed eseguire azioni al di fuori del modello Tool JSON-schema, tool MCP, ricerca file e web, tool nativi del runtime Chiamate a funzione OpenAI, uso dei tool Anthropic, MCP, tool LangChain, tool di query LlamaIndex
Layer Routing Scegliere modello, backend, politica e percorso tenant alias del modello, gruppi di failover, health check, budget, binding dei canali LiteLLM, routing multi-agente OpenClaw, risoluzione runtime provider Hermes
Osservabilità Spiegare cosa è successo e perché trace, span, log, metriche, run di valutazione OpenTelemetry, LangSmith, OpenLIT

La tabella sopra è derivata dalle interfacce ufficiali dei provider, MCP, documentazione dei database vettoriali e documentazione runtime per vLLM, llama.cpp, OpenClaw e Hermes.

Il layer LLM dovrebbe fare bene tre cose: consumare un contesto di lavoro corrente, emettere una risposta finale o una richiesta di azione strutturata e restituire metadati sufficienti per supportare i retry e i trace. L’API Responses di OpenAI è esplicitamente progettata per interazioni con stato più tool integrati e chiamate a funzione. L’API Messages di Anthropic espone lo stesso ciclo core attraverso blocchi tool_use e restituzioni tool_result, mentre Managed Agents ti offre un’infrastruttura ospitata se non vuoi costruire il ciclo tu stesso. I runtime self-hosted come vLLM e llama.cpp sono importanti perché preservano interfacce simili a quelle dei provider consentendoti allo stesso tempo di posizionare l’inferenza all’interno del tuo ambiente.

Il layer Memoria dovrebbe essere diviso mentalmente in tre categorie: memoria di lavoro, memoria simbolica durevole e memoria semantica ricercabile. Gli embedding di OpenAI restituiscono vettori che possono essere indicizzati e cercati; OpenAI Retrieval e File Search sovrappongono poi la ricerca semantica e per parole chiave sugli store vettoriali. Pinecone, Weaviate, pgvector e Milvus rappresentano quattro forme comuni di archiviazione: completamente gestita, open-source vector-native, Postgres-native e database vettoriale distribuito. Hermes e OpenClaw aggiungono un utile promemoria: non tutta la memoria appartiene a uno store vettoriale: note supportate da file, promozioni revisionate e snapshot dello scope di sessione sono spesso il design più onesto. Memory Systems in AI Assistants mappa il modello cross-framework; Hermes Agent Memory System analizza la memoria core delimitata e gli snapshot di sessione congelati in un prodotto.

Il layer Tooling è dove un assistente smette di essere un riassuntatore e inizia a essere software. Le chiamate a funzione di OpenAI trattano i tool come funzionalità definite da schema che il modello può decidere di invocare. Anthropic dice la stessa cosa in modo più esplicito: l’uso dei tool è un contratto tra la tua applicazione e il modello, e il modello non esegue mai nulla da solo. MCP generalizza quel contratto in un protocollo client-server dove gli host si connettono a uno o più server che espone tool, prompt e risorse — lo stesso confine descritto passo per passo in MCP Server in Go. LangChain e LlamaIndex si inseriscono comodamente qui come librerie di orchestrazione: LangChain si concentra su un’architettura di agente predefinita e integrazioni, mentre LlamaIndex si concentra sull’accesso ai dati aumentato dal contesto, motori di query e flussi di lavoro.

Il layer Routing esiste perché “quale modello?” non è mai l’unica domanda. Hai anche bisogno di “quale percorso provider, quale tenant, quale budget, quale classe di latenza e quale fallback?”. LiteLLM è utile perché i suoi documenti ufficiali sono sorprendentemente concreti: selezione ponderata, meno impegnato, routing basato sulla latenza, basato sul costo e failover delimitati sono tutti pattern di primo livello. OpenClaw estende il routing verso l’alto nell’isolamento dei canali e degli agenti, mentre Hermes lo estende verso il basso negli slot del modello per lavori principali e ausiliari come riassunto, compressione del contesto e routing dei tool MCP. Questo è il modello mentale giusto: il router sceglie più di un modello, sceglie una corsia di esecuzione.

Il layer Osservabilità è ciò che impedisce all’architettura di trasformarsi in folklore. OpenTelemetry ti fornisce l’astrazione del trace. LangSmith ti fornisce visibilità end-to-end sui passaggi delle applicazioni LLM e supporta forme di deployment cloud, ibride e self-hosted. OpenLIT ti fornisce osservabilità AI nativa OpenTelemetry con opzioni di strumentazione zero-code e manuale, incluso il supporto per LLM, framework agent, database vettoriali e GPU. Per metriche di produzione, trace e pattern SLO attraverso inferenza e flussi di lavoro degli agenti, vedi Osservabilità per Sistemi LLM. Se il tuo assistente non ha un trace per richiesta, uno span per chiamata al modello e nessuna cronologia degli eventi per l’esecuzione dei tool, non hai davvero un’architettura. Hai delle “vibes” (impressioni).

Catturare, arricchire, rispondere

La sequenza che continua a comparire nei sistemi reali è catturare -> arricchire -> rispondere -> registrare. Diversi framework la avvolgono diversamente, ma il flusso è abbastanza stabile da trattarlo come la spina dorsale.

sequenceDiagram participant U as User or Channel participant G as Gateway or UI participant R as Router participant M as Memory and Retrieval participant L as LLM participant T as Tools or MCP participant O as Observability U->>G: message, file, or command G->>O: start root trace G->>R: request + identity + session + policy R->>M: load session state and retrieve context M-->>R: notes, chunks, metadata R->>L: prompt + context + tool schemas L-->>R: answer or tool call alt tool call R->>T: execute tool or MCP action T-->>R: tool result R->>L: tool result + updated context L-->>R: final answer end R->>M: persist session changes and memory candidates R->>O: spans, metrics, eval events G-->>U: response

Il passo di cattura è di solito più importante di quanto appaia. Sia OpenClaw che Hermes pongono un gateway persistente davanti all’assistente perché l’ingress non è solo l’inserimento di testo. Include metadati del canale, identità, autorizzazione, confini di sessione, messaggi diretti, gruppi, tic cron e semantiche di consegna. Se salti quel layer e ti affidi a un’astrazione di widget di chat grezzo, alla fine lo aggancerai di nuovo come middleware ad hoc comunque.

Il passo di arricchimento è dove i sistemi maturi divergono dalle demo giocattolo. OpenAI Retrieval e File Search rendono esplicito il recupero attraverso store vettoriali e chiamate di ricerca. LlamaIndex formalizza lo stesso schema attraverso connettori di dati, indici, motori di query e flussi di lavoro. Hermes va oltre dividendo il parco modelli in slot principali e ausiliari, delegando lavori come compressione, riassunto e routing a modelli più piccoli o più specializzati. Questo è un pattern di progettazione da rubare: non spendere i token del modello più costoso per faccende domestiche.

Il passo di risposta non è “generare testo”. È “chiudere il ciclo corrente”. Se il modello può rispondere direttamente, lo fa. Se ha bisogno di un tool, emette una richiesta strutturata. Il contratto di uso dei tool di Anthropic e la guida alle chiamate a funzione di OpenAI rendono entrambi questo esplicito. Il motivo per cui questo è importante architetturalmente è che gli output ora includono sia linguaggio che flusso di controllo. Il tuo oggetto risposta è in parte prosa e in parte piano di runtime.

Il passo di registrazione è dove appaiono le semantiche di coerenza. Pinecone separa i percorsi di scrittura e lettura e processa le scritture dopo l’acknowledgement durevole. La memoria di Hermes viene iniettata come uno snapshot congelato per sessione per preservare le prestazioni della cache dei prefissi, il che significa che le nuove scritture non appaiono automaticamente nel prompt della sessione corrente. Il sistema Dreaming di OpenClaw promuove solo candidati revisionati e radicati in MEMORY.md, ed è opzionale piuttosto che sempre attivo. La lezione pratica è che la memoria raramente è veramente read-after-write (lettura dopo scrittura) attraverso ogni layer. Devi progettare per una visibilità a stadi.

OpenClaw e Hermes come sistemi di riferimento

OpenClaw e Hermes sono casi di riferimento utili perché non sono solo wrapper intorno a un’API di provider. Entrambi presentano un assistente come un sistema a lunga esecuzione con gateway, sessioni, tool, memoria e più backend di modello.

Preoccupazione architetturale Mapping OpenClaw Mapping Hermes
Ingress e superfici Gateway self-hosted che collega app di chat e superfici dei canali Gateway di messaggio di background singolo che collega molte piattaforme esterne
Orchestrazione Piano di controllo centrato sul gateway per canali e interazioni AI Loop AIAgent che gestisce assemblaggio prompt, selezione provider, dispatch tool, retry e failover
Routing Il routing multi-agente lega il traffico in entrata ad agenti isolati con workspace e sessioni separate Slot di modello principali e ausiliari separano il ragionamento core da compressione, riassunto, approvazioni e routing MCP
Memoria Memoria supportata da file più memoria attiva opzionale e promozione Dreaming in background MEMORY.md e USER.md iniettati come snapshot di sessione congelato, più provider di memoria esterni
Tooling ed estensione Tool integrati, tool di sessione, plugin provider, endpoint personalizzati e self-hosted 40+ tool, client MCP integrato, set di tool, skills e plugin provider di memoria

Questo mapping si basa sui documenti e repo ufficiali di OpenClaw e Hermes. OpenClaw documenta un’architettura gateway, routing multi-agente, supporto provider personalizzato e self-hosted incluso vLLM e Ollama, memoria attiva opzionale e promozione basata su Dreaming. Hermes documenta un gateway di messaggio, un loop centrale AIAgent, slot di modello principali e ausiliari, memoria integrata e integrazione MCP nativa.

La mia lettura leggermente opinata è che entrambi i sistemi fanno lo stesso argomento architetturale con accenti diversi. OpenClaw è fortemente gateway-first. Hermes è fortemente agent-loop-first. Ma entrambi rifiutano l’idea superficiale che un assistente sia solo “prompt più modello”. Modellano canali, identità, semantiche di memoria, superfici dei tool e eterogeneità dei backend come preoccupazioni di primo livello. Questo è esattamente ciò che un’architettura di produzione dovrebbe fare.

Uno stack ibrido pratico ispirato da entrambi i sistemi assomiglia a questo:

edge:
  gateway: hermes or openclaw

routing:
  proxy: litellm
  policy: latency and budget aware
  tenancy: session and channel scoped

llm:
  primary: openai responses or anthropic messages
  local_fallback: vllm
  local_dev: ollama or llama.cpp

memory:
  session: sqlite or postgres
  semantic: pgvector or weaviate
  embeddings: openai embeddings or ollama embeddings

tools:
  contract: json schema tools plus mcp
  examples: filesystem, browser, web search, internal APIs

observability:
  traces: opentelemetry
  ai_dashboards: openlit or langsmith
  evals: openai evals plus app-specific regression sets

Questo stack è un pattern di deployment ragionevole piuttosto che una blueprint prescritta dal vendor. Funziona perché le interfacce ufficiali si allineano: OpenAI e Anthropic espone API orientate ai tool, vLLM e llama.cpp emulano endpoint stile provider, Ollama gestisce modelli e embedding locali, MCP standardizza i tool esterni, LiteLLM gestisce routing e failover, e piattaforme compatibili con OpenTelemetry possono tracciare l’intero percorso.

Pattern, tabelle e compromessi

Ci sono alcuni pattern di assistente ripetibili da nominare. Un assistente gestito mantiene la maggior parte del runtime all’interno delle API del provider. Un assistente retrieval-first tratta memoria e ricerca come il differenziatore principale. Un assistente tool-first si comporta più come un operatore che come un chatbot. Un assistente gateway priorizza l’accesso sempre attivo attraverso superfici di messaggio. Una mesh di specialisti decompone il lavoro in più agenti o route. I documenti ufficiali su OpenAI, Anthropic, LlamaIndex, LiteLLM, OpenClaw e Hermes supportano tutti versioni di questi pattern, anche se li chiamano diversamente.

Pattern Cosa ottimizza Caso d’uso migliore Costo nascosto
Assistente gestito Velocità di consegna Copilot interni e bot di supporto Lock-in del provider e meno controllo sui dettagli del runtime
Assistente retrieval-first Risposte fondate su dati propri Documenti, supporto, lavoro di conoscenza La qualità del recupero diventa il vero prodotto
Assistente tool-first Azione rispetto alla conversazione Flussi di lavoro Ops, estrazioni dati, automazioni Effetti collaterali, retry e approvazioni diventano preoccupazioni core
Assistente gateway Accesso ubiquo Assistenti personali e di team attraverso superfici di chat Complessità di identità, sessione e sicurezza
Mesh di specialisti Divisione del lavoro Flussi di lavoro complessi con confini di proprietà reali Debug, orchestrazione e progettazione delle valutazioni più difficili

Questa tabella dei pattern è una sintesi dai documenti dei provider, documenti dei framework e sistemi di riferimento piuttosto che un’affermazione di un singolo vendor.

Forma dell’opzione Componenti tipici Forza Debolezza
Gestito OpenAI Responses o Anthropic Managed Agents, ricerca file o store vettoriali ospitati Percorso più veloce, meno parti mobili, tool ospitati Controllo più basso sul percorso dei dati e sulle semantiche del runtime
Ibrido API provider più router self-hosted e store vettoriale Buon equilibrio tra velocità e controllo Più contratti da mantenere
Self-hosted vLLM o llama.cpp o Ollama, MCP, DB vettoriale self-hosted, OTel Forte privacy e controllo del deployment Onere operativo più alto, overhead hardware e tuning

Note della tabella: OpenAI hosted File Search è un tool gestito, Anthropic offre un’infrastruttura gestita, Pinecone è un servizio vettoriale gestito, mentre vLLM, llama.cpp, Ollama, pgvector, Weaviate, Milvus, LangSmith self-hosted e OpenLIT supportano tutti operazioni self-managed o ibride in vari gradi.

Store vettoriale Forma Perché i team lo scelgono Attenzione
Pinecone Servizio vettoriale gestito Forti semplicità operativa e architettura gestita scalabile Dipendenza esterna ed economia del servizio gestito
Weaviate Database vettoriale open-source Vettori più indici invertiti e scelte di indice flessibili Più tuning del cluster rispetto a un percorso solo ospitato
pgvector Estensione Postgres Mantenere vettori con dati relazionali e stack SQL esistente Non l’adattamento migliore per ogni carico di lavoro ANN ad alta scala
Milvus Database vettoriale distribuito Scala costruita appositamente ed ecosistema intorno a Zilliz Cloud gestito Un altro datastore specialistico da gestire

Note della tabella: Pinecone documenta un piano di controllo gestito e piani di dati regionali. Weaviate documenta indici vettoriali e invertiti con più tipi di indice vettoriale. pgvector aggiunge la ricerca del vicino più prossimo esatta e approssimativa a Postgres. Milvus si posiziona come un database vettoriale open-source ad alte prestazioni e scalabile, con Zilliz Cloud come opzione gestita.

Opzione LLM Stile interfaccia Migliore in Attenzione
OpenAI Responses Risposte con stato più tool integrati Avvio rapido, tool ospitati, loop strutturati Eredi astrazioni specifiche della piattaforma
Anthropic Messages Accesso diretto al modello con contratto di uso tool esplicito Confini dei tool chiari e buon controllo in loop personalizzati Più runtime è responsabilità tua a meno che tu non usi Managed Agents
vLLM Server self-hosted compatibile OpenAI e Anthropic Inferenza self-hosted ad alto throughput Lavoro reale di infrastruttura e serving del modello
Ollama Runtime di modello e embedding locale semplice Sviluppo locale e stack self-hosted piccoli Non la stessa classe di sistema di serving di un runtime distribuito ottimizzato
llama.cpp Server locale leggero con route compatibili provider Edge, CPU-first, ambienti vincolati Fai più tuning manuale e matching delle capacità

Note della tabella: OpenAI documenta Responses come la sua interfaccia avanzata per risposte con stato e tool integrati. Anthropic documenta l’API Messages e il contratto di uso dei tool separatamente da Managed Agents. vLLM espone un server compatibile OpenAI più il supporto API Messages Anthropic. Ollama documenta flussi di lavoro di embedding e modelli locali. llama.cpp documenta route di chat, risposte e embedding compatibili OpenAI, più completamenti della chat compatibili Anthropic.

Vincolo o compromesso Bias verso gestito Bias verso self-hosted Mitigazione pratica
Latenza Spesso migliore prima iterazione e meno compiti di tuning locali Può vincere quando modello e dati sono collocati insieme e mantenuti caldi Usa tier di routing, cache calde e modelli ausiliari più piccoli
Costo Facile da iniziare, variabile alla scala dei token Migliore ammortizzazione a utilizzo costante Misura il traffico reale prima di ottimizzare per istinto
Privacy e residenza Più semplice per dati non sensibili Controllo più forte per flussi sensibili e regolamentati Usa confini ibridi e mantieni solo ciò che deve spostarsi
Coerenza I tool ospitati hanno comunque semantiche di visibilità a stadi Le pipeline di memoria self-hosted stadiano e promuovono anche i dati Definisci regole read-after-write esplicitamente per layer
Scalabilità Meno dolore del piano di controllo Migliore tailoring per carichi di lavoro stabili e specializzati Usa batching, accodamento e tenant isolati
Debuggabilità Facile perdere interni opachi del provider Facile annegare nella complessità auto-prodotta Traccia ogni richiesta e valuta ogni route

Questa matrice dei compromessi è un’inferenza architetturale dai documenti ufficiali, non un benchmark del vendor. La riga della coerenza è più importante di quanto ammettono molti post di blog: Pinecone separa i percorsi di scrittura e lettura, Hermes congela la memoria nei prompt dell’inizio della sessione e OpenClaw promuove la memoria durevole attraverso revisioni a stadi. Questo significa che “memoria aggiornata” e “memoria visibile alla risposta corrente” sono spesso verità diverse.

Modalità di fallimento e mitigazioni

La maggior parte degli assistenti non fallisce perché il modello base è “cattivo”. Falliscono perché il sistema circostante mente al modello, gli affama il contesto giusto, lascia che i tool derivino o rende impossibile il debug.

Dove si rompe Sintomo tipico Causa comune Mitigazione
Assemblaggio prompt Risposta sicura ma fuori target Troppo contesto irrilevante, ordinamento povero Budget del contesto, reranking, mantenere i fatti chiave in alto
Recupero Tono corretto, fatti sbagliati Chunking cattivo, indice obsoleto, filtri deboli Valuta il recupero separatamente, aggiungi filtri di metadati e ricerca ibrida
Confine del tool Azione sbagliata o duplicata Schemi laschi, retry senza idempotenza Schemi stretti, chiavi di idempotenza, gate di approvazione
Routing Comportamento wildly inconsistente per richiesta Routing di costo o latenza senza controlli di qualità Aggiungi sessioni sticky e eval per route
Memoria Richiamo obsoleto o avvelenato Scritture troppo zelanti, revisione debole, leakage cross-sessione Separa memoria di lavoro e durevole, revisiona le promozioni
Osservabilità Nessuna idea di cosa sia successo Trace mancanti o nessuna granularità dello span Emetti root e subspan per recupero, modello e chiamate ai tool
Controllo allucinazione Affermazioni plausibili ma non supportate Grounding debole o nessun passaggio di validazione Validazione reference-doc, controlli di auto-coerenza, gate di eval

La base di prove per questa tabella è ampia ma coerente. I documenti dei tool di Anthropic chiariscono che l’uso dei tool è un confine contrattuale. OpenAI Guardrails include il rilevamento delle allucinazioni contro una base di conoscenza di riferimento tramite File Search. SelfCheckGPT mostra che l’auto-coerenza tra i campioni può aiutare a rilevare affermazioni non supportate. I risultati di “Lost in the Middle” e le linee guida sul contesto di Anthropic rafforzano entrambi la stessa lezione operativa: più token non rimuovono la necessità di curazione del contesto.

Lo stack di mitigazione preferito potrebbe essere noioso e ripetitivo: traccia ogni richiesta, versiona i prompt, valuta il recupero in modo indipendente, mantieni i tool idempotenti ed esegui eval di regressione prima di cambiare route o politica della memoria. I documenti e il repo di Evals di OpenAI sono diretti sul perché: senza eval, è difficile e dispendioso in termini di tempo capire come i cambiamenti del modello o del prompt influenzino il tuo caso d’uso. Questo si applica tanto al routing e al recupero quanto ai prompt.

Letture aggiuntive

Se vuoi approfondire, queste sono le fonti primarie più utili da tenere aperte mentre progetti o revisioni un’architettura di assistente.

  • OpenAI: Panoramica Responses, Chiamate a Funzione, Uso dei Tool, Retrieval, File Search, Evals e MCP per server tool remoti.

  • Anthropic: Panoramica API, Uso dei Tool, il contratto di uso dei tool, Agenti Gestiti, Finestre di Contesto e il connettore MCP.

  • MCP stesso: la Panoramica Architetturale e la Specifica valgono la pena essere lette direttamente, perché spiegano host, client, server, tool, prompt, risorse, trasporti e negoziazione delle capacità in modo pulito.

  • Framework e routing: Panoramica LangChain, documenti di aumento del contesto LlamaIndex, documenti di routing LiteLLM, documenti di osservabilità LangSmith.

  • Runtime self-hosted e sistemi di assistenza: vLLM, server llama.cpp, embedding Ollama, documenti e repo OpenClaw, documenti e repo Hermes.

  • Archiviazione e osservabilità: Pinecone, Weaviate, pgvector, Milvus, OpenTelemetry, OpenLIT.

  • Paper di ricerca: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Lost in the Middle e SelfCheckGPT.

Iscriviti

Ricevi nuovi articoli su sistemi, infrastruttura e ingegneria AI.