Skills pour agents IA pour Delphi, C++Builder et .NET | eSeGeCe

Skills pour agents IA pour Delphi, C++Builder et .NET

Votre assistant IA n'a jamais lu le code source eSeGeCe, il invente donc des propriétés qui n'existent pas et place les composants dans la mauvaise unité. Les skills d'agent lui donnent la véritable API publique de chaque bibliothèque. Gratuits, sous licence MIT, et installés en une seule ligne.

Du code plein d'assurance qui ne compile pas

Demandez à un assistant un client WebSocket en Delphi et vous obtenez quelque chose de bien structuré et subtilement faux. Ce n'est pas que le modèle soit négligent. C'est qu'il n'a jamais vu cette bibliothèque.

Ces modèles ont appris à partir de code public. Les composants eSeGeCe sont commerciaux, leur code source n'a donc jamais figuré dans un jeu d'entraînement. Le modèle reconnaît la forme d'une bibliothèque de composants Delphi et comble le reste à partir d'autres bibliothèques qu'il connaît. Cela produit quatre types d'erreurs, et tous les quatre vous coûtent les mêmes vingt minutes passées à chercher laquelle des lignes plausibles est la mauvaise.

Des membres inventés

Une propriété ou un événement qui ressemble exactement à ce que nous aurions écrit, et qui n'existe pas. Le compilateur est le premier à vous l'apprendre.

La mauvaise unité

Le composant est réel, la clause uses ne l'est pas. C'est de loin la raison la plus fréquente pour laquelle du code sgcWebSockets généré ne compile pas.

Une API vieille de trois versions

Lorsqu'un modèle a vu un fragment d'un ancien exemple, il reproduira volontiers une méthode que nous avons renommée ou supprimée.

Des erreurs d'édition silencieuses

Du code qui compile chez nous et pas chez vous, parce que le composant utilisé exige une édition que votre licence ne comprend pas.

De la documentation que l'agent lit à la demande

Un skill n'est pas un plugin qui s'exécute, ni un modèle entraîné sur quoi que ce soit. C'est un dossier de Markdown, et le mécanisme est volontairement simple.

1. L'agent lit une seule courte description

Chaque skill s'ouvre sur quelques lignes de frontmatter, et la seule partie que l'agent a toujours sous les yeux est la description. Elle indique, en termes simples, quelle bibliothèque et quel domaine le skill couvre.

C'est ce qui maintient le coût bas. Votre agent ne transporte pas des milliers de lignes de référence d'API pendant que vous l'interrogez sur un tout autre sujet.

SKILL.md
---
name: sgcwebsockets-mq
description: Use when connecting Delphi or
  C++Builder code to a message broker with
  sgcWebSockets: MQTT, STOMP including
  RabbitMQ and ActiveMQ, AMQP 0.9.1, AMQP
  1.0, Kafka and WAMP2.
compatibility: Requires Delphi 7 to Delphi
  13, or C++Builder 2007 to 13.
---

2. Votre question décide de ce qui est chargé

Quand vous posez une question sur un courtier MQTT, cette description correspond et l'agent charge le skill des courtiers de messages. Rien d'autre ne s'ouvre. Posez plutôt une question sur WebRTC et c'est un autre skill qui se charge.

À l'intérieur du skill, il navigue comme vous le feriez : l'index des composants pour trouver le composant, puis la page d'API de ce composant, puis la page de type d'une classe d'options dont il lui faut les valeurs.

skill folder
sgcwebsockets-mq/
  SKILL.md
  reference/
    components-index.md
    api/TsgcWSPClient_MQTT.md
    types/TsgcWSMQTTLWT_Options.md
  examples/TsgcWSPClient_MQTT.md
  concepts/overview.md

3. Le contenu est généré à partir de nos sources

Nous n'écrivons pas les pages d'API à la main. Un générateur analyse la bibliothèque à chaque version et en extrait la surface public et published : chaque composant, ses propriétés, ses méthodes et ses événements, l'unité où il se trouve, l'édition qui l'inclut, et les types utilisés par ces membres.

