ARGH — Agent Reliability & Guard for Harnesses

Comment les harnais d’agents travaillent, se trompent et s’améliorent.État des lieux et post-mortems des harnais d’agents.How agent harnesses work, make mistakes and improve.Agent harness landscape and post-mortems.

ARGH observe l’usine à harnais. Chaque fiche raconte un incident réel comme un service de cuisine : ce qui s’est passé, ce que le raté a provoqué et comment le voir venir.ARGH cartographie les harnais d’agents. Chaque dossier documente un incident réel, ses preuves, son mécanisme, son impact et ses signaux précurseurs.ARGH watches the harness factory. Each card tells a real incident as a kitchen service: what happened, what the mistake caused and how to see it coming.ARGH maps agent harnesses. Each dossier documents a real incident, its evidence, mechanism, impact and leading signals.

Un harnais, à quoi ça sert ?Comprendre le rôle d’un harnais d’agentsWhat is a harness for?Understand the role of an agent harness

Suivez une commande du ticket jusqu’à la table pour voir comment toute la cuisine tient ensemble.Suivez le parcours complet : entrée, orchestration, outils, exécution, validation, livraison et reprise.Follow an order from its ticket to the table and see how the whole kitchen holds together.Follow the complete path: input, orchestration, tools, execution, validation, delivery and recovery.

Découvrir le harnaisVoir le parcours expliquéDiscover the harnessSee the explained path

Ce qui vient d’arriverIncidents nouveaux ou mis à jourWhat just came inNew or updated incidents

Toute nouvelle histoire apparaît ici, même si la cuisine ne sait pas encore où la ranger.Tout nouvel incident apparaît ici, y compris lorsqu’aucun concept existant ne permet encore de le classer.Every new story appears here, even when the kitchen does not yet know where it belongs.Every new incident appears here, including when no existing concept can classify it yet.

Nouvelle ficheNouvel incidentNew cardNew incidentLes plans de travailIsolation et concurrenceThe worktopsIsolation and concurrency
Nouveau le 2026-10-07New 2026-10-07Incident du 2026-10-06Incident 2026-10-06

L'ancien responsable peut revenir après que la fiche a changéToolHive ajoute un CAS pour les credentials DCRThe former cook can wake up after the record has changedToolHive adds atomic DCR compare-and-set updates

Un commis vérifie qu'il tient le cahier, puis s'arrête pendant qu'un autre prend sa place. Une nouvelle méthode acceptée compare encore la fiche au moment de l'écriture pour protéger le remplaçant.ToolHive fusionne une primitive DCR compare-and-set contre les écritures d'un détenteur de lease suspendu puis périmé. Vérifier la lease avant l'écriture ne suffit pas si une relève survient entre les deux.A cook checks that the book is theirs, then pauses while someone else takes over. The accepted primitive checks the saved value at writing time so the returning cook cannot overwrite the replacement's entry merely on old authority.The new internal API couples expected-value comparison and credential mutation atomically. It targets the time-of-check/write gap left by a lease holder that resumes after expiry and replacement.

Nouvelle ficheNouvel incidentNew cardNew incidentLa fermeture et la repriseAnnulation et récupérationClosing and reopeningCancellation and recovery
Nouveau le 2026-10-07New 2026-10-07Incident du 2026-10-04Incident 2026-10-04

Le reçu ne part pas, mais le plat a déjà été préparéAgent Framework : un re-poll peut répéter des outils déjà exécutésThe receipt failed to leave, but the cook already made the dishAgent Framework: reported duplicate effects after failed poll submission

Dans l'exercice publié, le commis prépare le plat puis échoue à faire partir son reçu. Redemander l'état avec le même billet lui fait préparer encore ce plat ; nous n'avons pas rejoué l'exercice.Le rapport Python décrit un poll qui exécute les fonctions puis échoue en soumettant leurs résultats. Le token resté sur la requête d'outils peut faire répéter les effets au re-poll ; le repro upstream n'est pas exécuté ici.The published rehearsal has a cook finish a dish before its receipt fails to be sent. Asking again with the old slip makes the dish get prepared again; we did not repeat that rehearsal.The reported fault separates successful tool execution from failed result submission. Reusing a continuation token that still denotes the tool request can replay the functions rather than merely retry the submission.

Nouvelle ficheNouvel incidentNew cardNew incidentLes ustensiles et les machinesOutils et infrastructureUtensils and machinesTools and infrastructure
Nouveau le 2026-10-07New 2026-10-07Incident du 2026-10-02Incident 2026-10-02

