• 思考の迷路でぐるぐる回って終わらない変更
◦ 発生ツール: Gemini CLI。
◦ ツールの概要: 自然言語での指示に基づいてコードの変更などを行うGoogle製のコマンドラインツールです。
◦ 設定オプション: Gemini CLIには、「一回ごとに変更を許可する」か「依頼した変更完了まで全て許可する」のいずれかの変更許可方法が選択できます。
◦ 発生した問題: あるプログラムの変更を依頼し、全てを許可したにもかかわらず、ツールが「呼び出しの制限オーバー」になったり、「うまくいかなかった」と表示したりしながら、同じ変更を試し続け、制限に引っかかり続けるというループに陥りました。
• 終わったはずの作業を隠れて実行
◦ 発生ツール: Devin。
◦ ツールの概要: GUIやSlackからコーディングを依頼できるツールで、Playbookを使用して定型作業を再実行できます。
◦ Playbookによる作業依頼:
1. 特定のブランチから作業用ブランチを作成する。
2. ソースコードを確認する。
3. 修正を作業用ブランチに適用する。
4. プルリクエストを作成する(作業用ブランチから元のブランチへ)。
◦ 発生した問題: Playbookで作業を依頼し、完了したはずの作業が、別の作業の裏で自動的に実行され続けました。その結果、時間が経過するにつれてコストが少しずつ増加していることが確認されました。
◦ 停止試行: プロセスをSleepさせたり、プルリクエストの「もう更新を見ない」というチェックボックスにチェックを入れたりしても、プルリクエストの変更を検知して起動したり、動き続けるそぶりを見せたりして、完全に停止しませんでした。
◦ 最終的な停止方法: セッションをアーカイブすることで停止させることができました。
◦ 問題の原因: Devinのプルリクエスト監視とGitHubアクション(自動テスト、自動コード補正)が複雑に絡み合ってコストを増加させていました。Devinがプルリクエストを作成するとGitHubアクションが動き、コードの修正を提案し、Devinがその修正を反映すると、再度GitHubアクションが動き、これが無限ループとなっていました。テストコード側でも同様の状態が発生しました。
◦ 最終的なPlaybookの修正: この問題を解決するため、Playbookの終了条件に「GithubActionは確認せずに終わること」という条件を明記しました。
まとめとして、AI系のコーディングツールは便利である一方で、注意深く監視していないと意図しない処理を永遠に実行し続ける可能性があることが示されています。また、制限に引っかかったり、不要な費用が発生したりしないように、適切な調整が必要であると結論付けられています。