エージェンティック・エンジニアリングとは何か
Simon Willison氏は、コーディングエージェント(コードを書き実行するAI)の支援によるソフトウェア開発の実践を「エージェンティック・エンジニアリング」と定義し、その本質は人間が問題定義と検証を担い、エージェントを効果的に活用してより野心的なプロジェクトを実現することだと論じている。
キーポイント
エージェンティック・エンジニアリングの定義
コーディングエージェント(コードを書き、実行するAI)の支援によるソフトウェア開発の実践を指す。
コーディングエージェントの本質
目標を設定されると、その目標が達成されるまでコードを生成・実行するループを実行するエージェントであり、コード実行能力がその可能性の鍵である。
人間の役割の変化
コードを書くこと自体ではなく、『何を』書くべきか(問題定義、要件、トレードオフの判断)を決め、エージェントに適切なツールと詳細な仕様を提供し、結果を検証・反復することが人間の主要な役割となる。
実践的な価値と展望
効果的に活用することで、より野心的なプロジェクトに取り組み、より多く、質の高いコードを生み出し、より影響力のある問題を解決できるようになることが期待される。
影響分析・編集コメントを表示
影響分析
この記事は、生成AIが単なるコード補助を超えて自律的な開発エージェントとして機能する未来の開発プロセスを定義し、その実践方法の基礎を提示している。ソフトウェアエンジニアリングの役割の根本的な再定義を促し、AI時代の開発者に必要なスキルセットの変化を明確に示す点で影響が大きい。
編集コメント
AIによるコード生成が当たり前になる中で、その次の段階である「実行」までを含めた開発プロセスの全体像を「エージェンティック・エンジニアリング」として概念化した点が秀逸。開発現場の実務者向けの実践的な視点が強く、トレンドを先取りする内容。
*Agentic Engineering Patterns >*
私は、コーディングエージェントの支援を受けてソフトウェアを開発する実践を指すためにアジェンティックエンジニアリング(agentic engineering)という用語を使用しています。
コーディングエージェント(coding agents)とは何でしょうか?それらはコードを書き、かつ実行できるエージェントです。人気の例としては、Claude Code、OpenAI Codex、そしてGemini CLIがあります。
ではエージェント(agent)とは何でしょうか?この用語を明確に定義することは、少なくとも 1990 年代以来 AI 研究者を悩ませてきた課題ですが、私が受け入れている定義(GPT-5 や Gemini、Claude などの大規模言語モデル (LLM: Large Language Models) の分野においては)はこれです:
エージェントは、目標を達成するためにツールをループして実行する
コーディングエージェントに目標を定義するようにプロンプトします。その後、そのエージェントは目標が満たされるまで、コードを生成して実行することをループで行います。
コードの実行こそが、アジェンティックエンジニアリングを可能にする決定的な機能です。コードを直接実行する能力がなければ、LLM によって出力されたものは限られた価値しか持ちません。しかし、コード実行が可能であれば、これらのエージェントは実際に動作するソフトウェアに向かって反復的に進んでいくことができます。
アジェンティックエンジニアリング
今や動作するコードを書けるソフトウェアが存在する中で、私たち人間に残されている仕事は何でしょうか?
答えは*非常に多くのこと*です。
コードを書くことは、ソフトウェアエンジニアの唯一の活動ではありません。この職人技の本質は、常に「どのようなコードを書くか」を見極めることにあります。あらゆるソフトウェアの問題には、数十もの潜在的な解決策が存在し、それぞれに独自のトレードオフがあります。私たちの役割は、これらの選択肢をナビゲートし、私たちが直面する固有の状況と要件に最も適合するものを見つけることです。
コーディングエージェントから優れた結果を引き出すことは、その分野が驚くべき速度で進化し続ける現在において、それ自体が深い主題です。
私たちは、コーディングエージェントに問題を解決するためのツールを提供し、問題の適切な詳細レベルを指定し、結果を検証・反復して、それが堅牢かつ信頼できる方法で私たちの問題を解決しているという確信が持てるまで続ける必要があります。
LLM(大規模言語モデル)は過去のミステイクから学習しませんが、コーディングエージェントは、私たちがその過程で学んだことを反映するように意図的に指示やツールハネスを更新すれば、学習することができます。
効果的に活用されれば、コーディングエージェントは、取り組むプロジェクトにおいてより野心的になることを可能にします。アジェンティックエンジニアリング(Agentic Engineering)は、より多くのインパクトのある問題を解決する、より多く、高品質なコードを生産するために私たちを支援すべきです。
このガイドについて
取り扱おうとしている分野と同様に、『アジェンティックエンジニアリングパターン』もまさに進行中の作業です。私の目標は、これらのツールを活用して実証可能な結果をもたらすパターンを特定・記述し、ツールの進化に伴ってすぐに陳腐化することのないようなものを見つけることです。
新しい技術が登場するたびに、さらに章を追加していく予定です。どの章も完成したとは考えないでください。これらのパターンに対する理解が進むにつれて、既存の章も更新していきます。
タグ: コーディングエージェント, エージェント定義, 生成 AI, エージェンティックエンジニアリング, AI, LLM
原文を表示
*Agentic Engineering Patterns >*
I use the term agentic engineering to describe the practice of developing software with the assistance of coding agents.
What are coding agents? They're agents that can both write and execute code. Popular examples include Claude Code, OpenAI Codex, and Gemini CLI.
What's an agent? Clearly defining that term is a challenge that has frustrated AI researchers since at least the 1990s but the definition I've come to accept, at least in the field of Large Language Models (LLMs) like GPT-5 and Gemini and Claude, is this one:
Agents run tools in a loop to achieve a goal
You prompt the coding agent to define a goal. The agent then generates and executes code in a loop until that goal has been met.
Code execution is the defining capability that makes agentic engineering possible. Without the ability to directly run the code, anything output by an LLM is of limited value. With code execution, these agents can start iterating towards software that demonstrably works.
Agentic engineering
Now that we have software that can write working code, what is there left for us humans to do?
The answer is *so much stuff*.
Writing code has never been the sole activity of a software engineer. The craft has always been figuring out *what* code to write. Any given software problem has dozens of potential solutions, each with their own tradeoffs. Our job is to navigate those options and find the ones that are the best fit for our unique set of circumstances and requirements.
Getting great results out of coding agents is a deep subject in its own right, especially now as the field continues to evolve at a bewildering rate.
We need to provide our coding agents with the tools they need to solve our problems, specify those problems in the right level of detail, and verify and iterate on the results until we are confident they address our problems in a robust and credible way.
LLMs don't learn from their past mistakes, but coding agents can, provided we deliberately update our instructions and tool harnesses to account for what we learn along the way.
Used effectively, coding agents can help us be much more ambitious with the projects we take on. Agentic engineering should help us produce more, better quality code that solves more impactful problems.
About this guide
Just like the field it attempts to cover, *Agentic Engineering Patterns* is very much a work in progress. My goal is to identify and describe patterns for working with these tools that demonstrably get results, and that are unlikely to become outdated as the tools advance.
I'll continue adding more chapters as new techniques emerge. No chapter should be considered finished. I'll be updating existing chapters as our understanding of these patterns evolves.
Tags: coding-agents, agent-definitions, generative-ai, agentic-engineering, ai, llms
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み