世界を動かす技術を、日本語で。

エージェントがペアプログラミングに向かない理由

2025年6月10日原文(justin.searls.co)

概要

  • LLMエージェント とのペアプログラミングは 人間の思考速度 を超えるため、協調が難しい課題
  • GitHub Copilot Agent の体験から得た気づきと問題点の指摘
  • 効果的な運用には 非同期ワークフローターン制モード の活用が有効
  • AIツール開発者 への改善提案と理想的な機能の提案
  • 今後の展望と ユーザー体験向上 への期待

LLMエージェントとのペアプログラミングの課題

  • LLMエージェント人間の思考速度 を遥かに上回るコード生成能力
  • GitHub Copilot Agent 利用時、初見で動作するメソッド生成や未知のAPI活用による生産性向上体験
  • 人間のペアプログラミング と同様、AIが黙々と作業を進めることで 理解の乖離主体性の喪失 が発生
  • エージェントの高速作業 により、ユーザーが置き去りにされる問題
  • 誤った方向性 での開発進行や、 複雑な修正作業 の発生リスク

解決策と推奨ワークフロー

  • 人間のペア が主導権を握る場合と同様、 タスク分割プルリクエストによるレビュー を推奨
  • エディタ内のエージェントモード でのペア作業は避け、 非同期型ワークフロー (例:GitHub Coding Agent)に移行
  • AIとのペア作業 時は、 半自律的なAgentモード から ターン制のEdit/Askモード に切り替え
  • Editモード での「ピンポン型」作業が 生産性と品質管理 のバランスに最適
  • AI活用の一貫したワークフロー 構築の重要性

AIツール開発者への提案

  • AIエージェントの速度調整 機能(コード行数/分や単語数/分の設定)
  • 作業中の一時停止方向性確認 のためのインタラクション機能
  • チャット以外のUI要素 追加(GitHub Issueへのセッション固定、内蔵ToDoリストなど)
  • 自己懐疑的なAI設計 (頻繁な確認・相談・方向性の妥当性検証)
  • 高度な音声チャット による 人間らしい対話体験 の実現

今後への展望とまとめ

  • エージェント型ペアプログラミング の有効性は、 人間との協調設計 次第
  • AIエージェント速度調整対話的機能 を備えることで、より良い協働関係の構築が可能
  • ユーザーからのフィードバック新機能の導入 による進化に期待
  • ペアプログラミング体験 の質向上を目指す開発コミュニティへの提言

Hackerたちの意見

ペアプログラミングは、すべてのケースに適しているわけじゃないよね。多くのケースには向いてないかも。別のところでも言ったけど、LLMが提案するオートコンプリートで何度も中断されると、いいプログラミングの流れに入るのが絶対に無理になっちゃった。これを自分のワークフローに取り入れるのは本当に苦痛だった。

定期的にコードを書いて、詰まったらAIを使って解決するか、コードのミスをレビューするのがいいよ。あるいは、AIに最初のドラフトを全部書かせて、それを一通り見直して手動で修正するか、プロンプトを使って直すのもアリ。

それに同意するわ。私の解決策は、「非AI」のIDEとCursor/VS Codeを切り替えて使うこと。深い集中はコーディングボットとおしゃべりしてるだけじゃ達成できないからね。

最近新しいノートパソコンを買って、IDEを再設定しなきゃいけなかったんだけど、数時間コーディングしてたらなんか「変」な感じがしたんだ。GitHub Copilotにログインするのを忘れてて、その間ずっとそれなしで作業してたみたい。オートコンプリートを待ってなかったから、すごく積極的で自信が持てたよ。それに、Cursorは「流れ」を中断するのが得意で、次のカーソル位置を予測されるなんて誰が望むんだろう?今のところCopilotは無効にして、ボイラープレートや冗長なタスクにはaiderみたいなエージェントスタイルのツールを使うつもり。

私はVimユーザーで、全く同感だよ。AI-IDEには全然魅力を感じなかったけど、LLMを使って一時的なソリューションを作るのは好きだった(コピペ)。ファンボーイになりたくはないけど、Claude Codeが私の新しいLLMワークフローだよ。全部をやらせるのは難しいけど、既存のコードベースに対してターゲットを絞ったタスクにはすごくうまく機能する。私の経験では、伝統的なコードエディタ(Vim)とLLMを活用したワークフローの完璧なハーモニーだね。

AIの「自動補完」や「コード提案」は最悪だね。特に強い型付けの言語だと、80%正しいだけで、100%正しいIDEと競争してるから。AIエージェントの方がずっといいよ。1) 思考の流れを常に邪魔しないし、2) コンパイルしたりテストを実行したりして、間違ってることを発見して修正してからコードを返してくれるから。

自動補完が大好きで、正直言って他のAI機能よりもよく使ってる。でも、Goで書かなきゃいけないから、ボイラープレートが多くてさ(それに、なんかコードライブラリがあっても助けにならないし…その時点でタイプする方が楽なんだよね)。AIに話すほど面倒なことも手伝ってくれるから、すごく助かってる。私は読むのが早いから、一行の提案はすぐに理解できるし(AIじゃない自動補完みたいに)、長い提案も自分が書こうとしてたものに近いかどうか確認できる。最終的には、AIが何をするかなんとなく分かるようになる。すごいブーストではないけど、ログメッセージやforループを書くのが楽になるよ。ただ、役立つためには、自分が書くよりもずっと早く読む必要があると思う。

Zedには「微妙な」モードがあるから、あの機能がすべてのAIエディタ統合の基本機能になればいいな。

俺はずっと、これを主に教育ツールだと思ってる。ペアプログラミングの目的は、二人がペアでやる方が個々でやるより生産的になるってわけじゃないから、実際にはそうじゃないことが多い。だから、魔法のロボットとペアプログラミングするのは無駄に思える。何も学ばないだろうし。

ペアプログラミングはすべてのケースに適しているわけではない これは本当だと思うけど、ペアプログラミングはほとんどの状況でうまくいくと思う。うまくいかない時は、通常、一方または両方がそのプロセスに全力を注いでいないからだよ。誰かがペアプログラミングに懐疑的で、絶対にうまくいかないと思っているか、厳密な解釈を強要しようとしている場合が多い。

最初にLLMエージェントを試したとき、インタラクティブで双方向のペアコラボレーションを期待してたんだ。でも、実際には自分で全部やりたがるペアの相手が来ちゃった。彼らが書いたコードをちょっとでも修正しようとすると、コンテキストが崩れちゃうからできなかった。私は、ちょっと書いて、相手も少し書いて、また自分が書いて、相手が書くっていう、実際のコラボレーションがしたいんだよね。

私はいつも「まず話し合おう。まだコードを修正しないで」って付け加える。その後、やり取りをして、最後に「適用」って感じ。

Hacker Newsで議論の続きを見る