バイラルデモには「チートコード」が組み込まれている
morluto/reaのようなバイラルデモは、AIエージェントが既存のアプリケーションを検査してその挙動を再現できると謳い、ソフトウェアエンジニアリングはほぼ解決済みであるという主張を煽っている。「Reverse Engineer Anything」のようなツールで示されるこの能力は、人間のプログラマーが不要になる、あるいは少なくともAIの「肉体的な代理人(meat proxies)」に過ぎなくなる未来を予感させる。
しかし、こうした衝撃的なデモには、組み込まれたチートコードが存在する。それは「オリジナルのアプリケーションそのもの」だ。この動作するリファレンスがあることで、意図された機能や結果が可視化され、エージェントは曖昧な要求の意味を推測するのではなく、出力と具体的なターゲットを比較することができる。つまり、アプリケーションそのものが「意図」なのだ。
この決定的な利点により、エージェントは100%の信頼性で継続的に作業を検証できる。彼らは自分が何を作っているのかを把握し、既存の製品の機能や挙動に合わせることができる。Cole Medin氏が指摘するように、こうしたタスクが「驚くほど上手くいく」のはそのためだ。
しかし、この成功は明確な境界線を描き出す。既知の製品をリバースエンジニアリングすることと、新しいものをゼロから構築することは根本的に異なる。エージェントが既存のシステムを完璧に複製できるというデモは、彼らが新しい製品が「あるべき姿」を独自に発見できることを証明するものではない。「インテント・エンジニアリング(意図の設計)」というスキルは、依然として人間にしかできないものだ。
人間の「コピペボタン」になってはいけない
開発者にとっての差し迫った危険は、時代遅れになることではなく、Cole Medin氏が厳しく指摘する「肉体的な代理人(meat proxy)」になることだ。これは、Jiraの要求を深く考えずにエージェントに転送し、その回答をSlackに貼り付けるだけの状態を指す。そのような行動は意味のある判断を何一つ生み出さないにもかかわらず、結果として生じるコードの責任は人間が負うことになる。
言語モデルは、その優れた能力をもってしても、人の心を読むことはできない。どれほど美しく実装された機能であっても、要件、エッジケース、制約、あるいはユーザーの期待が明確に定義されていなければ、全く的外れな問題を解決することになりかねない。LLMから出力された洗練されたコードが、正しい意図を保証するわけではないのだ。
Medin氏は重要な区別を強調している。実装を委任することは、責任を委任することではない。彼は1年以上手作業でコードを1行も書いていないが、事前の計画と最終的な検証には深く関与し続けている。これこそが自動化と放棄を分かつ境界線であり、批判的思考と監督がこれまで以上に重要であることを強調している。
この新しいパラダイムにおける真の価値は「インテント・エンジニアリング」にある。それは、要件を構造化し、検証ハーネスを設計するという緻密なプロセスだ。この人間によるレイヤーがなければ、どんなに高度なエージェントであっても、技術的には正しくても根本的に方向性がずれたソリューションを生み出すだろう。開発者は、単に「何か」を作るのではなく、AIが「正しいもの」を作るように導く、意図の設計者へと役割を進化させなければならない。
次のスキルは、ブリーフ(要件定義)とチェック体制の構築だ
真のスキルはコードを書くことではなく、「インテント・エンジニアリング」にある。それは、生まれたばかりのアイデアを、エージェントにとって正確で実行可能なリファレンスへと変換することだ。つまり、詳細なPRD(製品要求仕様書)、包括的な計画、具体的な例、明確な制約、そして明示的な決定事項を作成することであり、それらはエージェントが構築できるほど具体的でなければならない。これがなければ、どんなに高度なモデルであっても、技術的には正しくても最終的には整合性の取れないコードを生み出すことになる。
堅牢なharnessは双方向に機能します。実装前には、コードが生成される前に明確な質問を投げかけ、スコープと要件を調整します。実装後には、テスト、比較、レビュー手順といった重要な検証を提供し、出力が本来の意図と真に一致しているかを厳密にチェックします。このフィードバックループこそが、人間の判断力が不可欠な貢献をする場所です。
Cole Medin氏の経験を考えてみましょう。エージェントにゲームのプロトタイプ作成を依頼した際、最初は2Dの結果しか得られず、彼の目標とは異なっていました。ブレイクスルーとなったのは、より強力なモデルではなく、彼自身のより明確なガイダンスでした。希望する3Dスタイルの視覚的なリファレンスを提供し、結果を比較するメカニズムを確立することで、エージェントはより近い近似値を生成しました。この改善は、単なる生成能力の向上ではなく、より良いガイダンスと効果的な評価から生まれたものです。Medin氏は、エージェントが誤りを犯す場合、それは通常、人間の意図の指定が不十分であるためだと強調しています。エージェントの能力に関するさらなる探求については、morluto/rea: Reverse engineer anything with agentsのようなプロジェクトを参照してください。
この記事が気に入ったら、毎朝同じようなものをメールで受け取れます。
1日1通 · 2クリックで解除 · サードパーティのトラッキングなし
コード生成では代替できない判断力を学ぶ
では、どのスキルが今後も価値を持ち続けるのかをどう見極めればよいのでしょうか?実用的なテストを適用してみましょう。そのスキルは、問題を定義し、trade-offs(トレードオフ)を検討し、信頼できるリファレンスを提供し、あるいは答えが間違っていることを検知するのに役立ちますか?もしそうなら、AIはそのスキルをより重要にするものであり、価値を下げるものではありません。AIの出力を単に中継するだけでなく、機械を指揮し検証できる人にこそ優位性があります。
身につけるべき持続的なスキルには、要件分析、システム設計、ドメイン知識、分解、テスト、そしてエージェントの作業をレビューする重要な能力が含まれます。構文の知識は依然として役立ちますが、もはや実装への唯一のルートではありません。開発者は今や、意図と検証を優先しなければなりません。
1年以上生のコードを一行も書いていないCole Medin氏は、今でも計画と検証に多くの時間を費やしています。彼は、エージェントがミスをする場合、それは多くの場合、意図の伝達やharnessの設計における失敗が原因であると指摘しています。
エージェントはコーディングの大部分を担うことができますが、何を作るかを決定し、それが機能するかを判断するのは依然として開発者です。未来は、コード生成では代替できない判断力を習得し、AIを自律的な代替物としてではなく、強力なツールとして活用できる人々のものです。これは、ソフトウェアデリバリーにおける人間中心の側面に焦点を当てることを意味します。
よくある質問
AI時代において、ソフトウェア構築を学ぶ価値はまだありますか?
はい。AIはコードを生成できますが、問題を定義し、設計上の決定を下し、結果が実際のニーズを満たしているかを検証するのは依然として人間です。
Intent engineering(意図エンジニアリング)とは何ですか?
Intent engineeringとは、要件を明確にし、AIエージェントが正しいものを作るために十分なコンテキスト、例、制約を与える作業のことです。
なぜAIエージェントはアプリをこれほど効果的にリバースエンジニアリングできるのですか?
動作するアプリは、その挙動と外観に関する具体的なリファレンスを提供するため、エージェントは目に見えるターゲットと自身の出力を比較できるからです。
AIソフトウェア開発におけるharnessとは何ですか?
harnessとは、エージェントを導き、要件を収集し、フィードバックを提供し、その作業をチェックするための周辺プロセスやツールのことです。

