AgentFlow-AI

AgentFlow-AI est un système d’agent intelligent basé sur une architecture micro-services.
Ce projet démontre comment un modèle de langage peut être combiné avec des outils, appelés actions, pour créer un agent capable d’exécuter des tâches concrètes.
Objectif du projet
L’objectif est de transformer une simple requête utilisateur en une série d’actions exécutables.
Le système permet de :
- comprendre une demande en langage naturel
- décider des actions nécessaires
- exécuter ces actions
- utiliser les résultats pour produire une réponse finale
- maintenir un contexte avec
historyetstate - visualiser le flux d’exécution
Architecture globale
Le système est composé de quatre services principaux :
- Frontend
- Backend API
- LLM API
- Agent API
Flux global :
Utilisateur → Frontend → Backend → LLM → Agent → Backend → Frontend

Structure complète du projet
AgentFlow-AI/
│
├── backend_api/
│ ├── app/
│ │ ├── main.py
│ │ ├── routes.py
│ │ ├── core/
│ │ │ ├── agent_loop.py
│ │ │ └── history_manager.py
│ │ ├── services/
│ │ │ ├── llm_client.py
│ │ │ ├── agent_client.py
│ │ │ └── validator.py
│ │ └── config.py
│ ├── Dockerfile
│ └── requirements.txt
│
├── agent_api/
│ ├── app/
│ │ ├── main.py
│ │ ├── core/
│ │ │ ├── executor.py
│ │ │ └── action_registry.py
│ │ ├── actions/
│ │ │ ├── action_definitions.py
│ │ │ ├── create_file.py
│ │ │ ├── write_file.py
│ │ │ ├── read_file.py
│ │ │ ├── delete_file.py
│ │ │ ├── list_files.py
│ │ │ ├── list_notebooks.py
│ │ │ ├── read_notebook.py
│ │ │ ├── python_to_notebook.py
│ │ │ ├── get_datetime.py
│ │ │ ├── generate_image.py
│ │ │ ├── search_web.py
│ │ │ └── search_jobs.py
│ │ └── config.py
│ ├── Dockerfile
│ └── requirements.txt
│
├── llm_api/
│ ├── app/
│ │ ├── main.py
│ │ ├── core/
│ │ │ ├── prompt_builder.py
│ │ │ └── azure_client.py
│ │ └── config.py
│ ├── Dockerfile
│ └── requirements.txt
│
├── frontend/
│ ├── index.html
│ ├── style.css
│ ├── script.js
│ └── Dockerfile
│
├── shared/
│ ├── schemas.py
│ └── constants.py
│
├── data/
│ ├── files/
│ ├── notebooks/
│ └── images/
│
├── .env
├── .gitignore
├── docker-compose.yml
└── README.md
Description des services
Frontend
Interface utilisateur permettant :
- l’envoi de messages
- l’affichage de l’historique
- la visualisation de la trace d’exécution
Backend API
Rôle :
- orchestrer le flux complet
- appeler le LLM
- appeler l’agent
- gérer
historyetstate - retourner la réponse finale avec la trace
Fichiers importants :
agent_loop.py: logique principalehistory_manager.py: gestion de l’historiquellm_client.py: communication avec le LLMagent_client.py: communication avec l’agentvalidator.py: validation des réponses
LLM API
Rôle :
- construire le prompt
- envoyer la requête à Azure OpenAI
- retourner une réponse JSON structurée
Important : le LLM ne fait aucune exécution. Il décide uniquement des actions.
Agent API
Rôle :
- exécuter les actions
- utiliser un registre d’actions
- retourner les résultats
Workflow

Liste des actions disponibles
create_filewrite_fileread_filedelete_filedelete_notebooklist_fileslist_notebooksread_notebookpython_to_notebookget_datetimesearch_websearch_jobsgenerate_image
Gestion du contexte
History
Stocke la conversation complète.
State
Stocke des données structurées :
- fichiers récents
- notebooks récents
- actions récentes
- résultats de recherche
Cela permet de comprendre des références comme :
itthemles deux fichiers
Trace d’exécution
Chaque étape contient :
- numéro de step
- source et destination
- titre
- contenu
- durée d’exécution
Exemple de fonctionnement
Requête :
Create a file hello.py and write print("hello world")
Étapes :
1. Backend → LLM
2. LLM → actions
3. Backend → Agent
4. Agent → résultats
5. Backend → LLM
6. LLM → réponse finale
Variables d’environnement
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_DEPLOYMENT=...
AZURE_OPENAI_API_VERSION=2024-12-01-preview
LLM_API_URL=http://llm_api:8002/generate
AGENT_API_URL=http://agent_api:8001/execute
Lancement
docker compose down
docker compose up --build
Frontend :
http://localhost:3000
Stockage des données
data/files: fichiersdata/notebooks: notebooksdata/images: imagesdata/temp: fichiers temporaires
Points forts
- architecture micro-services
- exécution réelle d’actions
- interaction LLM + outils
- gestion des fichiers et notebooks
- date et heure réelles
- recherche web et jobs
- trace complète
- compréhension du contexte
Limitations
- mémoire simple
- pas multi-utilisateur
- recherche basique
- validation partielle
- dossier
sharedpartiellement utilisé
Améliorations futures
- gestion multi-utilisateur
- validation stricte avec Pydantic
- amélioration de la recherche jobs
- amélioration de l’interface utilisateur
- ajout de nouvelles actions
- state avancé
Conclusion
AgentFlow-AI démontre un système d’agent complet.
Contrairement à un chatbot classique, il peut :
- analyser une requête
- planifier des actions
- exécuter des outils
- exploiter les résultats
- maintenir le contexte
- afficher le flux interne
Ce projet constitue une base solide pour un agent IA moderne.
Liens
-
Dépôt GitLab :
https://gitlab.com/ahmad-training-2026/agentflow-ai -
Portfolio :
https://ahmadaboalola.com/
Auteur
Ahmad Abo-Alola — Student Project (AI Developer Training)