MRが楽しい

MRやVRについて学習したことを書き残す

AWESOME-COPILOTのドキュメントを読む その76(GitHub Copilot SDK Node.js Instructions)

本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つGitHub Copilot SDK Node.js Instructionsについてです。

GitHub Copilot SDK Node.js Instructions

GitHub Copilot SDK Node.js InstructionsはNode.js / TypeScript で GitHub Copilot SDK を使ってAI機能・エージェントを構築するためのベストプラクティスです。
CopilotにJavaScript / TypeScript(Node.js)向けに最適化されたAI開発ルールを教え込みます。

以下のページからGenaiscriptのインストールボタンをクリックして取得します。
github.com

インストールボタンを押してGitHub Copilot SDK Node.js Instructionsをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、CopilotはCopilot SDKを使ったAI機能実装を前提に提案するようになります。

具体的にはCopilotは以下のような行動をとります。

TypeScriptベースでAI機能を実装

Copilot はTypeScript + Node.jsを前提にコードを提案します。
JavaScriptではなくTypeScriptが標準になります。

これは型安全、保守性、SDKとの親和性が理由です。

Copilot SDKを使ったクライアント設計

CopilotはCopilot SDKクライアントを中心に設計します。
以下のようなセッション(対話単位)でAIとやり取りを構造にします。

Client → Session → Message → Response

つまりAIとのやり取りを「オブジェクト構造」で扱います。

セッションベースの対話管理

C#版と同様にセッション単位で会話を管理します。
以下の特徴を持ちます。

  • 会話履歴を保持
  • マルチターン対応
  • 状態管理可能

これよりChatGPT的な対話をコードで扱うことになります。

イベント駆動モデル

Node.jsらしくイベントベースで処理されます。
例えば以下のような処理を取り扱います。

  • 応答受信
  • ツール呼び出し
  • エラー処理

非同期・リアクティブ設計が前提となります。

ツール(Function Calling)統合

CopilotはAIから外部処理を呼び出す設計を提案します。
例えば以下のような設計です。

  • API呼び出し
  • DBアクセス
  • ファイル操作

つまり以下のようなフローを利用してAIが外部処理を「実行する」ようになります。

AI → ツール → 結果 → AI応答

ストリーミング応答を前提とする

Copilotは逐次出力、UI更新を前提に設計します。
例えばチャットUI向きの以下のようなフローです。

部分応答 → UI表示 → 続き

非同期処理(async/await)前提

Node.jsなので非同期処理が基本になります。
Copilotはasync / await、Promiseを前提に設計します。

モジュール設計(ESM)

CopilotはES Modules(import/export)を前提にします。
理由は現代Node.js標準であり、TypeScriptと相性が良いからです。

AIエージェントとして設計

AIを単なるAPIではなくエージェントとして扱います。
これにより以下のようなことができるようになります。

  • 状態保持
  • 自律的判断
  • ツール実行
  • 複数ステップ処理

AIワークフロー全体を構築

Copilotは単発処理ではなく以下のようなワークフロー全体を設計します。

入力 → AI処理 → ツール → 応答 → UI

実行環境・CLI前提

Copilot SDKはCLI、開発環境設定が必要です。
Copilotはこのセットアップも含めて提案します

Node.jsエコシステムと統合

Copilotは以下のNode.jsの特徴を活かします

  • Express / Fastify
  • Web API
  • CLIツール