0Pricing
AI Agents · Lezione

Come funziona il function calling

Comprenda l'intero ciclo: il modello sceglie uno strumento, il codice lo esegue, Lei invia il risultato e il modello prosegue.

Come funziona il function calling è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Function calling: il pattern fondamentale

Il function calling è il protocollo che trasforma un LLM in un agente. Il modello sceglie una funzione da un elenco fornito da Lei, ne compila gli argomenti e Lei la esegue.

Questo pattern è supportato da OpenAI, Anthropic, Google, Cohere, Mistral e dalla maggior parte dei principali modelli OSS con i fine-tuning appropriati.

Il ciclo completo in cinque passaggi

  1. Invia i messaggi e le definizioni degli strumenti
  2. Il modello restituisce una risposta finale OPPURE un tool_call
  3. Esegue lo strumento con gli argomenti del modello
  4. Aggiunge il risultato come messaggio dello strumento
  5. Richiama il modello con la cronologia aggiornata

Ripeta i passaggi da 2 a 5 finché il modello non restituisce una risposta finale.

Passaggio 1: definizione degli strumenti

Le definizioni degli strumenti sono schemi JSON che descrivono ogni funzione:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'description': 'Current weather for a city',
        'parameters': {
            'type': 'object',
            'properties': {
                'city': {'type': 'string'}
            },
            'required': ['city']
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

Passaggio 2: prima chiamata al modello

Invii messaggi e strumenti:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
    tools=tools,
)
message = response.choices[0].message
print(message.tool_calls)
# [ToolCall(name='get_weather', arguments='{"city": "Paris"}')]

Passaggio 3: esecuzione dello strumento

Inoltri la richiesta alla funzione Python:

import json

def get_weather(city: str) -> dict:
    # ...call your weather API...
    return {'city': city, 'temp_c': 18, 'condition': 'cloudy'}

tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
result = get_weather(**args)

Passaggio 4: aggiunta del risultato dello strumento

Aggiunga un messaggio dello strumento con l'ID corrispondente:

messages.append(message)  # the assistant message with tool_calls
messages.append({
    'role': 'tool',
    'tool_call_id': tool_call.id,
    'content': json.dumps(result)
})

Passaggio 5: seconda chiamata al modello

Richiami il modello: ora dispone del risultato dello strumento e produce una risposta destinata all'utente:

final = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
)
print(final.choices[0].message.content)
# 'It is currently 18 degrees and cloudy in Paris.'

Il ciclo dell'agente

Inserisca tutto in un ciclo while: il modello può chiamare diversi strumenti in sequenza:

while True:
    response = client.chat.completions.create(model=MODEL, messages=messages, tools=tools)
    msg = response.choices[0].message
    messages.append(msg)
    if not msg.tool_calls:
        return msg.content  # final answer
    for tc in msg.tool_calls:
        result = dispatch(tc)
        messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})

Chiamate parallele agli strumenti

I modelli moderni restituiscono più tool_calls in un'unica risposta. Li esegua in parallelo quando è sicuro farlo:

import asyncio

async def run_tools(tool_calls):
    coros = [dispatch_async(tc) for tc in tool_calls]
    return await asyncio.gather(*coros)

finish_reason: tool_calls

Può anche controllare finish_reason invece di cercare tool_calls:

if response.choices[0].finish_reason == 'tool_calls':
    # the model wants to call tools
    ...
elif response.choices[0].finish_reason == 'stop':
    # done
    ...

Errori comuni

  • Dimenticare di aggiungere il messaggio dell'assistente prima del risultato dello strumento
  • Usare il tool_call_id errato
  • Inviare i risultati degli strumenti come messaggi dell'utente
  • Lasciare il ciclo senza un limite: imposti MAX_STEPS

Terminazione del ciclo

Come si capisce quando l'agente ha terminato?

Riepilogo

Il function calling è il pattern più importante dell'intero corso. Lo padroneggi prima di proseguire.

Domande Frequenti

La lezione «Come funziona il function calling» è gratuita?

Sì — il testo completo di «Come funziona il function calling» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Come funziona il function calling»?

Comprenda l'intero ciclo: il modello sceglie uno strumento, il codice lo esegue, Lei invia il risultato e il modello prosegue. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Come funziona il function calling»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Come funziona il function calling
  2. Definire gli schemi degli strumenti (JSON Schema)
  3. Scegliere gli strumenti a runtime
  4. Restituire i risultati al modello
← Torna a AI Agents