コーディングエージェントはSwiftを書くのは上手いが、完成させることができない

私は数ヶ月間、実際のSwiftとXcodeのタスクを用いてAIコーディングエージェントのテストを行いました。単純なデモは使いません。ビルドターゲットやテストを含む、本物のタスクを与えました。

初稿は通常、問題ありません。有能なモデルであれば、正しく見えるコードを書きます。型は一致し、ビューも理にかなっています。もしSwiftを書くことだけが問題であれば、これらのツールはすでに完成しているはずです。

本当の問題は、初稿の後に起こります。それは、「完成しているように見えるコード」と「実際に正しいコード」との間にあるギャップです。

Claude CodeやCodexのような最新のツールは、コンパイルエラーをうまく処理します。ビルドに失敗するようなコードを渡してくることはありません。本当の失敗は、コンパイラには見えないものなのです。

これらの失敗は、私の時間を浪費させます:

• 意図の不一致(Intent mismatch):コードはコンパイルでき、テストもパスします。しかし、挙動が間違っています。エージェントは、あなたの実際の目標ではなく、テストがパスしたという「緑の信号」に従ってしまいます。エージェントには、意図を確認する方法がありません。

• 並行性の競合(Concurrency races):コードはクリーンにビルドされますが、データレースが発生します。これらは実行時にのみ現れます。エージェントはビルドが成功したのを見て、そのまま先に進んでしまいます。これらを修正するには通常、設計の再考が必要ですが、エージェントはそれができません。

• 回帰ループ(Regression loops):エージェントは一つのバグを修正しますが、別のバグを発生させます。二つ目のバグを修正している間に、最初の修正を取り消してしまいます。二つの壊れた状態の間を往復するループに陥るのです。エージェントには、以前に何が失敗したかという記憶が欠けています。

• 不適切なアーキテクチャ(Poor architecture):エージェントはフレームワークと衝突するようなコードを書きます。アプリの構造を無視します。使い捨てのスクリプトとしては機能しますが、実際のコードベースでは失敗します。

これらは言語の問題ではありません。モデルはSwiftを理解しています。コンパイラが見ることができない部分を見落としているのです。結果があなたの意図に合っているか、あるいは構造がプロフェッショナルであるかを知りません。

これにより、コストはトークンから「注意(アテンション)」へとシフトします。数ターンごとに監視を必要とするエージェントは、仕事を節約してくれたことにはなりません。それは「書くこと」を「監督すること」に変えただけなのです。

私は、モデルの周囲のループを変更することで、結果を改善しています。エージェントが何をチェックし、何を記憶するかに焦点を当てています。

これはあなたの経験と一致しますか?Appleプラットフォームでエージェントを実行するとき、どこで失敗しますか?意図の不一致ですか、実行時の競合ですか、それとも他の何かですか?

Source: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3

Optional learning community: https://t.me/GyaanSetuAi