LangChain
LangChain è un framework open source per creare applicazioni e agenti LLM con modelli, strumenti, sistemi di recupero e middleware intercambiabili.
LangChain è un framework open source per creare applicazioni e agenti IA basati su modelli linguistici di grandi dimensioni (LLM). Offre a ogni provider di modelli un'interfaccia uniforme per messaggi, modelli di chat, strumenti e retriever, così un'applicazione può passare dal modello di un provider a quello di un altro cambiando il nome del modello; include inoltre cicli di agenti già pronti e centinaia di integrazioni con archivi vettoriali, caricatori di documenti e API. Harrison Chase ha pubblicato LangChain come progetto Python open source nell'ottobre 2022, poche settimane prima del lancio di ChatGPT, e il progetto è diventato uno dei toolkit più usati per concatenare prompt, recupero e chiamate ai modelli nelle applicazioni di IA generativa. LangChain 1.0 e LangGraph 1.0 sono stati rilasciati insieme il 22 ottobre 2025, con l'impegno di non introdurre modifiche incompatibili fino alla versione 2.0.
L'ecosistema LangChain#
Il nome indica ora una famiglia di pacchetti, disponibili in Python e JavaScript:
- langchain: il framework per agenti, basato su
create_agent, che riceve un modello, un elenco di strumenti e un prompt di sistema e restituisce un agente funzionante. - langchain-core e integrazioni: interfacce standard per modelli di chat, messaggi, embedding, retriever e strumenti, oltre a pacchetti per provider come langchain-openai e langchain-anthropic che le implementano.
- LangGraph: il runtime di livello inferiore su cui si basano gli agenti LangChain. Rappresenta un programma come un grafo di passaggi che operano su uno stato condiviso e può salvare un checkpoint di tale stato dopo ogni passaggio, così le attività lunghe sopravvivono ai riavvii e possono essere messe in pausa per ottenere l'approvazione di una persona.
- LangSmith: una piattaforma ospitata per le tracce di osservabilità, la valutazione degli agenti sui dataset e la distribuzione degli agenti.
Le app LangChain classiche erano catene: un modello di prompt compilato con l'input dell'utente, una chiamata al modello e un parser dell'output, composti con una sintassi a pipe come nel prompt chaining. La catena più comune è la generazione aumentata dal recupero (RAG), che carica documenti, li suddivide in segmenti, ne archivia gli embedding in un database vettoriale e aggiunge alla finestra di contesto del modello i segmenti più pertinenti a ciascuna domanda.
Come funziona un agente LangChain#
Un agente creato con create_agent ripete un ciclo di chiamate al modello e agli strumenti, lo stesso ciclo di chiamata di funzione eseguito da ogni harness per agenti. Il middleware si collega a ogni passaggio per modificare ciò che avviene intorno al modello: il middleware integrato riassume le cronologie lunghe, oscura i dati personali e mette in pausa il processo per ottenere l'approvazione umana prima di eseguire gli strumenti selezionati.
Aggiungere la visione a un agente LangChain#
Il decoratore @tool di LangChain trasforma una funzione Python in uno strumento, leggendo i tipi degli argomenti dalla firma e la descrizione dalla docstring. Avvolgere Ultralytics YOLO26 in questo modo consente a un agente di eseguire il rilevamento degli oggetti; Results.summary() restituisce il nome della classe, la confidenza e il riquadro di ogni rilevamento come dati leggibili dal modello:
from langchain_core.tools import tool
from langchain_core.utils.function_calling import convert_to_openai_tool
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
@tool
def detect_objects(image_url: str) -> list[dict]:
"""Detect objects in an image and return each one's class name, confidence, and box."""
results = model(image_url)
return results[0].summary()
# Lo schema che LangChain ricava dalla firma e dalla docstring, così come lo riceve un modello
print(convert_to_openai_tool(detect_objects))
# Un agente esegue lo strumento con gli argomenti della chiamata allo strumento effettuata dal modello
detections = detect_objects.invoke({"image_url": "https://ultralytics.com/images/bus.jpg"})
print(detections[0]["name"], detections[0]["confidence"])La prima stampa mostra la definizione della funzione, con un parametro stringa image_url e la docstring come descrizione, che LangChain invia al modello; la seconda mostra il primo rilevamento restituito dallo strumento. Passando tools=[detect_objects] a create_agent si consente a qualsiasi modello di chat supportato di richiamare il rilevatore tramite la modalità predict.
LangChain a confronto con strumenti correlati#
- Flussi di lavoro agentici: i modelli generali di progettazione, come routing, uso degli strumenti e cicli di valutazione, implementati dai grafi LangGraph e dagli agenti LangChain.
- SDK dei provider: chiamare direttamente l'API di un provider di modelli non richiede framework ed è adatto alle app che usano un solo modello. LangChain aggiunge interfacce condivise, integrazioni e cicli per agenti, utili quando un'app usa più modelli, strumenti o fonti di dati.
- DSPy: un framework che scrive e ottimizza automaticamente i prompt di un programma LLM a più passaggi, regolandoli in base a una metrica calcolata su dati di esempio.
- LlamaIndex: un framework incentrato sull'acquisizione, l'indicizzazione e l'interrogazione di dati privati per la RAG. I due framework si sovrappongono e spesso le applicazioni usano LlamaIndex per il recupero all'interno di un agente LangChain o LangGraph.










