みんなコーディングエージェントは魔法だと思ってる。プロンプト打って、コード出てくる。オートコンプリートの賢い版。
5分見てたら分かる:サブシステムのカオスが次に何するかで常に揉めてる。
お前が聞く:「NextAuthで認証追加して。」
想像すること:AIが理解して、コード書く。
実際に起きること:
これは知性じゃない。より良い記憶力を持った試行錯誤だ。
ほとんどのエージェントタスクを殺すのがこれ:
お前のコードベース: 50,000行
エージェントのコンテキストウィンドウ: 8,000トークン(〜2,000行)
エージェントが見るもの: コードの4%
エージェントがどの4%を見るか選ぶ。間違える?お前のパターンに合わないコード書く。持ってないライブラリ使う。規約無視。
先週エージェントが機能追加しようとするの見てた。ループ回数:7。
試行1: importパス間違い
試行2: import直した、関数シグネチャ間違い
試行3: シグネチャ直した、依存関係忘れた
試行4: 依存関係追加、テスト壊れた
試行5: テスト直した、新しいバグ導入
試行6: バグ直した、importに戻った
試行7: ユーザー諦める
各試行がトークンかかる。時間かかる。エラーが複合する、エージェントは自分の失敗パターンが見えないから。
退屈で、よく定義されたタスク:
パターン:解決策が明らかでスコープが狭いときエージェントは優秀。判断が必要なとき失敗する。
動くもの:
1. タスクを小さい部分に分解
2. エージェントに一部分だけ与える
3. 出力をすぐレビュー
4. ミスは自分で直す
5. 繰り返し
エージェントは速いインターン、シニアエンジニアじゃない。そう扱え。
エージェントは賢くない。正しくなるまで間違うのが速いだけだ。
— blanho
オートコンプリートからコパイロットから自律エージェントまで。ほとんどの開発者は何が変わってるか見ていない。
どちらも同じAPIを呼んでいる。違いはエージェントがどう呼び出すかだ — そしてその違いは思っている以上に重要だ。
みんなOpenAIをデフォルトにする。Grabは速くて安い1Bモデルを作った。レンタルをやめるべきはいつか?