Un comptoir d'essai pour suivre la commande du début à la finA2A annonce un CLI officiel pour les messages et tâchesA test counter can follow the order without another cook interpreting itA2A introduces an official scriptable task client

La maison présente un comptoir pour trouver un cuisinier, lui transmettre une commande et suivre son travail. Des fiches régulières et des signes de réussite ou d'échec doivent aider aux essais. L'annonce est vérifiée ; nous n'avons pas installé ni essayé ce comptoir.Le document officiel présente A2A CLI v1.0 : découverte d'Agent Cards, envoi de messages, suivi des tâches et streaming. JSON et codes de sortie fournissent une interface exploitable par scripts. L'annonce et son patch sont lus, sans installation ni round-trip exécuté.The house announces a test counter for finding a cook, sending an order and watching its progress. Consistent records and success-or-failure signals can support repeatable checks. We verified the announcement, not an installed or exercised counter.A2A's official announcement describes a non-agent CLI surface for discovery, messaging and task lifecycle operations. Structured output and exit status make the interface suitable for scripted tests. No interoperability exchange was run in this review.

Nouvelle ficheNouvel incidentNew cardNew incidentVérifier le platValidation et preuvesChecking the dishValidation and evidence
Nouveau le 2026-10-07New 2026-10-07Incident du 2026-10-06Incident 2026-10-06

Le vieux bilan part à la poubelle avant l'arrivée du nouveauSWE-agent propose de préserver le rapport précédent en cas de collecte ambiguëDo not discard the last check sheet before its replacement arrivesSWE-agent proposes validation before evaluation-report replacement

Le chef jette le dernier bilan avant de compter les nouveaux. Il peut alors n'en trouver aucun, ou plusieurs sans savoir lequel choisir. Une réparation est proposée pour garder l'ancien bilan. Elle reste ouverte et n'a pas été essayée ici.Une PR SWE-agent ouverte rapporte une suppression prématurée de results.json dans move_sb_cli_report. Le nombre de rapports entrants serait vérifié après cette suppression. Le diagnostic et le correctif proposé ne sont pas reproduits ni établis comme livrés.The old inspection sheet is discarded before the chef checks what arrived to replace it. There may be no new sheet, or an unclear choice between several. A proposal would keep the previous one safe; no delivered or independently tested repair is established.The report describes destructive ordering in evaluation collection: the prior result is removed before a unique incoming report is confirmed. The open proposal reverses that order. Available evidence is its body and status, not independent execution evidence.

Nouvelle ficheNouvel incidentNew cardNew incidentLa brigadeRôles et orchestrationThe brigadeRoles and orchestration
Nouveau le 2026-10-07New 2026-10-07Incident du 2026-10-05Incident 2026-10-05

La liste sans ustensile ne veut pas dire tous les ustensilesCrewAI propose de fermer une allowlist explicitement videAn empty permitted list does not mean the whole cupboardCrewAI proposes deny-all for an explicitly empty allowlist

Le chef donne une liste qui ne permet aucun ustensile, mais le commis la traite comme s'il n'avait reçu aucune restriction. Une proposition ouverte corrige cette inversion.Une PR ouverte rapporte que StaticToolFilter traitait allowed_tool_names=[] comme None via truthiness, exposant tous les outils. Elle propose de distinguer ces deux états.The chef supplies a list permitting no utensils, but the cook treats it like no restriction was supplied. An open proposal addresses that inversion.The reported StaticToolFilter behavior conflates an explicitly empty allowed-tool set with an omitted one. The proposed change preserves the meaning of a supplied restriction rather than inferring unrestricted access from its emptiness.

Nouvelle ficheNouvel incidentNew cardNew incidentLa réserveDonnées, mémoire et étatThe pantryData, memory and state
Nouveau le 2026-10-07New 2026-10-07Incident du 2026-10-01Incident 2026-10-01

Une nouvelle page ne devrait pas recopier tout le serviceGemini CLI ajoute des deltas au lieu de l'historique completA new page should not copy the whole evening againGemini CLI appends history deltas instead of repeated full snapshots

À chaque nouvelle commande, le commis ajoutait encore une copie de toute la soirée. La correction note seulement les changements : ajouter des pages ne suffit pas si chacune répète toutes les précédentes.ChatRecordingService remplace les réécritures de l'historique complet par des deltas et patchs ajoutés au journal. La forme append-only seule ne borne pas le coût si chaque entrée réembarque tout le passé.Each new order used to bring another copy of the entire evening into the notebook. The repair records changes instead; adding pages is no economy when each repeats all the earlier ones.The change addresses what is appended, not merely whether writes are append-only. Delta/patch recording avoids repeatedly persisting the full conversation history at each turn.

