- リンクを取得
- ×
- メール
- 他のアプリ
過去の記事で、Geminiを使ってX(旧Twitter)からBlueskyへのクロス投稿を行うGoogle
Apps Script(GAS)を作成した話を投稿しました。
AIを使ったプログラミングは新規作成の手軽さが魅力的ですが、既存コードの改修となると「頼んでもいない部分を勝手に書き換えてしまう」「実在しない関数名に置き換える」といった想定外の改変が多発し、かなり手を焼かされたのも事実です。
今回は、その時に作成したスクリプトのカスタマイズ(機能統合)を行うにあたり、この「想定外の改変」を克服するための新しいアプローチを試してみたので、その結果をまとめてみたいと思います。
原因は「コードと仕様を記憶しきれないこと」?
そもそもなぜ想定外の改変が起きてしまうのかを考えると、AIの「コンテキスト(トークン)制限」に行き着きます。やり取りが長くなると、Geminiは過去のコードや細かい仕様を正確に保持しきれなくなり、それが結果として勝手なコードの書き換えや先祖返りを引き起こしていると考えられます。
そこで今回は、Gemini本体だけにコードを覚えさせるのではなく、外部のナレッジベースとしてGemini Notebook(旧称:NotebookLM)とGoogleドライブを組み合わせ、役割分担を明確にしてみることにしました。
今回試した役割分担
-
Googleドライブ
最新のソースコードをはじめ、処理の仕様や開発ルールをまとめたドキュメントの保管場所。 -
Gemini Notebook(NotebookLM)
Googleドライブ内のファイルを読み込ませ、「最新コード」と「全体の仕様・過去の経緯」を保持するナレッジベース。 -
Gemini
Notebook内のナレッジを参照させた上で、具体的なコーディング指示を受ける実行役。
実践:用途別に分かれていたBluesky連携ツールの統合
この環境を使って、これまで用途ごとにスクリプトファイルを分けて運用していた複数の「Bluesky連携ツール」を、1つのツールへと集約・統合する作業を行いました。
複数の処理を合体させる作業は、以前のやり方であれば「関係ないコードまで巻き込んで壊れる」パターンの最たるものです。
しかし、今回の方法で進めてみたところ、処理の競合や勝手な仕様変更に悩まされることなく、すんなりと統合を完了させることができました。
完全に改変がゼロになったわけではありませんが、以前と比べると「勝手にコードを書き換えられる問題」は劇的に減ったと感じています。Notebook側が全体の仕様だけでなく、改修のベースとなる「最新のソースコード」もしっかりと保持してくれたことが、この精度向上に大きく貢献してくれました。
実際に運用してみて感じた手間と注意点
かなり快適になった一方で、以前のシンプルなやり方(Geminiにコードを直接貼り付ける方法)と比べると、いくつか運用上の手間が増えることも分かりました。
1. Notebook内の情報を最新化する手間
コードを更新・修正した際、Googleドライブ上の元ファイルも更新して上書きする必要があります。放置するとNotebook側が古いコードを参照してしまい、本末転倒になってしまいます。
2. 取り込めるファイル形式の制限
テキストファイル(.txt)形式であればそのまま扱えますが、JavaScript(.js)などのファイルは事前に拡張子を変更するか、Googleドキュメント化するなどのひと手間が発生します。
私自身がローカルのエディタでファイルを編集してアップロードしていたため、余計にこの工程が手間に感じられた部分もあります。最初からGoogleドキュメント上で直接ソースコードや仕様書を編集・管理する運用に切り替えれば、もう少しスムーズになるかもしれません。
まとめ
今回の改善アプローチは手探りの自己流ではありますが、AIとのやり取りで生じていたストレスや「修正のやり直し作業」は大幅に軽減され、非常にスムーズに作業を進めることができました。
「最新のソースコードと仕様書をNotebookに持たせ、それをGeminiに参照させる」という構成は、GASに限らずAIを使ったちょっとしたスクリプト開発全般で有効だと感じます。
今後も何か必要なツールが出てきた際は、AIとGASを手軽に組み合わせつつ、こういった管理の工夫を取り入れて効率よく開発していきたいと思います。

コメント
コメントを投稿