MRが楽しい

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

AWESOME-COPILOTのドキュメントを読む その71(Genaiscript)

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

Genaiscript

GenaiscriptはGenAIScript専用のコード生成ルールをAIに強制するためのインストラクションです。
以下のページからGenaiscriptのインストールボタンをクリックして取得します。
github.com

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

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、CopilotはGenAIScript専用の書き方を行うようになります。

対象は以下のGenAIScript用ファイルです。

.genai.ts
.genai.js
.genai.mts

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

役割

Copilotは以下の役割を意識して動作するようになります。

  • GenAIScriptを前提に考える
  • Node.jsや一般TSの知識よりGenAIScript優先
  • 曖昧な場合でもGenAIScript的な書き方に寄せる

必ずTypeScript + ESMを利用する

生成コードについて以下の指定を行います。

  • JavaScriptではなくTypeScript
  • CommonJSではなくESM
  • Node.js実行前提

Node.jsよりGenAIScript APIを優先する

Node.jsのインポートは避けてGenAIScriptのAPI(genaiscript.d.ts)を使用することを推奨します。
つまり、Node.jsベーススクリプトではなくGenAIScript DSLベーススクリプトに寄せます。

シンプルに書く

コードはシンプルに保ち、例外処理やエラーチェックは避ける提案を行います。
これは堅牢性より生成速度・可読性優先し、LLM処理中心、プロトタイピング前提のコードを作成します。

不確実な部分はTODOを書く

AIの意思決定が曖昧な時、勝手に決めず、TODOとして残すようにします。
例えば以下のようなコメントを残します。

// TODO: confirm input format

誤った自信より不確実性の明示を優先するようになります。

genaiscript.d.tsはimport不要

genaiscript.d.ts で使用されているグローバル型は既にグローバルコンテキストにロードされているため、インポートする必要はありません。
つまりimportを書かず、直接使うようなコードになります。例えば以下のような書き方になります。

await llm.generate(...)