gAgent

Tutoriels

  • Tutoriels
    • I — Les bases
      • Introduction — Les systèmes multi-agents
        • Qu’est-ce qu’un système multi-agents ?
        • Les agents dans gAgent
        • La plateforme FIPA
        • L’AMS — qui sont les agents ?
        • Le DF — que font les agents ?
        • Les outils de supervision
        • Déploiement sur plusieurs machines
        • Ce qu’il faut retenir
      • 1 — Premiers pas
        • Prérequis système
        • Étape 1 — Compiler gAgent
        • Étape 2 — Copier le template dans votre projet
        • Étape 3 — Compiler votre agent
        • Étape 4 — Lancer
        • Suite
      • 2 — Structurer son main
        • Le squelette de base
        • initAgentSystem() — préparer l’environnement
        • agent.init() — démarrer un agent
        • syncAgentSystem() — attendre la fin
        • Arrêter la simulation
        • setup() — donner ses tâches à l’agent
        • action() et done() — le cycle d’un behaviour
      • 3 — Les behaviours
        • Qu’est-ce qu’un behaviour ?
        • Vue d’ensemble des types
        • Behaviour — le behaviour de base
        • OneShotBehaviour — faire quelque chose une seule fois
        • CyclicBehaviour — tourner indéfiniment
        • WakerBehaviour — attendre puis agir
        • TickerBehaviour — répéter à intervalle régulier
        • Combiner plusieurs behaviours
        • Résumé
    • II — La communication
      • 4 — La communication FIPA ACL
        • Pourquoi un langage de communication entre agents ?
        • La notion de performative
        • Structure d’un message
        • Les performatives disponibles
        • Comment les performatives s’enchaînent
        • Ce qu’il faut retenir
      • 5 — Envoyer et recevoir un message
        • Les includes nécessaires
        • Créer un message
        • Préparer la réception avant d’envoyer
        • Envoyer un message
        • Recevoir un message
        • Lire le contenu d’un message reçu
        • Répondre à un message
        • Exemple complet — deux agents qui se parlent
        • Résumé des fonctions
      • 6 — Les protocoles d’interaction
        • Qu’est-ce qu’un protocole ?
        • Pourquoi les protocoles existent-ils ?
        • Les protocoles disponibles dans gAgent
        • Comment gAgent simplifie les protocoles
      • 7 — Le protocole Request
        • La logique du protocole
        • Les deux rôles
        • L’initiateur — RequestInitiator
        • Le participant — RequestParticipant
        • Cas avec AGREE — traitement long
        • Exemple complet
        • Résumé
      • 8 — Le Contract Net
        • La logique du Contract Net
        • Le déroulement complet
        • Les deux rôles
        • L’initiateur — ContractNetInitiator
        • Le participant — ContractNetParticipant
        • Assembler le tout dans main()
        • Les timeouts
        • Résumé des méthodes
      • 9 — Le protocole Subscribe-Notify
        • La logique du protocole
        • Les deux rôles
        • L’abonné — SubscribeInitiator
        • L’éditeur — SubscribeParticipant
        • Refuser un abonnement
        • Exemple complet
        • Résumé
    • III — L’environnement
      • 10 — Le SMA situé : qu’est-ce qu’un environnement ?
        • Le débat scientifique
        • Le positionnement de gAgent
        • Ce que gAgent appelle un environnement
      • 11 — L’environnement dans gAgent
        • La classe Environnement
        • La classe VisualAgent
        • Comment les agents publient leur état
        • Lancer l’environnement
        • Résumé du flux
      • 12 — Coder un environnement simple
        • L’environnement
        • Fonctions utilitaires
        • Les behaviours de déplacement
        • Les agents
        • Le main
        • Lancer la simulation
        • Les formes disponibles
      • 13 — Visualiser avec agentview
        • Lancer agentview
        • Ordre de lancement recommandé
        • Comment ça fonctionne
        • Personnaliser l’apparence des agents
        • Exemple — agent qui change de couleur selon son état
        • Ce qu’affiche agentview
      • 14 — Les NSAPs : capturer et rejouer l’état
        • À quoi ça sert ?
        • La pile NSAP
        • Exemple — capturer et restaurer
        • Afficher l’index des snapshots
        • Restaurer un état précédent
        • Consulter les NSAPs depuis agentview
        • Résumé
    • IV — Agents LLM
      • 15 — Agents LLM : le couplage neuro-symbolique
        • L’idée de base
        • Pourquoi cette architecture ?
        • Ce que gAgent fournit
        • Les LLM supportés
      • 16 — Écrire un agent Python
        • La bibliothèque gagent_py
        • Structure d’un agent Python
        • Exemple — agent avec OpenAI
        • Exemple — agent avec Claude (Anthropic)
        • Exemple — agent avec Ollama (local, sans clé API)
        • Gestion des erreurs
      • 17 — Intégrer un agent LLM en C++
        • PythonBehaviour
        • Exemple complet
        • Lancer l’exemple
        • Robustesse de PythonBehaviour
        • Plusieurs agents LLM simultanés
    • V — La plateforme
      • 18 — AMS et DF : annuaires de la plateforme
        • La plateforme est-elle obligatoire ?
        • Le DF — Directory Facilitator
        • Déclarer plusieurs services
        • L’AMS — consulter l’état des agents
        • Résumé
      • 19 — agentmanager et agentmonitor
        • agentmanager
        • agentmonitor
        • Ordre de lancement recommandé
        • Référence des commandes
      • 20 — Déploiement multi-machine
        • Le principe
        • Exemple — deux agents sur deux machines
        • Attribution des ports
        • Plusieurs agents sur la même machine distante
        • Mélanger agents locaux et distants
        • Limitations actuelles
        • Résumé

