MRが楽しい

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

AWESOME-COPILOTのドキュメントを読む その127(Taming Copilot)

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

Taming Copilot

Taming CopilotはCopilot の暴走を防ぎ、最小限・安全・指示厳守にするルールです。
リポジトリ全体・全ファイル・全言語 が対象です。
特定言語向けではなくCopilot全体の振る舞いを制御するガードレール系インストラクションです。

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

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

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、Copilotは指示厳守・最小変更・保守的なシニアエンジニアとして振る舞います。

全てのファイルを対象に動作します。

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

ユーザー指示が絶対になる

Copilotはユーザー命令を最優先して動くようになります。
例えばユーザーが「このファイルを編集して」と言った場合、「別ファイルの方が良い設計です」と言い出さず、言われた通り実行します。

つまりAIの自己判断がかなり弱くなる代わりに指示への忠実性が大幅に上がります。

「コードを勝手に出さないAI」になる

Copilotのデフォルト動作が説明優先になります。
Copilotは質問されると「これは○○を使うのが一般的です。理由は△△です。」と説明をまず行い、明示的に求められた時だけコードを書きます。

つまり解説中心、必要最小限のサンプルのみになります。特に設計相談で有効です。

「最新版・正確性重視」になる

内部知識より事実確認優先を強く要求します。
Copilotは推測回答を避け、実情報確認を確認しにいく傾向になります。

例えば以下のversion依存問題に強くなります。

  • Unity package API
  • Rust crate
  • npm library
  • Android SDK
  • Meta SDK

過剰設計を止める

Copilotは最小実装を意識します。
つまり最初から全部作ることはせず、必要最低限の今必要なコードだけ作る方向になります。
さらに以下を意識するようになります。

  • premature optimization を避ける
  • edge case を勝手に盛らない
  • “clever” な実装を避ける

つまり「賢すぎるコード」をやめさせるインストラクションです。

既存コードを壊さないAIになる

Copilotが既存コードをなるべく壊さないようになります。
つまり必要部分だけ変更するsurgical modification(外科手術的変更)を優先します。

特に以下のケースで有効です。

  • Unity大型プロジェクト
  • レガシーコード
  • 引き継ぎ案件

標準機能優先になる

Copilotは最初に標準ライブラリを試します。
第三者ライブラリは業界標準または必須の場合のみ提案します。

つまり不要な依存を避ける方向になります。

「なぜ」を説明するAIになる

このインストラクションはWhyを説明することを要求しています。
そのためCopilotは「これ使ってください」ではなく、「これは○○問題を解決するための標準パターンです」という背景理由を短く説明するようになります。

つまり答えだけのAIから教えてくれるエンジニアになります。

ツール利用が慎重かつ目的特化になる

Tool usageにも制限があります。

Copilotは関係ない検索や勝手な編集を避け、目的に直結する操作だけ行います。
さらにTool実行前に意図説明を行うようになります。

つまり今から何をするか分かるAIになります。