Home
Login

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.

MITPython 11.6kopenai Last Updated: 2025-06-19

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

  1. Appel LLM : Utilise le modèle et les paramètres de l'agent, combinés à l'historique des messages, pour effectuer l'appel
  2. Traitement de la réponse : LLM renvoie une réponse, qui peut contenir un appel d'outil
  3. Vérification de la sortie : S'il y a une sortie finale, la renvoie et termine la boucle
  4. Traitement du transfert : S'il y a une demande de transfert, bascule vers le nouvel agent et recommence
  5. 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.