Skip to main content
Un programme peut regrouper plusieurs blocs AGENT. Society les ordonnance, distribue les messages et conserve une trace par agent.

Un hôte par agent

La fonction build() de l’hôte renvoie des dictionnaires indexés par les noms déclarés :
society.py
Un hôte fourni pour un nom absent du programme est refusé. Un agent sans hôte déclaré reste visible comme tel lors des inspections hors ligne.

Communiquer

Les messages suivent les contrats du langage. Le runtime conserve l’émetteur, le destinataire et la charge utile dans la trace.
Le destinataire le traite dans un gestionnaire :
RECEIVE remet les messages en attente pendant le cycle de l’agent destinataire.

Ce qu’un autre agent envoie n’est pas fiable

Depuis la v1.9, une charge utile MESSAGE, un retour DELEGATE et une lecture SHARED portent des sources non fiables. Un agent compromis ou trompé ne doit pas pouvoir choisir la cible de l’action d’un autre. Le destinataire re-valide la cible avec un outil à lui :

Déléguer une capacité

DELEGATE n’est pas un raccourci autour des règles. Le sous-agent doit être déclaré comme un TOOL, autorisé par la politique et implémenté dans host.subagents.

Exécuter une société

Le runtime affiche ensuite les traces, les messages et l’état partagé.
  • agentl run society.agent --durable runs/society place toute la société sous un seul journal durable.
  • agentl.aio.AsyncSociety fait tiquer les agents en même temps, par tours synchronisés. Le résultat ne dépend pas de l’ordonnanceur. Voir Exécution asynchrone.

Principes de conception

  • donnez à chaque agent un objectif et une politique complets ;
  • échangez des faits ou des demandes structurés, pas un prompt global partagé ;
  • bornez les sorties de délégation par EXPECT ;
  • testez l’absence, le retard et la contradiction des messages, et un expéditeur hostile (GIVEN MESSAGE … FROM attacker) ;
  • re-validez toute cible reçue d’un autre agent ;
  • gardez les actions à risque sous la politique de l’agent qui les exécute.
Le multi-agent ne remplace pas un plan. Créez plusieurs agents lorsque les rôles, capacités ou politiques diffèrent réellement, pas pour découper artificiellement une procédure linéaire.