Les skills décrivent donc la version que vous possédez réellement. Ils ne peuvent pas dériver comme le fait un document maintenu à la main, et un composant ajouté le mois dernier y figure le jour de sa livraison.

reference/api/TsgcWSPClient_MQTT.md
unit: sgcWebSocket_Protocols
Edition: Standard

| Delphi | Type |
| `Client: TsgcWebSocketClient` | ... |
| `MQTTVersion: TwsMQTTVersion` | ... |
| `LastWillTestament: ...`      | ... |

4. Un humain écrit ce qu'un générateur ne peut pas écrire

Les tableaux générés indiquent à un agent ce qui existe. Ils ne lui disent pas qu'un composant de protocole ne possède aucun socket, qu'il se rattache à un client de transport, ni qu'un courtier sur le port 1883 exige que Specifications.RFC6455 soit à False.

Chaque skill s'ouvre donc sur un guide pratique écrit par ceux qui ont écrit la bibliothèque : quand l'utiliser, quoi vous demander avant d'écrire la moindre ligne de code, et les erreurs qui piègent réellement les développeurs.

the playbook
## Things that catch people out

- Setting Active = true on the protocol
  component does nothing useful. The
  transport client owns the connection.
- One transport carries one protocol.
- MQTT has two heartbeats, and they are
  different mechanisms with the same name.

Installez une fois, puis contentez-vous de demander

Trois agents installent les plugins directement. Les autres lisent un dossier, il suffit donc d'en copier un. Ensuite il n'y a rien à invoquer : l'agent décide lui-même quand un skill est pertinent.

/plugin marketplace add esegece-com/agent-skills
/plugin install sgcwebsockets-delphi@esegece

Ajoutez la marketplace une seule fois, puis installez autant de plugins que vous en utilisez. /skills liste ce qui est actif. Installer un second produit plus tard ne demande pas de refaire l'étape de la marketplace.

codex plugin marketplace add esegece-com/agent-skills
codex plugin add sgcwebsockets-delphi@esegece
codex plugin list

Codex utilise plugin add plutôt que plugin install, avec le même nom de marketplace.

Clonez le dépôt, puis copiez le dossier du skill voulu depuis plugins/<plugin>/skills/ vers le répertoire que votre agent surveille. Le niveau projet prime sur le niveau global, un skill déposé dans un dépôt ne s'applique donc qu'à ce projet.

AgentNiveau projetGlobal
Claude Code.claude/skills/%USERPROFILE%\.claude\skills\
GitHub Copilot.github/skills/%USERPROFILE%\.copilot\skills\
Cursor.cursor/skills/
Codex CLI.agents/skills/
JetBrains Junie.junie/skills/%USERPROFILE%\.junie\skills\

Les chemins Copilot sont lus indifféremment par Visual Studio, VS Code et le Copilot CLI. Dans VS Code, activez le paramètre "Chat: Use Agent Skills", ou exécutez "Chat: Install Plugin From Source" depuis la palette de commandes et indiquez-lui l'URL du dépôt.

Ce qui change une fois qu'ils sont installés

La différence n'est pas que l'assistant devient plus intelligent. C'est qu'il cesse de deviner au sujet de notre bibliothèque.

Du code qui compile

Les membres proviennent de l'API générée plutôt que d'une ressemblance, les propriétés et les événements de la réponse sont donc bien ceux que le composant publie réellement.

La bonne clause uses

Chaque page d'API indique l'unité où se trouve le composant, et pour .NET l'espace de noms unique. Cela seul élimine l'échec de compilation le plus fréquent.

La question des éditions réglée d'emblée

Chaque composant porte son édition minimale, l'assistant peut donc vous dire qu'un composant exige Enterprise avant que vous n'écriviez du code qui s'appuie dessus.

Il sait ce qu'il ignore

Les skills disent clairement quelles parties sont documentées. Un assistant qui ne trouve pas une énumération est invité à poser la question plutôt qu'à inventer une constante qui sonne juste.

