「AIにコード書かせたら動いた。でもこれ、本当に大丈夫なのか?」
最近こう思うことが増えた。
僕は2026年に入ってから、開発の起点が完全に変わった。「まずClaude Codeにやらせてみよう」が口癖になった。自分で書くことからではなく、エージェントに任せることから始める。
便利だ。まじで便利。でもふとした瞬間に不安がよぎる。
AIが書いたコードを、僕はどこまで理解しているんだろう?
この記事では、Vibe Codingの品質課題をデータで確認する。その上で、解決策として注目されているAgent Engineeringの実践方法を紹介する。「AIに任せる開発」を否定するつもりはない。品質を担保しながら速さも活かす方法を一緒に考えたい。
Vibe Codingの現在地:データが示す品質リスク
まずは現状を把握しておこう。
2025年のStack Overflow調査(約49,000人が回答)によると、84%の開発者がAIツールを使用している。コードの約41%がAI生成だという推計もある。Vibe Codingはもはや一部の先進的な開発者のものではなく、主流の開発スタイルになった。
ただし、その裏には無視できないデータがある。
Photo by Peter Masełkowski on Unsplash
CodeRabbitが470件のGitHub PRを分析(2025年12月発表)した結果、AI生成PRは人間と比べて約1.7倍多くの問題を含んでいた。特に深刻なのはセキュリティだ。XSS脆弱性は2.74倍、パフォーマンス非効率(過剰I/O)に至っては約8倍。
Veracodeの調査では、100以上のLLMをテストした結果、45%のAI生成コードがOWASP Top 10の脆弱性を含んでいたと報告されている。
さらに衝撃的なのは、METRの研究だ。16名の経験豊富なOSSコントリビューターが246のタスクに取り組んだところ、AIツール使用時に完了時間が19%増加した。開発者は事前に「24%短縮できるだろう」と予測していたのに、実態は逆だった。
僕自身も似た経験がある。Claude Codeにゴールが曖昧なまま指示を出すと、修正ループが増えるだけで全然効率的じゃない。人に説明してうまく伝えられないことは、AIにも伝わらない。その感覚はある程度正しいと思っている。
つまり、Vibe Codingは速く書ける。でも速く正しく書けるとは限らない。
ここが今、多くのエンジニアが直面している壁だ。
Vibe CodingからAgent Engineeringへ:Karpathyが示した転換点
では、この品質課題にどう向き合えばいいのか。
興味深い動きがある。Vibe Codingという言葉を2025年2月に生み出したAndrej Karpathy自身が、2026年2月に「vibe codingはpassé(時代遅れ)」と宣言した。そして新たに提唱したのがAgentic Engineeringだ。
Karpathyはこう言っている。
「agenticなのは、99%の時間コードを直接書かず、コードを書くエージェントをオーケストレートするため」
つまり、開発者の役割が「コードを書く人」から「エージェントを設計・監督する人」に変わるということ。
この考え方を補強する概念として、ハーネスエンジニアリングがある。Martin Fowlerのサイトでも紹介されている概念で、Agent = Model + Harnessという考え方だ。
わかりやすく言うと、こういうことになる。
- モデル(Claude, GPT等)= CPU
- コンテキストウィンドウ = RAM
- ハーネス(制約・ルール・フィードバックループ)= OS
- エージェント = アプリケーション
2025年は「エージェントがコードを書けること」が証明された年だった。2026年は「エージェントではなく、ハーネスが難しい部分だった」と判明した年だ。
僕もこの変化を肌で感じている。2026年に入ってから「ハーネスエンジニアリング」という言葉をよく聞くようになった。コーディングエージェントに留まらず、エージェント全体を制御する概念が次々と生まれている。正直、変化についていくのがやっとだ。
もちろん、Agent Engineeringにも課題はある。品質が本番環境の最大の障壁だと約3分の1のチームが指摘している。非決定論的な動作やトレーシングインフラの未成熟など、まだ発展途上の技術であることは間違いない。
ただ、方向性としては正しいと思う。では具体的にどう実践するか。
実践1:test-firstパターンでAI生成コードの品質を担保する
Agent Engineeringの最も基本的で、今日から始められる実践がある。
Simon Willisonが公開したAgentic Engineering Patternsガイドで詳しく解説されているtest-firstパターンだ。
やり方はシンプル。
ステップ1:まずテストを実行する
エージェントに新しい作業を始めさせる前に、たった4語のプロンプトを打つ。
First run the tests
これだけで3つの効果がある。
- テストスイートがどこにあるか発見できる
- プロジェクトの規模感を把握できる
- テストを意識したマインドセットが確立される
ステップ2:Red/Green TDD
従来のTDD(テスト駆動開発)をエージェントに適用する。
- Red: まず失敗するテストを書く(エージェントにテストを書かせてもいい)
- Green: エージェントにテストを通すためのコードを書かせる
Willisonの言葉を借りれば、「コードが一度も実行されていなければ、本番で実際に動くかは純粋に運」だ。
ステップ3:CLAUDE.mdとHooksでガードレールを作る
CLAUDE.mdはエージェントの「憲法」のようなもの。ここにルールを書いておくと、エージェントが従ってくれる。
例えばこんな記述を追加する。
# テストルール
- 新しいコードを書いたら必ずテストも書くこと
- コミット前にテストが全て通ることを確認すること
- テストなしのコードはコミットしない
さらにHooksを使えば、エージェントの判断に関係なくガードレールを設けられる。コミット前にテストが通っていなければブロックする、といった設定が可能だ。
これは僕の実感とも一致する。ゴールが明確なほどClaude Codeは正しく動く。テストは「期待する動作」を明確にする最良の手段だ。曖昧な指示ではなく、テストでゴールを定義する。それだけでエージェントの出力精度が上がる。
実践2:マルチエージェントで「書く」と「検証する」を分離する
ここまでのtest-firstパターンは、1つのエージェントの中で品質を上げる方法だった。
次のステップとして注目されているのが、マルチエージェントオーケストレーションだ。「書く」「テストする」「レビューする」を別々のエージェントに分ける考え方。
人間のチーム開発と同じだ。1人が書いて、別の人がレビューする。これをAIエージェントで再現する。
Claude Code Agent Teams
Claude Codeには、2026年2月にリリースされた実験的機能「Agent Teams」がある。
- 1つのセッションがチームリーダーとして機能
- 独立したチームメイトを生成し、各自が独自のコンテキストウィンドウを持つ
- ピアツーピア通信が可能で、共有タスクリストで依存関係を追跡
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 で有効化できる。
oh-my-claudecode
もう1つ注目なのが、GitHub Trending #1を獲得したoh-my-claudecodeだ。
- 複数のClaude Codeインスタンスを並列実行
- 各インスタンスが分離されたGit worktreeで動作
- 簡単なタスクはHaiku、複雑な推論はOpusに自動ルーティング
- 3-5倍の高速化と30-50%のトークン削減を謳っている
Photo by Boitumelo on Unsplash
僕がClaude Codeを一番使っている理由の1つがここにある。Codexも同僚の中で評判がいいけど、Claude Codeはエージェントをワークフローのように使えるのが強い。コーディングだけでなく、Chrome操作やコンピュータユースなど業務全般で活躍できる。
ツール選びはコーディング性能だけでなく、業務全体での活用範囲で判断する時代になっていると思う。
コスト問題にも触れておく
ただし、正直に書いておくとコストは無視できない。Agent Teamsのコストは単一セッションの3-7倍になる。最適化されていないマルチエージェントシステムは、必要量の10-50倍のトークンを処理してしまうこともある。
しかし、ルーティング最適化で60-80%のコスト削減が可能だというデータもある。簡単なタスクは軽量モデルに委譲するだけで大幅に改善する。最初から全力で導入する必要はなく、段階的に取り入れるのが現実的だ。
Agent Engineeringはまだ発展途上
マルチエージェントの可能性について語ってきたが、正直に課題も書いておく。
非決定論的な動作が最大の難題だ。同じ入力から異なる結果が出る。テストとデバッグが従来のソフトウェアと根本的に異なる。「昨日は動いたのに今日は動かない」が日常的に起こりうる。
コスト予測の困難さも問題だ。通常のタスクはそこそこの費用で済む。しかしエッジケースに遭遇すると、コストが数十倍に跳ね上がることもある。企業での予算管理を考えると頭が痛い。
ガバナンスの問題も未解決だ。アクセス権限、説明責任、実行制限のフレームワークはまだ確立されていない。
そしてもう1つ、僕が気になっているのはエンジニアの仕事がどう変わるのかだ。AIエージェントの進化で、仕事がなくなるのではという恐怖感がある。
ただ、変化に怯えるだけでは何も始まらない。変化を活かして自分の領域を広げる方が建設的だと思う。むしろ他部署の仕事を取りに行くくらいの姿勢の方がいい。仕事の定義が変わっている以上、領域を広げた方が価値は上がるはずだ。
Agent Engineeringはまだ発展途上だ。でも、だからこそ今のうちに触っておく価値がある。
まとめ
この記事のポイントを整理する。
- Vibe Codingの品質リスクは数字で出ている。AI生成コードはバグ1.7倍、脆弱性2.74倍。「動いたからOK」は危険
- Karpathyが「vibe codingは時代遅れ」と宣言し、Agentic Engineeringを提唱。開発者の役割はコードを書く人からエージェントを設計する人へ
- test-firstパターンが最も基本。「First run the tests」の4語から始められる。CLAUDE.mdとHooksでガードレールを作る
- マルチエージェントで書く・検証を分離。Agent TeamsやSubagentsで人間のチーム開発を再現する
- コストと課題は正直にある。3-7倍のコスト増、非決定論的動作、ガバナンス未確立。段階的に導入が現実的
始め方はシンプルだ。
- CLAUDE.mdに「テスト必須」のルールを追加する
- Hooksでコミット前テストを強制する
- 慣れたらSubagentsで「書く」と「検証する」を分離してみる
Vibe Codingを否定する必要はない。ただ、そこに「工学」の視点を加えるだけで、速さと品質を両立できるようになる。
まずはCLAUDE.mdに一行追加するところから始めてみてほしい。
参考リンク
- Simon Willison — Agentic Engineering Patterns — test-firstパターンの詳細解説
- CodeRabbit — State of AI vs Human Code Generation Report — AI生成コードの品質データ
- Martin Fowler — Harness Engineering — ハーネスエンジニアリングの概念
- Claude Code 公式ドキュメント — Sub-agents — Agent Teams/Subagentsの使い方
- Anthropic — 2026 Agentic Coding Trends Report — エージェントコーディングの最新動向