Guide utilisateur

  • Vue d’ensemble
    • Objectif
    • Architecture technique
    • Modules
    • Standards respectés
  • Démarrage rapide
    • Prérequis
    • Compilation
      • Options CMake
    • Premier agent
    • Exemple d’échange ACL
    • Lancer les tests
    • Visualisation web
  • Architecture
    • Structure du projet
    • Cycle de vie d’un agent
    • États d’un agent
    • Communication inter-agents
    • Parser FIPA ACL
      • Format d’un message FIPA ACL
  • Cycle de vie d’un agent
    • États
    • Diagramme d’états
    • Transitions et méthodes
    • Cycle complet d’exécution
    • Suspension et reprise des behaviours
    • Signaux RT et concurrence
    • Enregistrement FIPA
  • Plateforme gAgent
    • Démarrage
      • Configuration réseau
      • Commandes interactives
    • AMS — Agent Management System
      • Protocole (socket Unix /tmp/gagent_ams.sock)
      • Exemple Python (test/script)
    • DF — Directory Facilitator
      • Protocole (socket Unix /tmp/gagent_df.sock)
      • Intégration C++ (côté agent)
    • agentmanager — CLI de gestion
      • Référence des commandes
      • Sortie de agentmanager list
      • Mode watch
      • Contrôle des agents
    • agentmonitor — logs UDP
    • Socket Environnement
      • Protocole (socket Unix /tmp/gagent_env.sock)
      • Intégration C++
      • Visualisation web
    • Mode dégradé
  • Visualisation web — agentview
    • Démarrage
      • Variables d’environnement
    • API HTTP
      • Format /api/agents
      • Format /api/ams
    • Shapes SVG supportées
    • Interface utilisateur
    • Intégration dans l’Environnement
    • Protocole du socket Environnement
  • FIPA ACL
    • Performatives
    • Champs d’un message
    • Usage en C++
      • Créer un message
      • Sérialiser
      • Parser
      • Créer une réponse
  • Protocoles d’interaction FIPA
    • Contract Net (FIPA SC00029H)
      • Inclusion
      • ContractNetInitiator
      • ContractNetParticipant
    • Subscribe-Notify (FIPA SC00035H)
      • Inclusion
      • SubscribeInitiator
      • SubscribeParticipant
      • Exemple complet (Subscribe-Notify)
    • Request (FIPA SC00026H)
      • Inclusion
      • RequestInitiator
      • RequestParticipant
      • Exemple complet
    • Messagerie ACL — AclMQ
      • Exemple complet (Contract Net)
  • Agents Python et LLM
    • Architecture
    • Protocole JSON
    • PythonBehaviour (C++)
    • Librairie Python — gagent_py
      • Classe Agent
      • Classe ACLMessage
    • Intégration LLM
    • Exemple complet
    • Robustesse
  • Behaviours
    • Hiérarchie
    • Utilisation
      • Créer un behaviour
      • Enregistrer dans setup()
    • TickerBehaviour
    • WakerBehaviour
    • Parallélisme
  • Messagerie entre agents
    • Architecture de communication
    • Helpers de messagerie
    • Exemple complet : REQUEST ↔ INFORM
    • Pattern général d’un agent communicant
    • Déploiement multi-machine
    • Thread-safety
  • Logging structuré (JSON Lines)
    • Activation
    • Format d’une ligne
    • Événements émis
      • agent_start
      • agent_stop
      • agent_lifecycle
      • acl_send
      • acl_recv
    • Utilisation depuis le code C++
    • Exploitation avec jq
    • Intégration ELK / Grafana Loki
  • Snapshots de simulation (NSAP)
    • Cas d’usage
    • API
    • Exemple 1 — Retour arrière simple
    • Exemple 2 — Backtracking d’un planificateur
    • Exemple 3 — Exploration de scénarios (branches)
    • Exemple 4 — Replay pas-à-pas
    • Inspecter la pile
    • Intégration avec la planification neuro-symbolique