De vrais exemples, pas des esquisses

Chaque exemple est tiré d'une démo livrée avec le produit, réduit aux parties qui touchent le composant au lieu d'une fiche entière.

À jour par construction

Régénérés à partir des sources à chaque version. Un nouveau composant est documenté le jour de sa livraison, et un composant retiré disparaît le même jour.

Uniquement ce sur quoi vous avez posé la question

La répartition par thème fait qu'une question MQTT ne charge que le skill des courtiers de messages, le reste d'une bibliothèque de 222 composants reste donc en dehors de la conversation.

Gratuits, et sans licence requise

Sous licence MIT et publics. Vous pouvez les installer pour évaluer la bibliothèque avant tout achat, et les lire comme une documentation à part entière.

Six plugins pour l'ensemble des bibliothèques

Un plugin par produit, et pour sgcWebSockets un plugin qui contient de nombreux skills thématiques plutôt qu'un seul très gros.

PluginSkillsCouvre
sgcwebsockets-delphi18Noyau WebSocket, courtiers de messages, sous-protocoles sgc, flux des plateformes d'échange, IA et LLM, intégrations de services, HTTP et transports, authentification, P2P et WebRTC, IoT, et six pour les widgets sgcHTML
sgcwebsockets-dotnet7La même bibliothèque depuis C#, avec la page de couverture décrite ci-dessous
sgcsign-delphi1XAdES, PAdES, CAdES, Authenticode, horodatage RFC 3161, OCSP et les fournisseurs de clés
sgcopenapi-delphi1L'analyseur OpenAPI, le générateur de SDK et le composant serveur
sgcindy-delphi1L'implémentation Indy TCP/IP personnalisée
sgcbiometrics-delphi1Windows Hello, authentification par empreinte digitale et par reconnaissance faciale

Pourquoi sgcWebSockets compte dix-huit skills

La bibliothèque enregistre 222 composants. Un skill unique les couvrant tous obligerait l'agent à ouvrir la bibliothèque entière pour répondre à une question portant sur un seul protocole, ce qui est lent et dégrade la réponse au lieu de l'améliorer.

Il est donc réparti par domaine. Chaque skill est assez petit pour être lu en entier et assez précis pour être choisi correctement, et un index général répond toujours à la question "de quel composant ai-je besoin" et oriente vers le bon.

Une réponse franche au sujet de .NET

L'assembly .NET livré expose 70 des 222 composants que la bibliothèque Delphi enregistre. Nous préférons le dire plutôt que de laisser un assistant improviser une API C# qui n'existe pas.

Le plugin .NET livre donc une page de couverture générée qui nomme les 152 composants réservés à Delphi, avec l'unité où chacun se trouve. Elle est produite en comparant les deux produits au moment de la compilation, elle décrit donc la version dont vous disposez plutôt qu'une intention.

De la documentation, et rien d'autre

Cela mérite d'être précisé, car "installez ce plugin" amène légitimement à se demander ce qu'il fait.

Rien ne s'exécute

Un skill, c'est du Markdown. Il ne contient aucun code, rien ne s'exécute sur votre machine, et en installer un ne peut pas modifier votre projet.

Rien ne nous est envoyé

Aucune télémétrie, aucun appel vers nos serveurs, aucune trace de ce que vous avez demandé. Nous ne savons pas que vous les avez installés, et les fichiers fonctionnent hors ligne une fois copiés.

Aucun code source n'est exposé

Seule la surface public et published est incluse. Les corps de méthodes, les champs privés et les membres protégés sont exclus par le générateur, installer un skill ne place donc notre implémentation sur le disque de personne.

Sous licence MIT

Le dépôt est sous licence MIT, vous pouvez donc copier, forker et adapter la structure librement. Un fichier NOTICE réserve le contenu de la documentation lui-même, qui reste le nôtre.

Les questions qu'on nous pose

Apprenez l'API à votre assistant

Gratuits, sous licence MIT, et une seule ligne à installer. Ensuite, posez-lui la question que vous alliez poser de toute façon.