Simon Willison(Djangoフレームワークの共同創設者)。クリスマスツリーを飾り付けながら家族と映画を観ている間、彼はCodex CLI + GPT-5.2を使って、Emil StenströmのJustHTML(html5lib-tests経由の純粋なPython)を依存関係のない純粋なJSライブラリに移植しました。9,200以上のhtml5lib-testsテストケースを実行し、最終的に約9,000行のコードと43件のコミットを作成しました。 プロセス全体を通して、彼は約 8 つのプロンプトのみを送信しました。 もちろん、私は Coding Agent や GPT-5.2 の素晴らしさを自慢するためにここにいるわけではありません。ただ、このケースが Coding Agent の快適ゾーンに完全に適合していることに気付いただけです。 コーディングエージェントにとっての快適ゾーンとは何でしょうか? 1. ある言語から別の言語への翻訳 大規模言語モデルの最も優れた点の 1 つは、「コピー」または「翻訳」であり、自然言語であれプログラミング言語であれ、これを迅速かつ適切に実行できます。 したがって、この場合、Python から JS への翻訳は比較的簡単です。 2. 完全なテスト スイートを備えています。 私たちが毎日どのようにコードを書いているか考えてみてください。書き終わったらテストする必要があります。もし正しくない場合は修正する必要があります。もしこのプロセスにUIテストなどの人間の介入が必要であれば、非常に非効率的になります。しかし、エージェントが自己テストを実行できれば、テストからのフィードバックを収集し、問題が解決するまで継続的に調整と修正を行うことができます。 HTML5標準には、html5lib-testsと呼ばれるテストスイートがあります。これは言語に依存しないテストデータセットです(入力はHTMLで、出力は正しい解析木構造です)。 これはAIに数学の問題を解かせるようなものです。解答は理解できませんが、標準的な解答が載っているワークブックがあります。AIが書き出すコード(プロセス)を一つ一つ精査する必要はありません。AIが計算した結果(アウトカム)が正しいかどうかを確認すれば良いのです。 3. アーキテクチャはすでに設計されており、エージェントは「空白を埋める」ことだけが必要です。 コンテキストウィンドウの長さの制限により、エージェントの各タスクは非常に長いコンテキストを持つことができません。より複雑なプロジェクトでは、コードベース全体をそのまま移行することはできません。そのため、通常はアーキテクチャ設計に基づいてエージェントのタスクを小さなタスクに分割し、コンテキストウィンドウ内で完了できるようにする必要があります。 したがって、アーキテクチャ設計は、実際のプロジェクトとコーディング プロジェクトの両方にとって非常に重要です。 Simon氏はこのプロジェクトをゼロから設計する必要はなく、エージェントにPythonプロジェクトのAPI設計を参照させるだけで済みました。つまり、アーキテクチャは既に利用可能であり、AIは既存のアーキテクチャに基づいてそれを「翻訳」するだけで済みました。 4. 専門家による運営 武侠小説では、同じ剣でも達人の手にかかればより大きな力を発揮しますが、サイモンは間違いなく達人中の達人です。 Simonの操作手順を参照してください: 1) 仕様を確立する (Spec First): 最初のプロンプトでは、コードを求めるのではなく、AI に既存の Python コードを与えて、設計書 (Spec) の JavaScript バージョンを作成するように依頼します。 2) スモーク テスト: AI に非常に単純な「Hello World」レベルの HTML 解析テストを実行させて、リンクが機能していることを確認します。 3. ループ テスト: Simon は、コードがコミットされるたびに 9,000 を超えるテスト ケースが自動的に実行されるように GitHub Actions を構成しました。 - AI がコードを記述 -> テストを実行 -> エラーを報告 -> AI がエラー ログを読み取り -> コードを修正 -> 再度テストを実行。 - 結果: AI は疲れを知らないプログラマーのように、140 万トークンを使用し、すべての緑色のライトが点灯するまで 43 回送信しました。 サイモンはこのプロセスを「エージェントループの設計」と呼んでいます。 そのため、このプロジェクトはエージェントにとって非常に成功しました。 --- コーディング エージェントの快適領域、つまり強みがどこにあるかがわかったので、開発中にその強みを最大限に活用できます。たとえば、次のようになります。 1. 急いで実装せず、まず、従うことができるモデルがあるかどうかを確認します。 2. エージェントが可能な限り自ら要件を検証できるようにします。Chrome Dev Tool MCP、Lint、自動テストなど、検証に必要なツールをエージェントに提供します。 3. 最初に設計し、次に実装します。
スレッドを読み込み中
X から元のツイートを取得し、読みやすいビューを準備しています。
通常は数秒で完了しますので、お待ちください。