Référence API

  • API — Core
    • Agent
      • gagent::Agent
        • Agent()
        • ~Agent()
        • is_notification()
        • scheduler()
        • exthread()
        • control_Thread()
        • listener_extern_signals_Thread()
        • control_message()
        • init()
        • _init()
        • setup()
        • takeDown()
        • doDelete()
        • doActivate()
        • doSuspend()
        • doWait()
        • doWake()
        • doMove()
        • doAction()
        • addBehaviour()
        • removeBehaviour()
        • getAgentId()
        • sendMsgMonitor()
        • signal_handler()
        • addAttribut()
        • removeAttribut()
        • setAttribut()
        • getAttribut()
        • attributUpdated()
        • agentStatus
        • chldpid
        • ppid
        • this_agent
        • AGENT_UNKNOWN
        • AGENT_CREATED
        • AGENT_INITED
        • AGENT_ACTIVE
        • AGENT_SUSPENDED
        • AGENT_TRANSIT
        • AGENT_WAITING
        • AGENT_DELETED
        • AGENT_WAKING
    • AgentCore
      • gagent::AgentCore
        • initAgentSystem()
        • stopAgentSystem()
        • syncAgentSystem()
        • initEnvironnementSystem()
    • AgentID
      • gagent::AgentID
        • AgentID()
        • setName()
        • setAddresse()
        • getAgentName()
        • getAgentID()
        • ~AgentID()
    • Behaviour
      • gagent::Behaviour
        • Behaviour()
        • Behaviour()
        • action()
        • done()
        • onStart()
        • onEnd()
        • doDelete()
        • doActivate()
        • doSuspend()
        • doWait()
        • doWake()
        • doMove()
        • doAction()
        • ~Behaviour()
        • this_agent
      • gagent::OneShotBehaviour
        • OneShotBehaviour()
        • OneShotBehaviour()
        • action()
        • done()
        • ~OneShotBehaviour()
      • gagent::CyclicBehaviour
        • CyclicBehaviour()
        • CyclicBehaviour()
        • action()
        • done()
        • ~CyclicBehaviour()
      • gagent::TickerBehaviour
        • TickerBehaviour()
        • TickerBehaviour()
        • action()
        • done()
        • onTick()
        • ~TickerBehaviour()
      • gagent::WakerBehaviour
        • WakerBehaviour()
        • WakerBehaviour()
        • action()
        • done()
        • onWake()
        • ~WakerBehaviour()
    • BehaviourFactory
      • gagent::BehaviourFactory
        • BehaviourCreator
        • registerBehaviour()
        • create()
        • isRegistered()
        • BehaviourFactory()
        • operator=()
        • getInstance()
    • DFService
      • gagent::DFService
        • DFService()
        • ~DFService()
        • registerService()
  • API — Messaging
    • ACLMessage
      • gagent::ACLMessage
        • Performative
        • ACLMessage()
        • ACLMessage()
        • toString()
        • createReply()
        • setPerformative()
        • setSender()
        • addReceiver()
        • setContent()
        • setLanguage()
        • setEncoding()
        • setOntology()
        • setProtocol()
        • setConversationId()
        • setReplyWith()
        • setInReplyTo()
        • getPerformative()
        • getSender()
        • getReceivers()
        • getContent()
        • getLanguage()
        • getEncoding()
        • getOntology()
        • getProtocol()
        • getConversationId()
        • getReplyWith()
        • getInReplyTo()
        • parse()
        • performativeToString()
        • stringToPerformative()
    • AgentIdentifier
      • gagent::AgentIdentifier
        • AgentIdentifier()
        • AgentIdentifier()
        • name
        • addresses
  • API — Environnement
    • Environnement
      • gagent::Environnement
        • Environnement()
        • ~Environnement()
        • start()
        • clear_nsap()
        • push_nsap()
        • pull_nsap()
        • get_nsaps()
        • init_env()
        • link_attribut()
        • event_loop()
        • link_id()
        • link_name()
        • link_pos_x()
        • link_pos_y()
        • link_color()
        • link_shape()
        • link_size()
        • link_size_x()
        • link_size_y()
        • link_size_z()
        • link_val()
        • make_agent()
        • readDataFromQueueMsg()
        • serve()
        • sendMsgMonitor()
        • id
        • name
        • shape
        • size
        • size_x
        • size_y
        • size_z
        • color
        • pos_x
        • pos_y
        • val
        • pattern
        • vals
        • list_visual_agents
        • map_width
        • map_height
      • Méthodes NSAP
      • Socket de visualisation
    • VisualAgent
      • gagent::VisualAgent
        • VisualAgent()
        • VisualAgent()
        • VisualAgent()
        • VisualAgent()
        • VisualAgent()
        • ~VisualAgent()
        • id
        • name
        • shape
        • color
        • pattern
        • size
        • size_x
        • size_y
        • size_z
        • pos_x
        • pos_y
        • val
        • vals
    • EnvClient
  • API — Communication
    • CommunicationManager
      • gagent::CommunicationManager
        • CommunicationManager()
        • ~CommunicationManager()
        • registerChannel()
        • send()
        • receive()
        • getChannel()
        • closeAll()
        • CommunicationManager()
        • operator=()
  • API — Utilitaires
    • ErrorHandler
      • gagent::ErrorHandler
        • handleException()
        • logSystemError()
    • Logger
      • gagent::Logger
        • setLogLevel()
        • setLogFile()
        • log()
        • close()
        • debug()
        • info()
        • warning()
        • error()
        • critical()
        • logJson()
        • Logger()
        • operator=()
        • getInstance()

Développement

  • Feuille de route
    • Phase 1 — Stabilisation ✅
    • Phase 2 — Infrastructure FIPA ✅
    • Phase 3 — Neuro-symbolique 🎯
  • Contribuer
    • Compilation en mode développement
    • Structure d’un nouvel agent
    • Conventions de code
    • Ajouter un test
    • Mettre à jour la documentation
gAgent
  • Tutoriels
  • III — L’environnement
  • Afficher la source de la page

III — L’environnement

  • 10 — Le SMA situé : qu’est-ce qu’un environnement ?
  • 11 — L’environnement dans gAgent
  • 12 — Coder un environnement simple
  • 13 — Visualiser avec agentview
  • 14 — Les NSAPs : capturer et rejouer l’état
Précédent Suivant

© Droits d'auteur 2025, HD — Université Paris 8.

Compilé avec Sphinx en utilisant un thème fourni par Read the Docs.