Pierre KasparianAI & Data freelancer
← Retour à la catégorie
agents IAOpikobservabilitéorchestration LLM agents Pythonproduction

Harness agent IA : comment le rendre auto-réparateur

12 juin 2026 · 7 min de lecture · Guides

Pierre Kasparian

Freelance intégration IA · Spécialiste LLM, RAG · 11+ réalisations clients

Un agent IA en production tombe en panne. Vous ouvrez les traces, vous cherchez quelle étape a échoué, vous hypothèsez la cause, vous corrigez, vous redéployez. Deux semaines plus tard, une mise à jour du modèle casse quelque chose de différent, et la boucle recommence.

Réponse directe : le problème n'est pas l'outillage d'observabilité, qui est généralement correct. C'est que les outils de traces, de tests et de debugging sont des silos séparés. Aucun ne referme la boucle entre "quelque chose a cassé en production" et "ce quelque chose ne cassera plus". Opik connecte ces couches en une seule boucle auto-réparatrice.

Le problème central : l'observabilité sans réparation

La plupart des stacks d'agents IA en production donnent de la visibilité sur ce qui s'est passé : latence, tokens consommés, appels d'outils, traces LangChain ou CrewAI. C'est utile. Mais ça ne dit pas pourquoi ça a cassé, et ça ne fait rien pour que ça ne recasse pas.

Le cycle classique quand un agent échoue :

  1. Alerte ou ticket
  2. Plongée manuelle dans les traces
  3. Hypothèse sur la cause
  4. Patch
  5. Espoir que la régression ne revienne pas

Ce cycle se répète à chaque upgrade de modèle, à chaque ajout d'outil, à chaque changement de prompt. Plus le harness grossit, plus la maintenance est lourde.

Les 4 couches d'Opik

Opik est une plateforme open source (19 000+ étoiles GitHub, auto-hébergeable en 3 commandes) qui connecte observabilité, diagnostic automatique, tests et sandbox en une seule boucle. Elle supporte LangGraph, CrewAI, et une cinquantaine d'autres frameworks.

Couche 1 : tracing automatique

Un simple décorateur sur votre fonction agent capture tout :

import opik
 
@opik.track
def run_agent(user_input: str) -> str:
    # toute la logique de l'agent ici
    result = agent.invoke({"input": user_input})
    return result["output"]

Chaque appel LLM, chaque invocation d'outil, chaque étape de retrieval est enregistré. La configuration active au moment de l'exécution est associée à la trace, ce qui rend les inputs échoués entièrement reproductibles.

Couche 2 : Ollie, l'agent de diagnostic

Ollie est un agent de coding intégré qui lit les traces échouées et le code source, identifie les lignes problématiques, génère un diff, et attend l'approbation du développeur avant d'appliquer le fix.

Le workflow complet :

  1. Ollie lit la trace d'échec et le code source
  2. Il identifie les spans problématiques dans l'arbre de traces
  3. Il génère un diff pour approbation
  4. Une fois approuvé, il rejoue l'agent dans le sandbox contre l'input original
  5. Il produit une comparaison avant/après des traces
  6. Il enregistre automatiquement l'échec original comme test de régression

Ce qui distingue Ollie d'un simple reviewer de code : il raisonne sur les spans de traces, pas seulement sur les lignes de code. Il peut donc diagnostiquer des erreurs de comportement (mauvaise décision de routage, hallucination dans un outil) que le code seul ne révèle pas.

Couche 3 : suites de tests en langage naturel

Au lieu de métriques numériques sur des datasets labellisés, vous écrivez des assertions en langage clair :

"La réponse doit inclure les détails spécifiques du deal, pas seulement un décompte"
"La réponse ne doit jamais révéler d'informations non autorisées"
"L'agent doit appeler l'outil de recherche avant de répondre sur les données récentes"

Opik convertit ces assertions en checks LLM-as-a-judge (pass/fail). Le point clé : les traces de production échouées sont automatiquement ajoutées comme nouveaux cas de test. La suite grossit organiquement à chaque incident. Le harness devient de plus en plus difficile à casser avec le temps.

Couche 4 : sandbox agent complet

Contrairement aux playgrounds de prompts qui ne testent qu'un seul appel LLM en isolation, le sandbox Opik fait tourner l'agent complet de bout en bout dans l'UI. Vous pouvez changer de modèle, modifier les prompts ou ajouter des outils et observer les effets sur l'ensemble du graphe.

La boucle de self-repair complète

C'est l'insight central de l'article original d'Avi Chawla : le pouvoir n'est pas dans chaque couche individuellement, c'est dans leur intégration.

Incident production
        ↓
Ollie lit trace + code, propose un fix
        ↓
Développeur approuve
        ↓
Ollie rejoue dans sandbox sur l'input original
        ↓
Fix validé → sauvegardé comme blueprint
        ↓
Pointer d'environnement basculé vers staging
        ↓
Échec original enregistré comme test de régression permanent

Chaque incident résolu renforce le harness. Le système se répare et se solidifie avec le temps, au lieu de s'éroder.

Installation et auto-hébergement

L'auto-hébergement est un point important pour les équipes avec des contraintes RGPD : vos traces d'agent contiennent souvent des données utilisateur (requêtes, contexte de conversation, outputs). Les garder sur votre infra évite tout transfert vers un fournisseur externe.

# Démarrage local avec Docker
git clone https://github.com/comet-ml/opik
cd opik
docker compose up -d
 
# Ou via pip pour l'intégration Python
pip install opik

Configuration minimale pour connecter votre agent :

import opik
 
opik.configure(
    url="http://localhost:5173",  # votre instance self-hosted
    api_key="local"
)

Opik supporte également un mode cloud (app.comet.com/opik) si l'auto-hébergement n'est pas une contrainte.

Quand est-ce que ça vaut le coup de mettre en place Opik ?

Quelques signaux qui indiquent que la boucle manuelle coûte cher :

  • Les mêmes types de pannes reviennent après chaque mise à jour de modèle
  • La revue de PR d'agents prend plus de temps que la revue de code classique parce que le comportement est difficile à prédire
  • Vous n'avez pas de test de régression pour les cas qui ont déjà échoué en production
  • Chaque changement de prompt exige un test manuel sur un échantillon de conversations

Un harness qui couvre 20 scénarios de tests en langage naturel et capture les échecs de production automatiquement vaut des semaines de debug réactif.

TL;DR

Opik résout le problème des outils d'observabilité qui ne referment pas la boucle : traces automatiques, diagnostic par agent (Ollie), tests en langage naturel, sandbox complet. L'insight de fond : chaque incident production devient un test de régression permanent. Le harness se répare et se solidifie avec le temps. Auto-hébergeable, compatible LangGraph et CrewAI, 19 000+ étoiles GitHub.

Vous construisez des agents IA en production avec des contraintes de fiabilité ou de conformité ? Parlons de votre architecture.

À propos de l'auteur

Pierre Kasparian

Étudiant ingénieur en fin de cursus à l'UTT (Université de Technologie de Troyes) et freelance en intégration IA. Il déploie des LLM, pipelines RAG et agents IA pour des PME françaises et européennes, avec une attention sur le RGPD et hébergement européen. 11+ réalisations clients, dont Pretto et LiveSession.