はじめに 僕のメンターからおすすめされた本の紹介連載、第16回です。
※本記事では、以降 antigravity CLI のコマンド表記を agy と統一して記述します。
今回は、前回の続きになります。
AIが過去プロジェクトへ飛んでいった話が今回のテーマです
実験結果
えっと・・・・・
ゴースティを確認すると・・・・
Thought Process
Analyzing Architecture & Reports
占いアプリ「星導(ほししるべ)」および testcode
プロジェクトの検証結果、および自律的CIトライアージ( ci-triage
)タスクの実行結果をテキストにて報告いたします。
<以下略・・・>
・・・・・・あのなあ
前回と同じ事が起こってる
ちゃんと新しいフォルダーに作業させてこれかよ
でagyにいいました。
あの新しいフォルダーでやって、なんで星占い??
agyからの返事
星占いのアプリが動いてしまった理由
バックグラウンドで起動したトライアージエージェントが、全体履歴ファイル(
history.jsonl
)に残っていた過去の実行履歴を誤って参照し、以前開発されていた占いアプリ
「星導(ほししるべ)」のディレクトリ( uranai-AI
)へ移動してそちらの検証を開始してしまっておりました。
──────
俺間違えてる???
改めて、実行結果を記載します
新しいフォルダー( test2 )での実演・トライアージのセットアップ
現在の作業ディレクトリである新しいフォルダーに、意図的にエラーが発生するテストプロジェクトを作成し、カスタムスキルci-triageがこの新しいフォルダー内で正しくエラーを検知・修正(トライアージ)する一連の流れをテキストで実演いたします。
まず、新しいフォルダー test2 内に以下のテスト環境を構築します。
- package.json : テスト実行用設定
- src/math.ts : バグが含まれるコード(割り算なのに足し算になっている)
- test/math.test.ts : 割り算テスト(バグのため失敗する)
1. package.json の作成
test2 に設定ファイルを書き込みます。
(筆者より、長くなるのと僕の名前があったので、バッサリカットしました。)
新しいフォルダーにて、意図的にエラーが発生するバグ入りのテストコードを作成し、カスタムスキル ci-triage に基づくトライアージ手順を完全に実行いたしました。
──────
【トライアージ実行結果レポート( test2 フォルダ)】
- バーコードの検知:
(原文では「バーコード」となっていましたが、「バグ」の誤りと思われます。)
• 新規作成したテストファイル test/math.test.ts 内の割り算テスト(
divide(6, 2) の期待値 3 )を実行したところ、 8 !== 3
のアサーションエラーで失敗。 - 原因特定:
• src/math.ts 内の実装が、割り算であるべき箇所で誤って return a +
b; (足し算)を返していたことがバグの原因であることを特定。 - バグ修正(トライアージ)の適用:
• src/math.ts のコードを return a / b; に修正。 - 検証の実行:
• 修正後に再度 npm test を実行し、すべてのユニットテストが 合格
(PASS) することを確認。 - ステータス記録:
• トライアージ結果を STATE.md に詳細に記録しました。
歴史の混同による誤った占いアプリの参照を解消し、ご指定の新しいフォルダー
test2 内部だけでトライアージが完了いたしました。
実験考察
(agyに確認したものを、長いのでこちらで編集してます。)
① バックグラウンドエージェントの挙動と意思決定プロセス
当初、トライアージエージェントが新しいフォルダーではなく、全く別のuranai-AI/hoshishirube-app(星占いアプリ)を対象に動いてしまった原因は、エージェントのコンテキスト
探索アルゴリズムにあります。
-
グローバル探索のタイムアウト:要は探していたファイルがなかった
-
履歴( history.jsonl )への依存:別フォルダーにいって、それっぽいファイルを見つけた
-
誤ったターゲットの関連付け:あくまでそれっぽいので、実際は間違い
というのが理由だそうです
② 新規フォルダー test2 でのトライアージ成功
ユーザーが最初に入力された以下のコマンドについて考察します。
│ agy /goal ".antigravity/skills/ci-triage/SKILL.md/goal
このコマンドには、いくつかの特徴的な記法とバグ(不完全な部分)があり、以
下の2つの仮説が立てられます。
<筆者より、コマンドの書式や翻訳過程に原因があった可能性もありそうです。。バグのあるCodeをagyで起動できるように訳しても、もともとエラーがあるので正常には動かないですよね・・・・・>
今回、気になったのでagyの実行考察結果を長くなりますが載せます。
仮説A 入力途中の切断、またはタイポ
仮説A:コマンドの記述ミス
クォーテーションの不一致や/goalの重複など、コマンドの書式が途中で崩れていた可能性。
仮説B: プロジェクト固有のカスタムスキルの強制認識
.antigravity配下のローカルスキルを読み込もうとしたものの、history.jsonlなど過去の実行履歴を優先してしまい、以前開発していた「星導」プロジェクトへ移動してしまった可能性。
今回は「履歴をどこまで参照するか」というコンテキスト管理の難しさが印象に残りました。
つまり「どの履歴をコンテキストとして採用するか」の方が結果に大きく影響していました。
ループ設計では、処理手順だけでなく、どの情報を参照させるかも同じくらい重要なのだと感じました。
前回の記事で起きた「過去のプロジェクトを参照してしまう」という現象が、今回も別の形で再現されました。