Framework léger pour la construction de workflows multi-agents, prenant en charge la collaboration entre agents, l'appel d'outils et l'orchestration des processus.
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.