初期のAI Coding Assistantは、賢いAutocompleteのように感じることが多くありました。
現在はProductやModeによって、複数Fileを読み、RepositoryをSearchし、Patchを提案し、Commandを実行してIssueを解くところまで進んでいます。
CursorやCodexは、こうした広い意味のAI Coding Assistant / Coding Agentを理解する例です。
機能は更新されるため、画面やButtonを暗記するより仕組みを理解しましょう。
Repository Contextが必要
「Login Bugを直して」と一文だけ言われても、Modelには情報が足りません。
- Authentication Code
- Route
- Test
- Config
- Error Log
- Related Function
- Dependency Version
などを読む必要があります。
そのためCoding Toolは、Repository Search、File Retrieval、Code Indexなどを使い、必要なContextをModelへ渡します。
Code EditはTool Action
Language Modelが変更案を生成し、周囲のProductがEdit Toolを使ってFileへ反映します。
重要なのはDiffです。
どのLineがAdd、Delete、Modifyされたかを確認できます。
AIが書いたCodeも、人間のDeveloperが書いたCodeと同じようにReviewするべきです。
Terminal AccessはPowerもRiskも増やす
AgentがTest、Package Install、Git Status、Script実行を許可されている場合、TextだけのAssistantより強力です。
同時に本物のSystem Changeも起こせます。
第020回のAgent設計と同じく、Tool Permission、Approval、Logが重要になります。
GitがSafety Netになる
第027回のGitはCoding Agentと特に相性が良いです。
大きな変更前に、
- Working TreeをCleanにする
- 意味のあるCommitを作る
- Diffを読む
- Testを実行する
- 無関係な変更を混ぜない
ようにします。
Agentが失敗しても、Version Controlが戻る道を作ります。
AIは自信を持って間違える
存在しないAPIを作る、Dependencyを誤解する、Edge Caseを消す、間違った理由でTestをPassさせることがあります。
Compileした = 正しい、ではありません。
一つのTestをPassした = 安全、でもありません。
Security、Behavior、Performance、Maintainabilityも必要に応じて確認します。
Task Boundaryを明確にする
「Projectを良くして」より、
「Function Xのnull handlingを修正し、Regression Testを追加。Public APIは変えない。Destructive Commandの前に確認し、最初にDiffを見せる」
の方が作業もReviewも明確です。
ProductによってWorkflowは違う
IDE中心、Chat中心、Terminal中心、Cloud Sandbox、Repository Taskなど、周囲のSystemが違います。
同じModelを使っていてもToolとContext Selectionが違えば体験も変わります。
今日の一文
AI Coding Toolは、ModelにRepository ContextとDevelopment Toolを組み合わせたSystemであり、価値はCode生成だけではなく全体のWorkflowにあります。
次の第034回ではOpenAI、Gemini、Grokなど、CompanyとModelを混同しない見方を整理します。
コメント
質問、感想、補足したいことがあれば、ここに残せます。
まだコメントはありません。1Fになってみませんか。