Umiejętności agentów AI dla Delphi, C++Builder i .NET | eSeGeCe

Umiejętności agentów AI dla Delphi, C++Builder i .NET

Twój asystent AI nigdy nie czytał kodu źródłowego eSeGeCe, więc wymyśla właściwości, które nie istnieją, i umieszcza komponenty w niewłaściwym module. Umiejętności agentów dają mu prawdziwe publiczne API każdej biblioteki. Darmowe, na licencji MIT i instalowane jedną linią.

Pewny siebie kod, który się nie kompiluje

Poproś asystenta o klienta WebSocket w Delphi, a dostaniesz coś dobrze zbudowanego i subtelnie błędnego. Powód nie jest taki, że model jest niestaranny. Powód jest taki, że model nigdy nie widział tej biblioteki.

Te modele uczyły się na kodzie publicznym. Komponenty eSeGeCe są komercyjne, więc ich kod źródłowy nigdy nie trafił do zbioru treningowego. Model rozpoznaje kształt biblioteki komponentów Delphi i uzupełnia resztę na podstawie innych bibliotek, które zna. Daje to cztery rodzaje błędów, a każdy z nich kosztuje tyle samo, dwadzieścia minut szukania, która z wiarygodnie wyglądających linii jest tą złą.

Wymyślone składowe

Właściwość lub zdarzenie, które brzmi dokładnie tak, jakbyśmy je napisali, a którego nie ma. Pierwszym, co Ci o tym powie, jest kompilator.

Niewłaściwy moduł

Komponent jest prawdziwy, klauzula uses nie. To zdecydowanie najczęstszy powód, dla którego wygenerowany kod sgcWebSockets się nie buduje.

API sprzed trzech wydań

Tam, gdzie model widział fragment starego przykładu, bez wahania odtworzy metodę, którą zmieniliśmy albo usunęliśmy.

Ciche pomyłki co do edycji

Kod, który kompiluje się u nas, a u Ciebie nie, ponieważ użyty w nim komponent wymaga edycji nieobjętej Twoją licencją.

Dokumentacja, którą agent czyta na żądanie

Umiejętność nie jest wtyczką, która się uruchamia, ani modelem, który czegokolwiek się nauczył. To katalog plików Markdown, a mechanizm jest celowo prosty.

1. Agent czyta jeden krótki opis

Każda umiejętność zaczyna się od kilku linii metadanych, a jedyną częścią, którą agent ma zawsze przed sobą, jest description. Mówi ono wprost, której biblioteki i którego obszaru tematycznego dotyczy dana umiejętność.

To właśnie utrzymuje niski koszt. Twój agent nie nosi ze sobą tysięcy linii dokumentacji API, kiedy pytasz go o coś zupełnie innego.

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. Twoje pytanie decyduje o tym, co zostanie wczytane

Kiedy pytasz o brokera MQTT, ten opis pasuje i agent wczytuje umiejętność dotyczącą brokerów wiadomości. Nic więcej się nie otwiera. Zapytaj zamiast tego o WebRTC, a wczyta się inna umiejętność.

Wewnątrz umiejętności porusza się tak samo jak Ty. Najpierw indeks komponentów, aby znaleźć komponent, potem strona API tego komponentu, potem strona typu dla klasy opcji, której wartości potrzebuje.

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. Treść powstaje z naszego kodu źródłowego

Nie piszemy stron API ręcznie. Generator analizuje bibliotekę przy każdym wydaniu i wypisuje część publiczną i opublikowaną: każdy komponent, jego właściwości, metody i zdarzenia, moduł, w którym się znajduje, edycję, która go zawiera, oraz typy używane przez te składowe.

Dzięki temu umiejętności opisują tę wersję, którą faktycznie masz. Nie mogą się rozjechać tak, jak dokument utrzymywany ręcznie, a komponent dodany w zeszłym miesiącu jest w nich tego samego dnia, w którym trafia do wydania.

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

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

4. Człowiek pisze to, czego generator napisać nie potrafi

Wygenerowane tabele mówią agentowi, co istnieje. Nie mówią mu, że komponent protokołu nie ma własnego gniazda, że podłącza się do klienta transportowego ani że broker na porcie 1883 wymaga ustawienia Specifications.RFC6455 na False.

Dlatego każda umiejętność zaczyna się od instrukcji postępowania napisanej przez ludzi, którzy napisali tę bibliotekę: kiedy jej użyć, o co zapytać, zanim powstanie jakikolwiek kod, i jakie błędy naprawdę sprawiają ludziom kłopot.

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.

Zainstaluj raz, potem po prostu pytaj

Trzy agenty instalują wtyczki bezpośrednio. Pozostałe czytają katalog, więc jeden do nich kopiujesz. Potem nie ma już czego wywoływać, agent sam decyduje, kiedy dana umiejętność jest przydatna.

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

Dodaj marketplace raz, a potem zainstaluj tyle wtyczek, ilu używasz. /skills wypisuje to, co jest aktywne. Instalacja kolejnego produktu później nie wymaga ponownego dodawania marketplace.

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

Codex używa plugin add zamiast plugin install, przy tej samej nazwie marketplace.

Sklonuj repozytorium, a następnie skopiuj wybrany katalog umiejętności z plugins/<plugin>/skills/ do katalogu obserwowanego przez Twojego agenta. Poziom projektu ma pierwszeństwo przed globalnym, więc umiejętność umieszczona w repozytorium obowiązuje wyłącznie w tym projekcie.

AgentW projekcieGlobalnie
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\

Ścieżki Copilota są odczytywane tak samo przez Visual Studio, VS Code i Copilot CLI. W VS Code włącz ustawienie "Chat: Use Agent Skills" albo uruchom "Chat: Install Plugin From Source" z palety poleceń i podaj adres URL repozytorium.

