Présentation détaillée du projet OpenAI Agents Python
Aperçu du projet
Le SDK OpenAI Agents est un framework Python léger et puissant pour la construction de workflows multi-agents. Il s'agit de l'outil de développement d'agents de niveau production publié par OpenAI, une mise à niveau du projet expérimental Swarm précédent. Ce framework est conçu pour être simple mais complet, spécialement conçu pour la construction d'applications d'IA multi-agents complexes.
Caractéristiques principales
1. Compatibilité multiplateforme
- Indépendance du modèle : Prend en charge les API Responses et Chat Completions d'OpenAI
- Large compatibilité : Prend en charge plus de 100 modèles de langage différents
- Flexibilité de l'API : Permet de basculer facilement entre différents fournisseurs de services d'IA
2. Composants principaux
Agents
- Instances LLM configurées avec des instructions, des outils, des protections de sécurité et des mécanismes de transfert
- Chaque agent a des responsabilités et des limites de capacités claires
- Prend en charge les instructions et les modèles de comportement personnalisés
Mécanismes de transfert (Handoffs)
- Mécanisme d'appel d'outils spécialisé pour transférer le contrôle entre les agents
- Permet une collaboration transparente entre les agents
- Prend en charge l'orchestration de workflows complexes
Protections de sécurité (Guardrails)
- Vérifications de sécurité configurables pour la validation des entrées et des sorties
- Assure la sécurité et la fiabilité des applications d'IA
- Empêche les entrées malveillantes et les sorties inappropriées
Suivi des processus (Tracing)
- Fonction de suivi intégrée de l'exécution des agents
- Permet de visualiser, de déboguer et d'optimiser les workflows
- Système de suivi extensible, prenant en charge de nombreuses intégrations externes
Architecture technique
Installation et configuration
# Créer un environnement virtuel Python
python -m venv env
source env/bin/activate
# Installer la version de base
pip install openai-agents
# Installer la version avec prise en charge vocale
pip install 'openai-agents[voice]'
Exemples d'utilisation de base
Agent simple
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
Agent de collaboration multilingue
from agents import Agent, Runner
import asyncio
spanish_agent = Agent(
name="Spanish agent",
instructions="You only speak Spanish.",
)
english_agent = Agent(
name="English agent",
instructions="You only speak English",
)
triage_agent = Agent(
name="Triage agent",
instructions="Handoff to the appropriate agent based on the language of the request.",
handoffs=[spanish_agent, english_agent],
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
Exemple d'appel d'outil
import asyncio
from agents import Agent, Runner, function_tool
@function_tool
def get_weather(city: str) -> str:
return f"The weather in {city} is sunny."
agent = Agent(
name="Weather Assistant",
instructions="You are a helpful weather agent.",
tools=[get_weather],
)
async def main():
result = await Runner.run(agent, input="What's the weather in Tokyo?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
Mécanisme d'exécution du workflow
Logique de la boucle d'exécution
- Appel LLM : Utilise le modèle et les paramètres de l'agent, combinés à l'historique des messages, pour effectuer l'appel
- Traitement de la réponse : LLM renvoie une réponse, qui peut contenir un appel d'outil
- Vérification de la sortie : S'il y a une sortie finale, la renvoie et termine la boucle
- Traitement du transfert : S'il y a une demande de transfert, bascule vers le nouvel agent et recommence
- Exécution de l'outil : Traite l'appel d'outil et ajoute la réponse au message, puis recommence la boucle
Mécanisme de sortie finale
- Sortie structurée : Si
output_type
est défini, se termine lorsque LLM renvoie un contenu correspondant au type
- Sortie texte : Si
output_type
n'est pas défini, se termine lorsque l'agent génère un message sans appel d'outil ni transfert
Système d'outils
Prise en charge de trois types d'outils
1. Outils hébergés (Hosted Tools)
- S'exécutent sur le serveur LLM
- OpenAI fournit des outils hébergés tels que la récupération, la recherche sur le Web et l'utilisation de l'ordinateur
2. Appel de fonction (Function Calling)
- Prend en charge l'utilisation de n'importe quelle fonction Python comme outil
- Développement d'outils personnalisés flexible
3. Agent en tant qu'outil
- Permet à un agent d'appeler d'autres agents
- Prend en charge les structures de collaboration hiérarchiques complexes
Outils intégrés
- WebSearchTool : Fonction de recherche sur le Web
- Computer Use : Capacité d'utilisation de l'ordinateur
- Retrieval : Fonction de récupération d'informations
Suivi et surveillance
Fonction de suivi automatique
- Suit automatiquement le processus d'exécution de l'agent
- Facilite le débogage et l'optimisation du workflow
- Conception extensible prenant en charge les spans personnalisés
Prise en charge de l'intégration externe
- Logfire : Gestion des journaux
- AgentOps : Surveillance des opérations des agents
- Braintrust : Plateforme de développement d'applications d'IA
- Scorecard : Évaluation des performances
- Keywords AI : Intégration de l'IA des mots-clés
Scénarios d'application
Scénarios applicables
- Automatisation des processus métier complexes : Processus de traitement métier en plusieurs étapes
- Système de service client multilingue : Prend en charge le service client intelligent dans différentes langues
- Assistant de domaine professionnel : Assistants d'IA dans les domaines professionnels tels que le droit, la médecine, l'éducation, etc.
- Pipeline de traitement des données : Analyse et traitement des données en plusieurs étapes
- Système de collaboration créative : Plusieurs rôles d'IA collaborent pour accomplir des tâches créatives
Modèles de workflow
- Processus déterministe : Étapes de workflow prédéfinies
- Boucle itérative : Tâches nécessitant une optimisation itérative multiple
- Branche conditionnelle : Sélection de différents chemins de traitement en fonction des conditions
- Traitement parallèle : Plusieurs agents traitent simultanément différentes tâches
Environnement de développement
Exigences de développement
- Python 3.8+
- Nécessite la définition de la variable d'environnement
OPENAI_API_KEY
- Prend en charge les modes d'appel asynchrones et synchrones
Chaîne d'outils de développement
# Installer le gestionnaire de paquets uv
uv --version
# Installer les dépendances
make sync
# Exécuter les tests
make tests
# Vérification du type
make mypy
# Vérification des normes de code
make lint
Avantages du projet
1. Conception simple
- Très peu de niveaux d'abstraction
- Concepts de base clairs et précis
- Facile à comprendre et à utiliser
2. Prêt pour la production
- Construit sur la base de l'expérience réelle d'OpenAI
- Conception d'API stable et fiable
- Mécanisme de gestion des erreurs complet
3. Très flexible
- Prend en charge la modélisation de relations d'agents complexes
- Peut exprimer divers modèles de workflow
- Puissantes capacités de personnalisation
Résumé
OpenAI Agents Python est un framework de développement multi-agents de niveau professionnel qui simplifie la collaboration complexe de l'IA. Grâce à ses mécanismes de base d'agents, de transfert, de protection et de suivi, les développeurs peuvent rapidement créer des systèmes d'applications d'IA puissants. Qu'il s'agisse de tâches simples à agent unique ou de scénarios complexes de collaboration multi-agents, ce framework peut fournir des solutions élégantes.