Blog · Guide · 28 octobre 2026

Le manifeste d'agent AEGIS : chaque champ et ce qu'il impose

Aussi en: English, Español, Português, 日本語, Deutsch, 한국어, 简体中文, Italiano, हिन्दी · Tous les guides en français

Transparence : chez 100monkeys.ai, nous développons AEGIS ; lisez donc ce guide comme le récit de son fabricant. Il a été rédigé par l'un de nos agents d'IA à partir de la documentation publique d'AEGIS (en anglais), principalement l'Agent Manifest Reference, la CLI Reference, la Workflow Manifest Reference et Human Approvals, et relu par l'entreprise ; cette version française est une traduction du guide original en anglais. Les noms de champs, valeurs par défaut et messages de refus sont cités de ces pages.

AEGIS by 100monkeys.ai, in beta, exécute un agent à partir d'un seul fichier YAML. La documentation appelle le manifeste d'agent "the source of truth for an Agent's identity, capabilities, security constraints, and execution requirements." (la source de vérité sur l'identité, les capacités, les contraintes de sécurité et les besoins d'exécution d'un agent.) Ce guide le parcourt section par section et dit, pour chaque champ, ce que l'orchestrateur en fait.

Étape 1. Écrire l'en-tête

apiVersion: 100monkeys.ai/v1
kind: Agent
metadata:
  name: pr-reviewer
  version: "1.0.0"
  description: "Reviews pull request diffs and returns structured feedback."

apiVersion et kind doivent avoir exactement ces valeurs. name doit correspondre à ^[a-z0-9][a-z0-9-]{0,62}$, et la paire name et version doit être unique : redéployer la même paire échoue, sauf si vous passez --force. labels et annotations sont des tables clé-valeur facultatives pour la découverte et les notes.

Étape 2. Choisir un environnement d'exécution

spec.runtime est la seule partie obligatoire de spec. Donnez soit language et version (python, javascript, typescript, rust ou go, résolus vers une image officielle), soit une image pleinement qualifiée, jamais les deux ; language sans version est invalide. image_pull_policy vaut IfNotPresent par défaut. model nomme un alias de modèle de aegis-config.yaml, et un alias qui génère des images est refusé. isolation accepte inherit, docker, firecracker et process ; la référence marque docker comme Phase 1 et les deux autres comme Phase 2.

Étape 3. Lui donner une tâche

task.instruction est la consigne dont l'agent part, et la renseigner "auto-enables semantic validation" (active automatiquement la validation sémantique). task.prompt_template est un modèle Handlebars ; ses variables sont {{intent}}, {{instruction}}, {{input}}, {{iteration_number}}, {{previous_error}} et {{context}}. spec.input_schema, un JSON Schema avec type: object, déclare des entrées nommées et les valide avant que l'agent ne s'exécute.

Étape 4. Ne déclarer que l'accès dont il a besoin

"All permissions are deny-by-default." (Toutes les permissions sont refusées par défaut.) Sans spec.security, l'agent n'a ni réseau ni accès au système de fichiers. network.mode vaut allow (seulement l'allowlist), deny (tout sauf la denylist) ou none, qui "attaches no network interface to the container" (n'attache aucune interface réseau au conteneur). filesystem.read et filesystem.write listent des chemins, globs permis. Les ressources valent par défaut cpu: 1000 millicœurs, memory: "512Mi", disk: "1Gi" et timeout: "1800s", avec un maximum d'une heure. Quand l'agent peut faire deux essais ou plus, le délai doit contenir deux essais complets, 2 × (iteration_timeout + le timeout_seconds des juges) + 45 s, sinon l'agent "is refused on create and update" (est refusé à la création et à la mise à jour).

Étape 5. Monter ses volumes

Chaque entrée de spec.volumes[] a un name, une storage_class (ephemeral demande ttl_hours ; persistent demande source.volume_id), un mount_path sous /workspace et un access_mode. L'accès en lecture-écriture à un volume persistant est réservé à une seule exécution à la fois. Un volume qui ne peut pas être monté arrête l'itération : l'agent "never runs without its volume." (ne s'exécute jamais sans son volume.)

Étape 6. Régler comment il itère et ce qui compte comme terminé

execution.mode vaut iterative (par défaut) ou one-shot. max_iterations va de 1 à 20, 5 par défaut, et max_retries est le même champ. iteration_timeout vaut 600s par défaut et llm_timeout_seconds 300. Après chaque essai, validation s'exécute dans l'ordre : exit_code, json_schema, regex, semantic (un agent juge, min_score 0,7 par défaut) ou multi_judge. Un échec revient à l'agent sous la forme de {{previous_error}}. tool_validation juge chaque appel d'outil avant son exécution ; seules les entrées semantic y sont utilisées. outputs nomme les fichiers que l'exécution doit laisser, chacun avec un min_bytes et un magic facultatifs, et un fichier manquant fait échouer l'essai.

Étape 7. Accorder des outils

spec.tools accepte des chaînes comme "mcp:filesystem" ou des objets avec name, server et config. Pour exécuter des commandes, déclarez executor: "builtin:cmd" avec une subcommand_allowlist obligatoire, une table de commande vers premiers arguments autorisés ; tout autre appel "is rejected with a policy violation" (est rejeté pour violation de politique). L'orchestrateur vérifie que les déclarations permettent de faire le travail : un agent qui doit écrire des fichiers mais ne déclare aucun outil, ou qui déclare fs.write sans volume en lecture-écriture, est refusé au déploiement avec une phrase qui en donne la raison.

Étape 8. Passer la configuration et les secrets

Les valeurs de spec.env sont un littéral, "secret:<name>" (injecté depuis OpenBao et "never logged", jamais journalisé) ou "config:<key>". spec.security_context est réservé aux opérateurs de la plateforme ; un compte client qui le renseigne reçoit 403 Forbidden.

Étape 9. Valider, puis déployer

aegis agent deploy ./agent.yaml --validate-only
aegis agent deploy ./agent.yaml

--validate-only analyse et valide sans déployer. aegis agent show <AGENT_ID> réaffiche le manifeste enregistré.

Où va le oui d'un humain

Le manifeste d'agent n'a pas de champ d'approbation. Le oui d'une personne appartient à un workflow, dans un état de kind: Human : prompt est obligatoire, timeout vaut 3600s par défaut, et default_response est la réponse retenue à son expiration ; sans elle, le workflow échoue. Human Approvals indique que la transition input_equals_yes d'une porte accepte yes et input_equals_no accepte no, et qu'une réponse qu'aucune transition n'accepte est refusée et redemandée.

Ce que la documentation laisse ouvert

Ensuite

Pour exécuter un manifeste de bout en bout sur un serveur neuf, lisez Installer AEGIS sur un VPS Ubuntu neuf et lancer votre première tâche approuvée. AEGIS s'installe avec la commande affichée sur 100monkeys.ai :

curl -fsSL https://get.100monkeys.ai | bash

Installer AEGIS depuis 100monkeys.ai