EsempioscriptintermediateEseguibileintent-router
Controllo: fornisce processi decisionali deterministici e controllo del flusso di processo.
Questo componente gestisce la logica if/then, il routing basato su condizioni e l’orchestrazione dei processi per un comportamento prevedibile.
Fatti chiave
- Livello
- intermediate • Blocchi di Costruzione degli Agenti
- Runtime
- Python • API OpenAI
- Pattern
- Model classification with code-owned routing
- 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
5-control.py
python
"""
Control: Provides deterministic decision-making and process flow control.
This component handles if/then logic, routing based on conditions, and process orchestration for predictable behavior.
"""
from openai import OpenAI
from pydantic import BaseModel
from typing import Literal
class IntentClassification(BaseModel):
intent: Literal["question", "request", "complaint"]
confidence: float
reasoning: str
def route_based_on_intent(user_input: str) -> tuple[str, IntentClassification]:
client = OpenAI()
response = client.responses.parse(
model="gpt-4o",
input=[
{
"role": "system",
"content": "Classify user input into one of three categories: question, request, or complaint. Provide your reasoning and confidence level.",
},
{"role": "user", "content": user_input},
],
text_format=IntentClassification,
)
classification = response.output_parsed
intent = classification.intent
if intent == "question":
result = answer_question(user_input)
elif intent == "request":
result = process_request(user_input)
elif intent == "complaint":
result = handle_complaint(user_input)
else:
result = "I'm not sure how to help with that."
return result, classification
def answer_question(question: str) -> str:
client = OpenAI()
response = client.responses.create(
model="gpt-4o", input=f"Answer this question: {question}"
)
return response.output[0].content[0].text
def process_request(request: str) -> str:
return f"Processing your request: {request}"
def handle_complaint(complaint: str) -> str:
return f"I understand your concern about: {complaint}. Let me escalate this."
if __name__ == "__main__":
# Test different types of inputs
test_inputs = [
"What is machine learning?",
"Please schedule a meeting for tomorrow",
"I'm unhappy with the service quality",
]
for user_input in test_inputs:
print(f"\nInput: {user_input}")
result, classification = route_based_on_intent(user_input)
print(
f"Intent: {classification.intent} (confidence: {classification.confidence})"
)
print(f"Reasoning: {classification.reasoning}")
print(f"Response: {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 →