AGENT. Society les ordonnance, distribue les messages et conserve une trace par agent.
Un hôte par agent
La fonctionbuild() de l’hôte renvoie des dictionnaires indexés par les noms déclarés :
society.py
Communiquer
Les messages suivent les contrats du langage. Le runtime conserve l’émetteur, le destinataire et la charge utile dans la trace.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 utileMESSAGE, 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é
agentl run society.agent --durable runs/societyplace toute la société sous un seul journal durable.agentl.aio.AsyncSocietyfait 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.