Assez de chatbots, il est temps de créer de vrais agents avec OpenHarness
Vous connaissez ce sentiment quand ChatGPT vous donne une suggestion de code correcte, mais que pour l'utiliser réellement vous devez créer le fichier vous-même, coller le texte, exécuter les tests, puis corriger quelques imports ? Nous nous sommes habitués à appeler cela « l'assistance IA », alors qu'en réalité c'est juste une recherche avancée avec une interface de chat.
Il y a quelques jours, je suis tombé sur le dépôt OpenHarness de l'équipe HKUDS. Ces gars ont décidé que suffisamment de chatbots suffisaient—il est temps de donner aux modèles de langage des « mains ». Le projet est une infrastructure pour construire des agents autonomes qui ne se contentent pas de discuter, mais vivent dans votre terminal, naviguent sur le web et éditent du code d'eux-mêmes.
Qu'est-ce que l'Agent Harnessing
Les auteurs utilisent un terme approprié—Harness. L'idée est qu'un LLM seul n'est qu'un « cerveau dans un bocal ». Pour devenir un agent, il a besoin d'yeux (contexte), de mains (outils) et de mémoire.
OpenHarness est un framework Python qui gère tout le travail fastidieux :
- Gestion du cycle de la boucle d'Agent (requête — streaming — appel d'outil — répétition).
- Contrôle d'accès (pour que l'agent ne supprime pas accidentellement la racine de votre disque).
- Intégration avec MCP (Model Context Protocol).
- Organisation de la mémoire à travers des fichiers comme
MEMORY.md.
Ce qu'il y a de mieux, c'est que le projet ne vous bloque pas sur un cloud spécifique. Vous pouvez l'exécuter sur Claude ou OpenAI, ou faire passer un modèle local via Ollama.
Cinq choses qu'OpenHarness peut faire
J'ai exploré le code source et le README, et voici ce qui semble le plus utile pour le travail quotidien des développeurs.
Outils prêts à l'emploi
Le dépôt contient déjà plus de 40 outils implémentés. Ce n'est pas juste « exécuter un script bash ». Il y a la recherche de fichiers via Grep, le support des notebooks Jupyter, la navigation web, et même la possibilité de spawner d'autres agents pour déléguer des tâches. Les outils sont typés via Pydantic, donc le modèle comprend le schéma des données d'entrée sans hallucinations supplémentaires.
Système de compétences
Au lieu de gonfler le prompt système à la taille de « Guerre et Paix », OpenHarness utilise un chargement dynamique de compétences depuis des fichiers Markdown. Si un agent doit faire une revue de code, il charge review.md. S'il doit déployer un projet—il récupère la compétence correspondante. Cela économise des tokens et rend le comportement de l'IA plus prévisible.
Sécurité et niveaux d'accès
J'ai toujours eu peur de donner à l'IA un accès au terminal. OpenHarness résout ce problème grâce aux Permission Modes. En mode par défaut, l'agent demandera confirmation avant chaque opération dangereuse (écriture de fichier, exécution de commande). Il y a aussi le Plan Mode—où l'agent peut seulement lire des fichiers et suggérer des modifications, mais ne touche à rien avec ses mains.
Assistant personnel Ohmo
Dans le dépôt vit le projet ohmo. C'est une application agent prête à l'emploi que vous pouvez connecter à Telegram, Slack ou Discord. Vous lui écrivez dans le messenger, et il crée des branches Git, corrige des bugs et ouvre des PR sur votre poste de travail. Cela fonctionne via des abonnements existants (comme Claude Code ou Codex), donc vous ne paierez pas de frais supplémentaires pour les appels API.
Mode Dry Run
Une fonctionnalité utile pour le débogage. La commande oh --dry-run affiche quels paramètres ont été récupérés, quelles clés sont actives et quels outils seront disponibles pour le modèle—sans envoyer une seule requête au cloud payant.
Comment ça fonctionne sous le capot
L'architecture du projet est assez transparente. Tout est divisé en sous-systèmes indépendants :
- Engine : le cœur du système, qui gère la boucle de raisonnement du modèle.
- Permissions : une couche qui vérifie chaque appel d'outil contre des règles (par exemple, bloquer les modifications de
/etc/). - UI : une belle interface de terminal construite avec React et Ink. Oui, juste dans la console.
- Coordinator : gère les scénarios multi-agents quand une tâche est divisée en plusieurs sous-tâches pour les « assistants ».
Intéressamment, le projet supporte le protocole MCP. Cela signifie que vous pouvez connecter n'importe quel serveur de contexte à votre agent—disons, une base de données ou une API spécifique—et il apprendra immédiatement à travailler avec.
Scénarios pratiques
Pourquoi intégrer cela dans votre workflow ?
Premièrement, automatiser les tâches routinières. Vous pouvez demander à l'agent : « Trouve tous les imports non utilisés dans le dossier src et nettoie-les, puis exécute les tests. » Pendant qu'il s'occupe des fichiers, vous buvez votre café.
Deuxièmement, travailler avec du code legacy inconnu. L'agent peut scanner le projet, construire une carte des dépendances et expliquer comment un module spécifique fonctionne en utilisant des outils de recherche de code.
Troisièmement, créer vos propres bots spécialisés. Si votre entreprise a un processus de déploiement spécifique, vous écrivez juste SKILL.md avec une description des étapes, et votre agent sait maintenant comment déployer des projets exactement comme vous le faites.
Cela vaut-il la peine d'essayer
Le projet semble vivant : 114 tests qui passent et des mises à jour actives (la version 0.1.7 vient d'être publiée il y a quelques jours). Les inconvénients—la documentation vous force parfois à fouiller dans le code, et bien que le support Windows soit prétendument natif, dans PowerShell cela nécessite d'utiliser la commande openh au lieu du court oh.
Si vous en avez assez de copier-coller du code du chat vers votre IDE et voulez ressentir ce que les agents peuvent vraiment faire, OpenHarness est un excellent point de départ. Au minimum, c'est l'un des rares projets qui essaie de rendre l'infrastructure des agents compréhensible et extensible.
Vous pouvez commencer avec une installation simple :
curl -fsSL https://raw.githubusercontent.com/HKUDS/OpenHarness/main/scripts/install.sh | bash
oh setup
Et ensuite demandez-lui simplement de corriger quelque chose dans votre projet personnel. Les résultats pourraient vous surprendre.
Projets similaires