
コパイロットの先へ:AIエージェントが私の日々のワークフローを変えた理由
賢いオートコンプリートは、ほんの始まりにすぎませんでした。ターミナルで自律的に動くAIエージェントへの移行で、ソフトウェアを作り、デバッグし、リリースするやり方が変わりました。
2021年にGitHub Copilotが登場したとき、それはまるで魔法のようでした。モデルがコードの次の1行を予測したり、簡単なユーティリティ関数をリアルタイムで生成したりしてくれるのは、超高速のオートコンプリートと一緒にコードを書いているような感覚でした。
でも、時間が経つにつれて、私たちは慣れていきました。そしてわかってきたのです。「コパイロット」の正体は、少し賢くなったTabキーの便利機能にすぎないと。コードの行は提案してくれても、問題は解決してくれません。構文を書き、見直し、整形するという細かな作業から、こちらはいつまでも離れられないのです。コパイロットがバグのある関数を生成したら、自分でコンパイラを走らせ、エラーを見つけ、それをコピーして、コードを書き直さなければなりません。
2026年半ばまでに、私たちは新しい時代へと移行しました。自律型AIエージェントの時代です。
コパイロットとエージェントの違いは、単なる能力の差ではありません。認知的な作業を委ねられるかどうか、という違いです。コパイロットは、一秒単位で見張っていなければならないアシスタントです。一方のエージェントは、ゴールを伝えれば任せられる同僚です。エージェントがバックグラウンドでループを回しているあいだ、こちらはシステムアーキテクチャに集中できます。
この記事では、こうしたワークフローの進化がなぜ私の日々の開発体験を変えたのか、そしてこの新しいワークフローを支えられるよう、自分の開発環境をどう整えればいいのかをお話しします。
オートコンプリートがもたらす認知負荷
エージェント型ワークフローの威力を理解するには、まず初期のAIコーディングツールが私たちの頭にどれだけの負担をかけていたのかを見ておく必要があります。インラインのオートコンプリートを使っていると、注意が絶えず中断されます。
[コードを書く] ---> [停止:補完候補を読む] ---> [判断:採用 / 修正]
^
(フローが途切れる)
数秒おきに、モデルが1行を提案してきます。そのたびに手を止め、提案を読み、正しいかどうかを判断し、受け入れ、次の行を書き、また同じことを繰り返します。この絶え間ないコンテキストスイッチが、フロー状態をむしばんでいきます。生成されたテキストをリアルタイムで細かくレビューし続ける役回りになるので、ぐったり疲れてしまうこともあります。
しかもコパイロットは、実行環境から切り離されています。自分が生成したコードが実際にビルドできるのか、テストスイートを通るのか、データベーススキーマに沿っているのかを知りません。コンパイルが通るかどうかを確かめる負担は、すべてこちら側に残ったままです。
自律型エージェントのループ
自律型コーディングエージェント(Claude Code、Devin、ターミナルで動くエージェントスクリプトなど)は、ツールを使いながらループを回すことで、この問題を解決します。
エディタの前に座ってコードが補完されていくのを眺める代わりに、もう一段高い抽象度で仕事をするようになります。
- ゴールを設定する:エンジニアリングのタスクを普通の言葉で定義します(例:「APIクライアントにリトライ間隔のパラメータを追加して、テストのモックも更新して」)。
- エージェントのループを回す:エージェントがコードベースを読み、テストスイートを実行し、ソースファイルを編集し、コンパイルエラーに対処しながら、目標とする条件を満たすまでループを繰り返します。
- 差分をレビューする:最終的なgit diffやプルリクエストをレビューします。チェックするのは、フォーマットの細部ではなくロジックです。
自律型エージェントのループがエラーをどう処理するのか、概念図で見てみましょう。
graph TD
Goal[ゴールを定義] --> Plan[エージェントがファイル変更を計画]
Plan --> Edit[コードベースを編集]
Edit --> Build[ビルドコマンドを実行]
Build -->|コンパイルエラー| ReadLog[コンパイラのログを読む]
ReadLog --> Edit
Build -->|ビルド成功| RunTest[テストスイートを実行]
RunTest -->|テスト失敗| ReadTestLog[失敗したテストを読む]
ReadTestLog --> Edit
RunTest -->|テスト通過| Complete[完了:差分をレビュー]
style Build fill:#333,stroke:#666,stroke-width:1px
style RunTest fill:#333,stroke:#666,stroke-width:1px
style Edit fill:#111,stroke:#666,stroke-width:2px
モデルがコンパイラやbashの実行環境と直接やり取りできるようにすれば、「ファイルを保存 → コンパイラの警告を読む → 型を直す → ファイルを保存」というサイクルを丸ごとエージェントに任せられます。これはソフトウェアエンジニアリングにおける地味な繰り返し作業であり、まさにモデルが得意とする仕事です。
今日から取り入れられるエージェント型ワークフロー
日々の開発スタイルをオートコンプリートからエージェントのループへ切り替えたいなら、次の3つのステップを実践してみてください。
- 宣言的にゴールを書く:「このファイルを開いて、この行を変えて」のような細かい手順でエージェントに指示するのはやめましょう。代わりに、ゴールと成功の条件を伝えます。
- 例:
"checkin APIにユーザーロールのバリデーションを追加して。src/test/auth.spec.tsのテストが通ることを確認し、npm run buildを実行して検証すること。"
- 例:
- すばやく回るテストスイートを用意する:エージェントはフィードバックループが速いほど力を発揮します。テストの実行に10分かかるようでは、エージェントのループも遅くなり、トークンもかさみます。ローカルのユニットテストは高速に(5秒未満に)保ち、エージェントが編集をすぐに検証できるようにしておきましょう。
- クリーンな状態でコミットしておく:エージェントをリポジトリで自由に動かす前に、ワークスペースに未コミットの変更がない状態にしておきましょう。そうすれば、エージェントがループにはまって抜け出せなくなったときは
git reset --hardで作業を破棄できますし、git diffで編集内容を簡単にレビューすることもできます。
今後の展望:エージェントネイティブなリポジトリ
これからのリポジトリは、人間のためだけでなく、エージェントのためにも設計されるようになるでしょう。
そこで登場するのが、エージェントネイティブなリポジトリです。こうしたコードベースには、AIエージェント専用の構造化された設定マップ(高度なagents.config.jsonファイルや、標準化されたMCPMCPモデルコンテキストプロトコル:LLMと外部のデータソースやツールを、安全かつ一貫した形で接続するためにAnthropicが開発した、オープンな標準プロトコルです。Read More →サーバーなど)が含まれ、コードベースのアーキテクチャ、モジュールごとの責務、ビルドスクリプト、テスト対象を説明してくれます。
エンジニアが新しく加わったメンバーにコードベースの構成を説明する代わりに、設定マニフェストが、新しくやって来たエージェントに、システムの中をどう進み、どうビルドし、どう拡張すればいいのかを正確に教えてくれるようになるのです。
関連記事
- ターミナル型エージェントとビジュアルエディタの詳しい比較は、Claude Code vs Cursor:作り手目線の徹底比較をどうぞ。
- エージェントとコードベースのコンテキストをつなぐ標準プロトコルについては、MCPはAIアプリケーションのUSB-Cになるで解説しています。
- 自律的なコードループを使いながら品質と基準を保つためのルールは、AIでコード品質を保つための原則を読んでみてください。
参考リンク
- 自律型エージェントのループや研究ベンチマークについては、OpenAI Research Blogで読めます。
- ターミナルツールやエージェントの設定は、GitHub Developer Docsで調べられます。
- 状態管理やパイプライン実行のループについては、Anthropic Developer Portalを参照してください。
考えが変わったきっかけ
何年ものあいだ、私は「コードを書く」という職人技を擁護してきました。メカニカルキーボードで構文を打ち込む手触り、変数を調整する感覚、エディタが構文をハイライトしていく様子。そのすべてに誇りを持っていました。コードの実行をエージェントに任せたら、自分はコードベースから切り離され、怠惰な作り手になってしまう。そう思っていたのです。
そんなとき、レガシーなコードベース全体で、30個のAPIエンドポイントを新しいテナントIDパラメータに対応させる必要が出てきました。繰り返しばかりの、退屈な作業です。
私はclaudeを起動してゴールを伝え、コーヒーを取りに行きました。
3分後に戻ってくると、エージェントの作業はもう終わっていました。git diffを実行して変更を確認すると、エージェントは32個のファイルを修正し、ルートのパラメータを更新し、データベースのクエリを調整し、エンドポイントごとにモックテストを追加していました。コードは一行残らずフォーマットされ、型も正しく、コンパイルが通ることも確認済みでした。
そこで気づいたのです。タイピングへの誇りは、摩擦への執着にすぎなかったのだと。本当のエンジニアリングは、行を打ち込むことの中にはありませんでした。テナント分離をサポートするという、アーキテクチャ上の選択の中にあったのです。実装の細部をエージェントに任せたことで、何時間分もの単調なキーボード作業を省き、システム設計に集中し続けられました。私はコードを打つのをやめ、エージェントに指示を出す側に回ったのです。
更新履歴
コパイロットからターミナル型AIエージェントへの移行を記録。
- •エージェント型ワークフローの進化についてのノートを公開
知識のつながり
バックリンク
この記事に言及している記事
DailySayに聞く
Related Posts
続けて読む

PMI韓国支部の教育委員会でボランティアを始めました:合格体験記のその後
PMP合格後にPMI韓国支部の教育委員会でボランティアを始めた理由、支部と教育委員会の活動、一緒に勉強したい人の参加方法をまとめた、「PMP合格ロードマップ」シーズン1の最終回です。
残しておきたいノートを、ときどき。
プロジェクトマネジメント、AI、プロダクト、旅、そしていま作っているものについて、ときどきお届けします。
スパムは送りません。届くのはときどきのノートだけ。詳しくは プライバシーポリシー.