Co się zmienia po ich zainstalowaniu

Różnica nie polega na tym, że asystent staje się mądrzejszy. Polega na tym, że przestaje zgadywać, jak wygląda nasza biblioteka.

Kod, który się kompiluje

Składowe pochodzą z wygenerowanego API, a nie z podobieństwa, więc właściwości i zdarzenia w odpowiedzi są tymi, które komponent naprawdę publikuje.

Właściwa klauzula uses

Każda strona API podaje moduł, w którym znajduje się komponent, a dla .NET pojedynczą przestrzeń nazw. Samo to usuwa najczęstszą przyczynę błędów kompilacji.

Edycje wyjaśnione od razu

Każdy komponent ma podaną minimalną edycję, więc asystent może Ci powiedzieć, że komponent wymaga edycji Enterprise, zanim zaczniesz pisać korzystający z niego kod.

Wie, czego nie wie

Umiejętności wprost mówią, które części są udokumentowane. Asystent, który nie może znaleźć wyliczenia, ma zapytać, zamiast wymyślać stałą, która wygląda sensownie.

Prawdziwe przykłady, nie szkice

Każdy przykład jest wyciągnięty z dema dołączonego do produktu i przycięty do fragmentów dotyczących komponentu, zamiast całego formularza.

Aktualne z zasady

Generowane na nowo ze źródeł przy każdym wydaniu. Nowy komponent jest udokumentowany tego samego dnia, w którym trafia do wydania, a usunięty znika tego samego dnia.

Tylko to, o co pytasz

Podział na tematy sprawia, że pytanie o MQTT wczytuje wyłącznie umiejętność dotyczącą brokerów wiadomości, a reszta liczącej 222 komponenty biblioteki pozostaje poza rozmową.

Darmowe, bez potrzeby licencji

Publiczne i na licencji MIT. Możesz je zainstalować, aby ocenić bibliotekę, zanim cokolwiek kupisz, i czytać je jako samodzielną dokumentację.

Sześć wtyczek dla wszystkich bibliotek

Jedna wtyczka na produkt, a dla sgcWebSockets wtyczka zawierająca wiele umiejętności tematycznych zamiast jednej dużej.

WtyczkaUmiejętnościZakres
sgcwebsockets-delphi18Rdzeń WebSocket, brokery wiadomości, podprotokoły sgc, kanały danych giełdowych, AI i LLM, integracje z usługami, HTTP i transporty, uwierzytelnianie, P2P i WebRTC, IoT oraz sześć dla widgetów sgcHTML
sgcwebsockets-dotnet7Ta sama biblioteka z poziomu C#, wraz z opisaną niżej stroną pokrycia
sgcsign-delphi1XAdES, PAdES, CAdES, Authenticode, znakowanie czasem RFC 3161, OCSP i dostawcy kluczy
sgcopenapi-delphi1Parser OpenAPI, generator SDK i komponent serwera
sgcindy-delphi1Własna implementacja Indy TCP/IP
sgcbiometrics-delphi1Windows Hello, uwierzytelnianie odciskiem palca i rozpoznawaniem twarzy

Dlaczego sgcWebSockets to osiemnaście umiejętności

Biblioteka rejestruje 222 komponenty. Pojedyncza umiejętność obejmująca je wszystkie zmuszałaby agenta do otwierania całej biblioteki, aby odpowiedzieć na pytanie o jeden protokół, co jest wolne i pogarsza odpowiedź, zamiast ją poprawiać.

Dlatego jest podzielona według obszarów. Każda umiejętność jest na tyle mała, że da się ją przeczytać w całości, i na tyle konkretna, że da się ją trafnie wybrać, a nadrzędny indeks nadal odpowiada na pytanie "którego komponentu potrzebuję" i kieruje do właściwej umiejętności.

Szczera odpowiedź w sprawie .NET

Dostarczana biblioteka .NET udostępnia 70 z 222 komponentów, które rejestruje biblioteka dla Delphi. Wolimy powiedzieć to wprost, niż pozwolić asystentowi improwizować API C#, które nie istnieje.

Dlatego wtyczka .NET zawiera wygenerowaną stronę pokrycia, wymieniającą 152 komponenty dostępne wyłącznie w Delphi, wraz z modułem, w którym każdy z nich się znajduje. Powstaje ona przez porównanie obu produktów podczas budowania, więc opisuje kompilację, którą masz, a nie zamiary.

Dokumentacja i nic więcej

Warto powiedzieć to precyzyjnie, bo "zainstaluj tę wtyczkę" słusznie każe ludziom pytać, co ona właściwie robi.

Nic się nie wykonuje

Umiejętność to Markdown. Nie ma w niej kodu, nic nie uruchamia się na Twoim komputerze, a jej instalacja nie może zmienić Twojego projektu.

Nic nie trafia do nas

Żadnej telemetrii, żadnego łączenia się z nami, żadnego zapisu tego, o co pytasz. Nie wiemy nawet, że je zainstalowałeś, a pliki działają bez dostępu do sieci, gdy już je skopiujesz.

Żaden kod źródłowy nie jest ujawniany

Zawarta jest wyłącznie część publiczna i opublikowana. Treści metod, pola prywatne i składowe chronione są pomijane przez generator, więc instalacja umiejętności nie umieszcza naszej implementacji na niczyim dysku.

Licencja MIT

Repozytorium jest na licencji MIT, więc możesz swobodnie kopiować, forkować i dostosowywać jego strukturę. Plik NOTICE zastrzega samą treść dokumentacji, która pozostaje nasza.

Pytania, które zadają użytkownicy

Naucz swojego asystenta tego API

Darmowe, na licencji MIT, instalacja jedną linią. Potem zadaj mu pytanie, które i tak zamierzałeś zadać.