AIエージェントスキル(Delphi、C++Builder、.NET 向け)
AI アシスタントは eSeGeCe のソースを一度も読んだことがありません。そのため、存在しないプロパティを作り出し、コンポーネントを誤ったユニットに置きます。エージェントスキルは、各ライブラリの実際の公開 API をアシスタントに与えます。無償、MIT ライセンス、インストールは 1 行です。
AI アシスタントは eSeGeCe のソースを一度も読んだことがありません。そのため、存在しないプロパティを作り出し、コンポーネントを誤ったユニットに置きます。エージェントスキルは、各ライブラリの実際の公開 API をアシスタントに与えます。無償、MIT ライセンス、インストールは 1 行です。
Delphi で WebSocket クライアントを書いてほしいとアシスタントに頼むと、体裁は整っているのに微妙に間違ったコードが返ってきます。モデルが不注意だからではありません。モデルがこのライブラリを一度も見たことがないからです。
これらのモデルは公開されたコードから学習しています。eSeGeCe のコンポーネントは商用製品であり、そのソースが学習データに含まれたことはありません。モデルは Delphi のコンポーネントライブラリらしい形を認識し、残りの部分を自分の知っている別のライブラリから埋めます。その結果、4 つの失敗パターンが生まれます。いずれの場合も、もっともらしく見える行のうちどれが誤りなのかを突き止めるために、同じように 20 分を費やすことになります。
当社が書きそうな名前にしか見えないのに、実際には存在しないプロパティやイベント。最初にそれを教えてくれるのはコンパイラです。
コンポーネントは実在するのに、uses 句が正しくありません。生成された sgcWebSockets のコードがビルドに失敗する原因として、これが最も多いものです。
古いサンプルの断片を見たことがあるモデルは、当社が名前を変更した、あるいは削除したメソッドを、そのまま再現してしまいます。
当社ではコンパイルできても、お客様の環境では通らないコード。使われているコンポーネントが、お客様のライセンスに含まれないエディションを必要とするためです。
スキルは実行されるプラグインではなく、何かを学習したモデルでもありません。Markdown のフォルダーであり、その仕組みは意図的に単純にしてあります。
すべてのスキルは数行のフロントマターで始まり、エージェントが常に目にしているのは description だけです。そこには、そのスキルがどのライブラリのどの領域を対象とするのかが、平易な言葉で書かれています。
これがコストを低く抑えます。無関係なことを尋ねている間、エージェントが数千行の API リファレンスを抱え込むことはありません。
---
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.
---
MQTT ブローカーについて尋ねると、その説明文が一致し、エージェントはメッセージブローカーのスキルを読み込みます。それ以外は開かれません。代わりに WebRTC について尋ねれば、別のスキルが読み込まれます。
スキルの中では、お客様と同じようにたどります。まずコンポーネント索引で目的のコンポーネントを見つけ、次にそのコンポーネントの API ページ、そして値が必要なオプションクラスの型ページへと進みます。
sgcwebsockets-mq/
SKILL.md
reference/
components-index.md
api/TsgcWSPClient_MQTT.md
types/TsgcWSMQTTLWT_Options.md
examples/TsgcWSPClient_MQTT.md
concepts/overview.md
API ページは手書きではありません。ジェネレーターがリリースごとにライブラリを解析し、public および published な範囲を出力します。各コンポーネント、そのプロパティ、メソッド、イベント、それが属するユニット、それを含むエディション、そしてそれらのメンバーが使う型です。
そのため、スキルはお客様が実際にお使いのバージョンを説明します。手作業で保守されたドキュメントのように内容がずれていくことはなく、先月追加されたコンポーネントも出荷当日から収録されています。
unit: sgcWebSocket_Protocols
Edition: Standard
| Delphi | Type |
| `Client: TsgcWebSocketClient` | ... |
| `MQTTVersion: TwsMQTTVersion` | ... |
| `LastWillTestament: ...` | ... |
生成された表は、何が存在するのかをエージェントに伝えます。しかし、プロトコルコンポーネントがソケットを持たないこと、トランスポートクライアントに接続して使うこと、ポート 1883 のブローカーでは Specifications.RFC6455 を False にする必要があることまでは伝えません。
そこで各スキルは、ライブラリを書いた本人たちによるプレイブックで始まります。どんなときに使うのか、コードを書く前にお客様に確認すべきことは何か、そして実際に多くの方がはまる間違いは何かです。
## 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.
3 つのエージェントはプラグインを直接インストールできます。その他のエージェントはフォルダーを読み込む方式なので、フォルダーを 1 つコピーします。あとは何かを呼び出す必要はありません。どのスキルが関係するかはエージェントが判断します。
/plugin marketplace add esegece-com/agent-skills
/plugin install sgcwebsockets-delphi@esegece
マーケットプレイスの追加は一度だけで、あとは必要なだけプラグインをインストールできます。/skills で有効なスキルの一覧が表示されます。後から 2 つ目の製品をインストールする際に、マーケットプレイスの手順を繰り返す必要はありません。
codex plugin marketplace add esegece-com/agent-skills
codex plugin add sgcwebsockets-delphi@esegece
codex plugin list
Codex では plugin install ではなく plugin add を使います。マーケットプレイス名は同じです。
リポジトリをクローンし、必要なスキルフォルダーを plugins/<plugin>/skills/ から、エージェントが監視するディレクトリにコピーしてください。プロジェクト単位の設定はグローバルより優先されるため、リポジトリに置いたスキルはそのプロジェクトだけに適用されます。
| エージェント | プロジェクト単位 | グローバル |
|---|---|---|
| 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\ |
Copilot のパスは、Visual Studio、VS Code、Copilot CLI のいずれからも同じように読み込まれます。VS Code では "Chat: Use Agent Skills" の設定を有効にするか、コマンドパレットから "Chat: Install Plugin From Source" を実行し、リポジトリの URL を指定してください。
アシスタントが賢くなるわけではありません。当社のライブラリについて推測するのをやめる、ということです。
メンバーは似たものからの類推ではなく、生成された API から取られます。そのため、回答に出てくるプロパティやイベントは、そのコンポーネントが実際に公開しているものです。
すべての API ページに、コンポーネントが属するユニットが、.NET では唯一の名前空間が明記されています。これだけで、最も頻繁に起きるビルド失敗がなくなります。
各コンポーネントには必要な最小エディションが記載されています。そのため、そのコンポーネントを使うコードを書き始める前に、Enterprise が必要だとアシスタントが教えてくれます。
スキルには、どの部分がドキュメント化されているかが明記されています。列挙型を見つけられなかったアシスタントは、それらしく見える定数を作り出すのではなく、質問するよう指示されています。
各サンプルは製品に同梱されるデモから抽出したもので、フォーム全体ではなく、そのコンポーネントに関わる部分だけに絞り込んであります。
リリースごとにソースから再生成されます。新しいコンポーネントは出荷当日にドキュメント化され、削除されたコンポーネントも同じ日に消えます。
トピックごとに分割されているため、MQTT についての質問ではメッセージブローカーのスキルだけが読み込まれ、222 個のコンポーネントを持つライブラリの残りは会話に入り込みません。
MIT ライセンスで公開しています。何かを購入する前にライブラリを評価する目的でインストールできますし、それ自体をドキュメントとして読むこともできます。
製品ごとに 1 つのプラグイン。sgcWebSockets については、1 つの大きなスキルではなく、多数のトピック別スキルを含むプラグインになっています。
| プラグイン | スキル数 | 対象範囲 |
|---|---|---|
sgcwebsockets-delphi | 18 | WebSocket コア、メッセージブローカー、sgc サブプロトコル、取引所フィード、AI と LLM、サービス統合、HTTP とトランスポート、認証、P2P と WebRTC、IoT、および sgcHTML ウィジェット向けの 6 つ |
sgcwebsockets-dotnet | 7 | 同じライブラリを C# から利用する場合。後述のカバレッジページを同梱 |
sgcsign-delphi | 1 | XAdES、PAdES、CAdES、Authenticode、RFC 3161 タイムスタンプ、OCSP、キープロバイダー |
sgcopenapi-delphi | 1 | OpenAPI パーサー、SDK ジェネレーター、サーバーコンポーネント |
sgcindy-delphi | 1 | カスタム Indy TCP/IP 実装 |
sgcbiometrics-delphi | 1 | Windows Hello、指紋認証、顔認証 |
このライブラリは 222 個のコンポーネントを登録します。それらすべてを 1 つのスキルにまとめると、1 つのプロトコルについての質問に答えるためにライブラリ全体を開くことになり、処理が遅くなるうえ、回答の質も良くなるどころか悪くなります。
そこで領域ごとに分割しています。各スキルは全体を読み切れる大きさで、かつ正しく選ばれるだけの具体性を備えています。それとは別に、全体をまとめた索引が「どのコンポーネントが必要か」に答え、適切なスキルへ導きます。
出荷されている .NET アセンブリが公開しているのは、Delphi ライブラリが登録する 222 個のコンポーネントのうち 70 個です。アシスタントに存在しない C# の API を即興で作らせるくらいなら、そのことをはっきり書くほうがよいと考えています。
そのため .NET プラグインには、Delphi のみで利用できる 152 個を、それぞれが属するユニットとともに列挙した、生成済みのカバレッジページが含まれています。このページはビルド時に両製品を比較して作られるため、意図ではなく、お客様がお持ちのビルドの実態を説明します。
「このプラグインをインストールしてください」と言われれば、それが何をするのか気になるのは当然です。だからこそ、正確にお伝えしておく価値があります。
スキルは Markdown です。コードは含まれておらず、お客様のマシンで何かが動くことはなく、インストールしてもプロジェクトが変更されることはありません。
テレメトリも、外部への通信も、お客様が何を尋ねたかの記録もありません。当社はお客様がインストールしたことを知りませんし、ファイルは一度コピーすればオフラインで動作します。
含まれているのは public および published な範囲だけです。メソッドの本体、private フィールド、protected メンバーはジェネレーターによって除外されるため、スキルをインストールしても当社の実装が誰かのディスクに置かれることはありません。
リポジトリは MIT ライセンスなので、コピー、フォーク、構成の流用は自由に行えます。ドキュメントの内容そのものについては NOTICE ファイルで権利を留保しており、当社に帰属します。
必要ありません。公開されており、無償です。ライブラリそのものを収めているのではなく API を説明するものなので、何かを購入する前に、目的のコンポーネントが求める動作をするかどうかを読んで確認できます。
通常は必要ありません。エージェントが質問をスキルの説明文と照合し、合致するものを読み込みます。明示的に指定したい場合は、Claude Code では / を、Copilot Chat では # を入力し、続けてスキル名を指定してください。
インストールコマンドを再実行してください。フォルダーを手作業でコピーした場合は、新しいフォルダーで上書きしてください。各スキルがどのバージョンから生成されたかはフロントマターに記載されているので、読んでいるビルドをいつでも確認できます。
たいていの場合、双方が異なるビルドを参照しています。各スキルには reference/history.md が含まれ、リリースごとの変更点が一覧になっています。そのメンバーがお使いのバージョンより後に追加されたものかどうかを確認するには、これが最も早い方法です。
スキルまたは指示用のフォルダーを読み込むエージェントであれば使えます。内容はエージェント固有の記法を含まない通常の Markdown なので、どのツールでもそのフォルダーを指定すれば動作します。上の表にある 5 つのディレクトリは、よく使われるエージェントの慣例を示したものにすぎません。
その場合はドキュメントの不具合ですので、ぜひお知らせください。GitHub で issue を作成いただくか、当社のお問い合わせフォームをご利用ください。お尋ねになった質問と返ってきた回答の両方をお知らせいただけると助かります。