Quelles promesses sont appliquées : Zetetic Agents, suivi dans son code
L’affirmation sur l’emballage est inhabituellement vérifiable : pas une bibliothèque de prompts, une méthodologie avec application au moment du commit.1 Une affirmation pareille se contrôle, et ce dossier la contrôle, garantie par garantie. Le critère est simple : une garantie est appliquée quand un hook, un script ou un test peut rendre un code de sortie non nul qui arrête réellement l’action, et elle est demandée quand elle n’existe qu’en prose adressée à un modèle. Quatre sont appliquées et échouent fermé. Quatre autres le sont jusqu’à ce qu’on change un réglage. Une — la méthode qui donne son nom au produit — est en rapport seul jusqu’à opt-in. Et quatre-vingt-dix-sept refus documentés sont de l’instruction, ce que le projet énonce lui-même.23
Cent vingt agents, et trois façons d’y entrer
Le roster n’est pas fait pour être parcouru. On nomme la forme de son problème et la forme choisit le motif,3 et ce qui est livré pour chacun est une méthode plutôt qu’un personnage : les citations, les gestes canoniques, les angles morts documentés, et les conditions dans lesquelles il doit refuser.4 L’affirmation distinctive est plus étroite et plus intéressante qu’il n’y paraît : ici, un agent peut dire qu’il ne sait pas.2
Trois voies mènent à ce catalogue et elles ne se recouvrent pas. L’hôte dispatche les vingt-trois agents d’équipe par correspondance sur leur description.5 Un script shell assemble les quatre-vingt-dix-sept motifs de raisonnement, et il vaut la peine de savoir exactement ce qu’il fait : il imprime le fichier d’agent. Aucun modèle n’est appelé.6 Seul le script de lancement démarre un processus, et c’est le seul endroit où une garantie a des dents.9
Ce qui bloque vraiment, et à quelle condition
Quatre garanties tiennent sans échappatoire. Une délégation ne peut pas démarrer sans contrat validé.9 Une définition ayant un appelant vivant ne peut pas être supprimée, et la garde échoue fermé sur « cannot determine » plutôt qu’ouvert.21 Un appel qui exposerait des secrets sort avec un code bloquant.20 Et un gate d’acceptation ne passe que si sa commande sort en zéro, un ensemble vide valant rejet.22
Quatre autres sont appliquées jusqu’à ce que quelqu’un change un réglage, et l’une d’elles est mal énoncée dans le README. Il dit que les absolus non sourcés sont bloqués sous tous les profils ;17 sous le profil permissif, le checker compte les erreurs, les imprime, et sort en zéro.16 Les noms de règles, eux, ne peuvent pas être désactivés — cette tentative sort en 2 — mais la sévérité, si.18 Vient alors la plus importante : la colonne zététique, la méthode en quatre temps qui donne son nom au produit, est en rapport seul par défaut et ne bloque que sur opt-in, et sa détection est une heuristique qu’une seule recherche web satisfait.19
Le contrat est la seule chose avant une mutation
Quand un agent est lancé dans un dépôt avec les permissions contournées, la question est de savoir ce qui se tient entre le lancement et la copie de travail. La réponse ici est un fichier, validé avant que rien ne soit touché : pas de contrat, pas de fichier de contrat, ou pas d’interpréteur Python refusent chacun le lancement d’emblée.9 Le schéma exige des chemins possédés, des chemins exclus, une autorité de push sans valeur par défaut, des artefacts de rendu, et un oracle d’acceptation qu’il définit comme le signal externe décidant de l’achèvement, jamais un auto-rapport.10
Deux détails élèvent cela au-dessus d’une liste à cocher. Le verrou rejoue toute la validation au moment de l’enregistrement, explicitement pour couvrir la course entre le premier contrôle et le lancement,12 et deux délégations aux chemins qui se recoupent sont refusées plutôt que mises en file, ce que le schéma énonce franchement en admettant que ce n’est pas de la sérialisation.11 L’identité de l’agent est fixée par le site de lancement, au motif déclaré qu’un sous-agent ne doit pas pouvoir forger la sienne.13
Ce qui est mesuré, et ce qui a filé sous le gate
Le travail de mesure est ici réel et d’une discipline inhabituelle. Un benchmark apparié compare un skill en ligne à un sous-agent lancé, protocole gelé avant qu’aucun résultat n’existe, cinq répétitions, ordre randomisé, deux évaluateurs aveugles, données brutes et scorées commitées.28 Son résultat n’est pas le plus flatteur : lancer a coûté plus cher à chaque run, et a été plus lent là où l’écart atteignait la significativité.29 La fiche de routage va plus loin et publie un plafond : deux annotateurs ne s’accordent sur la forme que 39 % du temps, donc tout score de routage est rapporté contre 39 et non contre 100.3031 Un auditeur structurel passe sur les 120 fichiers d’agent, et un contrôle de comptes vérifie trente-sept affirmations documentées contre l’arbre.327
Reste la phrase que chaque utilisateur lit. Le bandeau de session imprime quatre nombres, et trois sont faux à cette révision : 63 skills là où il y en a 81, 14 hooks là où il y a 23 enregistrements, 17 outils là où il y en a 57.26 L’index des commandes annonce dix-sept commandes là où l’arbre en porte vingt-sept.27 Le document de comptage se contredit à quatre paragraphes d’écart, et diverge de sa propre commande prescrite sur le nombre d’outils.8 Aucun de ces fichiers n’est dans le registre que lit le contrôle de dérive.7 Le gate fonctionne ; on lui a simplement donné une liste de cinq fichiers, et la phrase la plus visible du produit n’y figure pas.
Pourquoi c’est la bonne chose à publier
Un projet dont la première règle est « pas de source, dis que tu ne sais pas » appelle exactement ce traitement, et y survit largement. L’application qui compte — contrat, suppression, secrets, acceptation — tient et échoue fermé. Le benchmark rapporte contre l’intérêt de son propre produit. Le score de routage est publié contre un plafond mesuré plutôt que contre un chiffre rond. Ce qui ne tient pas est plus étroit et réparable : une ligne de README qui contredit le checker,17 un budget de contexte documenté reposant sur un hook délibérément retiré,34 et quatre auto-descriptions qui ont dérivé parce que personne ne les a ajoutées à une liste.26278 Les nommer n’est pas une réserve sur l’outil. C’est le standard de l’outil, appliqué à l’outil.