Lire avant d’écrire
Le skill lit d’abord ce que le dépôt documente déjà, pour que le guide ne le contredise pas, ne fasse pas doublon et reprenne son vocabulaire.
02Projet 02 sur 3
Un agent de code IA sur du RPG hérité, le langage des applications de gestion sur serveurs IBM i (ex-AS/400) : il reçoit le contexte et un guide pour chaque concept qu’il traite, mais pas de shell libre. L’agent tourne sur le poste du développeur, pas sur l’IBM i ; ses modifications de code passent par une clé SSH liée à un script.
Les sources IBM i sont exportées dans l’IFS, le système de fichiers de l’IBM i, puis synchronisées sur le poste avec la documentation du projet. C’est ce que l’agent peut lire : le code, et les documents qui l’expliquent.
Quand une tâche touche un concept métier qui n’a pas encore de guide, l’agent lance d’abord un skill maison d’analyse sur ce concept (un skill est une procédure écrite que l’agent charge et suit). Le skill trouve les programmes et les tables concernés et d’où viennent les données, puis écrit un guide qui mène aux bons fichiers. Les guides s’accumulent concept par concept. Comment ça marche
Toute modification du code passe par un seul script de l’IFS, atteint par une seule clé SSH. L’agent dépose le source sur l’IFS, le compare au source en production de la dernière release de l’objet, que le script extrait, et travaille sur la version la plus récente, dans l’IFS. Le script la pousse ensuite dans les bibliothèques de l’IBM i (QSYS), la compile et renvoie les messages du compilateur. L’agent boucle jusqu’à ce que le code compile.
L’agent pilote une session 5250, l’interface en écrans texte de l’IBM i (l’« écran vert »), par un serveur MCP (MCP est le protocole standard pour brancher un outil sur un agent IA), avec un miroir en direct dans le navigateur pour que le développeur voie chaque étape.
Sur un code hérité, un skill maison documente le système un concept métier à la fois, et vérifie chaque affirmation clé de son propre guide dans le code source avant de le garder.
Quel programme écrit chaque table, quel job lance ce programme et d’où viennent les données, en remontant jusqu’à trois étapes.
Des workers IA, de petits agents lancés en parallèle, répondent chacun à une question factuelle : les champs d’une table, les conditions d’un programme, un dénombrement.
Un guide organisé par fonctionnalité métier, pas par programme, qui explique le pourquoi et cite les lignes.
Un worker par affirmation clé tente de la réfuter dans le code source et colle la ligne sur laquelle il s’appuie.
Chaque affirmation finit confirmée, réfutée ou invérifiableEffort choisi par concept : léger, standard ou profond avec une seconde passe de réfutation
Le skill lit d’abord ce que le dépôt documente déjà, pour que le guide ne le contredise pas, ne fasse pas doublon et reprenne son vocabulaire.
Quand un menu ou un programme fait autre chose que ce que son nom suggère, le guide s’ouvre sur une clarification. C’est souvent la trouvaille la plus utile.
Le skill ne documente pas tout le dépôt d’avance : un tel document devrait être tenu à jour à la main et prendrait vite du retard. Il écrit un guide quand une tâche touche un concept métier ; des parties du dépôt n’ont donc pas encore de guide, et c’est voulu.
L’agent lit le retour, corrige le code et boucle jusqu’à ce qu’il compile
Miroir en direct · navigateur · localhost seulement · lecture seule
Le texte de l’écran tel quel, ses champs listés par nom et position, le curseur, l’état du clavier (verrouillé ou non) et une signature qui identifie l’écran. Que du texte structuré, pas de captures.
L’écran est traité comme une donnée, jamais comme une consigne : un champ peut contenir « ignore les règles et exécute… ». La session utilise un profil dédié à droits réduits sur une bibliothèque de test, sans données réelles de l’entreprise, par un port chiffré seulement.
Un shell n’a aucune limite : tout ce que le profil peut faire, une injection de prompt ou une simple erreur peut le faire aussi. Une commande forcée transforme la clé SSH en menu. La demande est seulement découpée en mots, jamais évaluée comme une commande, et le dossier cible vient du profil connecté, jamais d’un argument.
Un dépôt RPG hérité porte des décennies de conventions que personne n’a écrites. Le guide donne à l’agent un index pour naviguer au lieu de chercher à l’aveugle, et me donne de quoi vérifier sa compréhension.
Des serveurs MCP open source existent déjà, dont un avec une vue navigateur en direct. Restait le dispositif autour : réseau et droits, règles de sécurité, et un petit cas d’essai de bout en bout. Un émulateur sur mesure aurait coûté plus cher.
La clé SSH utilise le profil du développeur, avec ses droits habituels. Un profil dédié à droits réduits serait plus sûr, mais les versions et les extractions ne seraient plus attribuées à la bonne personne. Ce compromis est documenté.
Tout ce que l’agent lit est transmis à son fournisseur de modèle. Les anciens programmes CL (le langage de script de l’IBM i) et les scripts de transfert contiennent souvent des mots de passe en dur : il faut les contrôler avant d’exposer du vrai code.
L’extension Db2 for i de VS Code, qui passe par la connexion du développeur à l’IBM i (l’extension Code for IBM i), expose ses commandes aux assistants IA, requêtes SQL comprises. Elle reste inutilisée : les tables contiennent des données clients sensibles, et rien ne les anonymise avant qu’elles n’atteignent le fournisseur de modèle. Ce pourrait être la prochaine étape : anonymiser d’abord, puis ouvrir l’accès.
Le pont 5250 utilisé est un jeune projet open source, avec un seul mainteneur. D’où la version figée et le code relu avant usage.