本日は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(...)