Agents From Scratch - Guide de construction d'agents IA à partir de zéro
Aperçu du projet
Ce dépôt est un guide pour construire des agents intelligents (agents) à partir de zéro. Il construit progressivement un agent "sensible à l'environnement", capable de gérer vos e-mails via l'API Gmail. Le projet est développé par l'équipe LangChain AI et constitue une excellente ressource pour apprendre et pratiquer le développement d'agents IA.
Structure du projet
Composants principaux
Le projet est divisé en 4 parties principales, chacune contenant un notebook Jupyter et l'implémentation de code correspondante :
- Bases de l'agent - Construire les fonctionnalités de base de l'agent
- Évaluation de l'agent - Implémenter un mécanisme d'évaluation des performances de l'agent
- Collaboration homme-machine - Intégrer l'intervention humaine et les processus de vérification
- Système de mémoire - Ajouter une mémoire à long terme et une capacité d'apprentissage
Structure des répertoires
notebooks/
- Contient les notebooks Jupyter à des fins d'enseignement
src/email_assistant/
- Code d'implémentation principal de l'assistant de messagerie
eval/
- Ensembles de données et outils liés à l'évaluation
tests/
- Suite de tests automatisés
Exigences techniques
Exigences environnementales
- Version de Python : 3.11 ou version ultérieure (pour une compatibilité optimale avec LangGraph)
- Dépendances principales : LangGraph, API OpenAI, LangSmith
Configuration des clés API
Les clés API suivantes doivent être configurées :
- Clé API OpenAI (pour les appels de modèles de langage)
- Clé API LangSmith (pour le suivi et l'évaluation)
Configuration de l'environnement
# Vérifier la version de Python
python3 --version
# Créer un environnement virtuel
python3 -m venv .venv
source .venv/bin/activate
# Mettre à niveau pip
python3 -m pip install --upgrade pip
# Installer le projet (en mode éditable)
pip install -e .
Configuration des variables d'environnement
# Copier le modèle de variables d'environnement
cp .env.example .env
Configurer dans le fichier .env
:
LANGSMITH_API_KEY=your_langsmith_api_key
LANGSMITH_TRACING=true
LANGSMITH_PROJECT="interrupt-workshop"
OPENAI_API_KEY=your_openai_api_key
Modules de fonctionnalités détaillés
1. Introduction aux bases de LangGraph
- Fichier :
notebooks/langgraph_101.ipynb
- Contenu : Présentation des concepts de base de LangGraph, y compris les modèles de conversation, les appels d'outils, la différence entre les agents et les workflows, les nœuds/arêtes/systèmes de mémoire LangGraph et l'utilisation de LangGraph Studio
2. Construction d'un assistant de messagerie
- Notebook :
notebooks/agent.ipynb
- Code :
src/email_assistant/email_assistant.py
- Fonctionnalités :
- Combinaison des étapes de classification des e-mails et du traitement des réponses de l'agent
- Implémentation d'un workflow complet de traitement des e-mails
- Fournir une fonction de réponse automatique aux e-mails
3. Système d'évaluation de l'agent
- Notebook :
notebooks/evaluation.ipynb
- Ensemble de données :
eval/email_dataset.py
- Fonctionnalités :
- Utilisation de Pytest et de l'API d'évaluation LangSmith pour l'évaluation
- Implémentation d'un mécanisme d'évaluation basé sur LLM en tant qu'évaluateur
- Évaluation de la précision des appels d'outils et des décisions de classification
4. Collaboration homme-machine (HITL)
- Notebook :
notebooks/hitl.ipynb
- Code :
src/email_assistant/email_assistant_hitl.py
- Fonctionnalités :
- Intégration d'un mécanisme de vérification humaine
- Prise en charge de la confirmation humaine pour des appels d'outils spécifiques (tels que l'envoi d'e-mails, la planification de réunions)
- Utilisation d'Agent Inbox comme interface d'interaction homme-machine
5. Système de mémoire
- Code :
src/email_assistant/email_assistant_hitl_memory.py
- Fonctionnalités :
- Apprendre et s'adapter aux commentaires des utilisateurs
- Utilisation de LangGraph Store pour la persistance de la mémoire
- Prise en charge des paramètres de préférences personnalisés
6. Intégration Gmail
- Code :
src/email_assistant/email_assistant_hitl_memory_gmail.py
- Fonctionnalités :
- Connexion réelle à l'API Gmail
- Fonctionnalités complètes de gestion des e-mails
- Prise en charge du déploiement sur la plateforme LangGraph
Système de test
Suite de tests automatisés
Le projet comprend un système de test automatisé complet pour vérifier l'exactitude de l'implémentation de l'assistant de messagerie :
# Exécuter les tests d'implémentation par défaut
python tests/run_all_tests.py
# Exécuter les tests d'implémentation spécifiques
python tests/run_all_tests.py --implementation email_assistant_hitl
# Exécuter les tests de toutes les implémentations
python tests/run_all_tests.py --all
# Spécifier le nom de l'expérience pour le suivi LangSmith
python tests/run_all_tests.py --experiment-name "Custom Test Run"
Versions d'implémentation testables
email_assistant
- Assistant de messagerie de base
email_assistant_hitl
- Version de collaboration homme-machine
email_assistant_hitl_memory
- Version HITL avec fonction de mémoire
email_assistant_hitl_memory_gmail
- Version d'intégration Gmail
Métriques d'évaluation
- Inspection visuelle du suivi de l'agent
- Métriques d'évaluation détaillées
- Analyse comparative de différentes implémentations d'agents
Instructions de déploiement
Déploiement de la plateforme LangGraph
Le projet prend en charge le déploiement sur la plateforme LangGraph pour implémenter des services d'agents en environnement de production.
Configuration de l'outil Gmail
Les informations d'identification de l'API Google doivent être configurées conformément aux instructions du fichier src/email_assistant/tools/gmail/README.md
.
Suggestions de parcours d'apprentissage
- Débutants : Commencez par le notebook LangGraph 101 pour comprendre les concepts de base
- Praticiens : Suivez l'ordre des quatre notebooks principaux pour construire progressivement des fonctionnalités complètes
- Développeurs : Étudiez le code d'implémentation dans le répertoire src pour comprendre la pratique de l'ingénierie
- Déployeurs : Configurez l'API Gmail et déployez-la dans un environnement de production
Caractéristiques techniques
- Apprentissage progressif : De base à avancé, étape par étape
- Application pratique : Scénarios réels de traitement des e-mails
- Ingénierie complète : Solution complète comprenant les tests, l'évaluation et le déploiement
- Extensibilité : Le principe peut être appliqué à d'autres tâches d'agent