Explorer toute la cuisineExplorer tout le cycleExplore the whole kitchenExplore the whole lifecycle

Toutes les fiches sont rangées du menu au cahier de la maison.Tous les dossiers sont classés de la définition à la traçabilité.Every card is arranged from the menu to the house notebook.Every dossier is classified from definition to traceability.

Préparer le serviceDéfinir et préparerPrepare serviceDefine and prepare

Avant que le travail commenceAvant l’exécutionBefore work beginsBefore execution

01

Le menu et les recettesObjectifs et instructionsThe menu and recipesObjectives and instructions

Ce qui doit être préparé, les règles à suivre et ce qui peut rester écrit trop longtemps.Spécifications, consignes, politiques et dérives de portée ou de persistance.What must be prepared, the rules to follow and what may stay written for too long.Specifications, instructions, policies and scope or persistence drift.

4 fiches4 dossiers4 cards4 dossiers
02

Les fournisseursDépendances externesThe suppliersExternal dependencies

Ce qui arrive d’une autre maison et peut changer sans prévenir la brigade.Services, bibliothèques et projets amont dont le comportement échappe au système.What comes from another house and may change without warning the brigade.Services, libraries and upstream projects whose behavior is outside the system.

7 fiches7 dossiers7 cards7 dossiers
03

La réception des commandesEntrées et déclencheursReceiving ordersInputs and triggers

Ce qui a été demandé, reçu, mal compris ou déclenché deux fois.Requêtes, événements, contrats d’entrée et déclenchements concurrents.What was ordered, received, misunderstood or started twice.Requests, events, input contracts and concurrent triggers.

5 fiches5 dossiers5 cards5 dossiers
04

La réserveDonnées, mémoire et étatThe pantryData, memory and state

Ce qui est disponible, absent, inaccessible, périmé ou pris pour autre chose.Persistance, mémoire, cache, secrets et distinction entre absence, erreur et inconnue.What is available, missing, unreachable, stale or mistaken for something else.Persistence, memory, cache, secrets and the distinction between absence, error and unknown.

13 fiches13 dossiers13 cards13 dossiers
05

La mise en placeConfiguration et environnementThe mise en placeConfiguration and environment

Tout ce qui doit être prêt avant de commencer : produits, poste, règles et matériel.Configuration, initialisation, environnement et préconditions d’exécution.Everything that must be ready before starting: ingredients, station, rules and equipment.Configuration, initialization, environment and execution preconditions.

22 fiches22 dossiers22 cards22 dossiers

Faire le travailExécuter le travailDo the workExecute the work

Pendant le servicePendant l’exécutionDuring serviceDuring execution

06

Les plans de travailIsolation et concurrenceThe worktopsIsolation and concurrency

Ce qui se mélange lorsque plusieurs commis travaillent au même endroit.Espaces isolés, écritures concurrentes, branches et contamination d’état.What gets mixed up when several cooks work in the same place.Isolated spaces, concurrent writes, branches and state contamination.

13 fiches13 dossiers13 cards13 dossiers
07

La brigadeRôles et orchestrationThe brigadeRoles and orchestration

Qui fait quoi, qui peut arrêter le service et qui répond du résultat.Responsabilités, permissions, coordination, arbitrage et délégation.Who does what, who may stop service and who owns the result.Responsibilities, permissions, coordination, arbitration and delegation.

18 fiches18 dossiers18 cards18 dossiers
08

Les ustensiles et les machinesOutils et infrastructureUtensils and machinesTools and infrastructure

Ce que le matériel permet, refuse ou semble avoir fait sans réellement le faire.Outils, API, runners, infrastructure et capacités réellement disponibles.What the equipment allows, refuses or appears to have done without really doing it.Tools, APIs, runners, infrastructure and capabilities actually available.

11 fiches11 dossiers11 cards11 dossiers
09

La cuissonExécution et cycle de vieCookingExecution and lifecycle

Ce qui commence, dure trop longtemps, s’arrête mal ou recommence en double.Démarrage, timeout, annulation, retry, concurrence et terminaison.What starts, runs too long, stops badly or starts again twice.Startup, timeout, cancellation, retry, concurrency and termination.

12 fiches12 dossiers12 cards12 dossiers

Vérifier et servirValider et livrerCheck and serveValidate and deliver

Avant et après l’envoi en salleAvant et après la livraisonBefore and after the dining roomBefore and after delivery

Fermer et apprendreRécupérer et capitaliserClose and learnRecover and retain knowledge

Après le serviceAprès l’exécutionAfter serviceAfter execution