EsempioscriptintermediateEseguibiletool-agent
Strumenti: consente agli agenti di eseguire azioni specifiche in sistemi esterni.
Questo componente fornisce la capacità di effettuare chiamate API, aggiornamenti di database, operazioni sui file e altre azioni pratiche.
Fatti chiave
- Livello
- intermediate • Blocchi di Costruzione degli Agenti
- Runtime
- Python • API OpenAI
- Pattern
- Flusso ispezionabile con confini di sistema visibili
- Interazione
- Sandbox live • Script
- Aggiornato
- 14 marzo 2026
Naviga questo esempio
Libreria
Sfoglia gli esempiRiapri la libreria completa per confrontare pattern vicini e percorsi collegati.Interazione
Esegui ora nel sandboxProva l'interazione direttamente nella superficie guidata di questo esempio.Sorgente
Apri codice completoLeggi l'implementazione reale, i punti evidenziati e i requisiti runtime.MCP
Chiama via MCPUsa la stessa risorsa dentro agenti, export deterministici e setup MCP.
Principi collegati
3-tools.py
python
"""
Tools: Enables agents to execute specific actions in external systems.
This component provides the capability to make API calls, database updates, file operations, and other practical actions.
More info: https://platform.openai.com/docs/guides/function-calling?api-mode=responses
"""
import json
import requests
from openai import OpenAI
def get_weather(latitude, longitude):
response = requests.get(
f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}¤t=temperature_2m,wind_speed_10m"
)
data = response.json()
return data["current"]["temperature_2m"]
def call_function(name, args):
if name == "get_weather":
return get_weather(**args)
raise ValueError(f"Unknown function: {name}")
def intelligence_with_tools(prompt: str) -> str:
client = OpenAI()
tools = [
{
"type": "function",
"name": "get_weather",
"description": "Get current temperature for provided coordinates in celsius.",
"parameters": {
"type": "object",
"properties": {
"latitude": {"type": "number"},
"longitude": {"type": "number"},
},
"required": ["latitude", "longitude"],
"additionalProperties": False,
},
"strict": True,
}
]
input_messages = [{"role": "user", "content": prompt}]
# Step 1: Call model with tools
response = client.responses.create(
model="gpt-4o",
input=input_messages,
tools=tools,
)
# Step 2: Handle function calls
for tool_call in response.output:
if tool_call.type == "function_call":
# Step 3: Execute function
name = tool_call.name
args = json.loads(tool_call.arguments)
result = call_function(name, args)
# Step 4: Append function call and result to messages
input_messages.append(tool_call)
input_messages.append(
{
"type": "function_call_output",
"call_id": tool_call.call_id,
"output": str(result),
}
)
# Step 5: Get final response with function results
final_response = client.responses.create(
model="gpt-4o",
input=input_messages,
tools=tools,
)
return final_response.output_text
if __name__ == "__main__":
result = intelligence_with_tools(prompt="What's the weather like in Paris today?")
print("Tool Calling Output:")
print(result)
Principi correlati
- P1delegationProgettare per la delega piuttosto che per la manipolazione direttaProgettare esperienze attorno all'assegnazione del lavoro, l'espressione dell'intento, l'impostazione dei vincoli e la revisione dei risultati, piuttosto che richiedere agli utenti di eseguire manualmente ogni passaggio.Apri il principio →
- P5delegationSostituire la magia implicita con modelli mentali chiariIl prodotto dovrebbe aiutare gli utenti a comprendere cosa il sistema può fare, cosa sta facendo attualmente, cosa non può fare e quali condizioni governano il suo comportamento.Apri il principio →
- P7trustStabilire fiducia attraverso l'ispezionabilitàGli utenti dovrebbero essere in grado di esaminare come è stato prodotto un risultato quando la fiducia, la responsabilità o la qualità della decisione sono importanti.Apri il principio →
- P8trustRendere espliciti i passaggi, le approvazioni e i blocchiQuando il sistema non può procedere, la ragione dovrebbe essere immediatamente visibile, insieme a qualsiasi azione richiesta dall'utente o da un'altra dipendenza.Apri il principio →
- P10delegationOttimizzare per la guida, non solo per l'inizioIl sistema dovrebbe supportare gli utenti non solo nell'avvio dei compiti, ma anche nella guida, nel perfezionamento, nella riprioritizzazione e nella correzione del lavoro mentre è in corso.Apri il principio →