概要
- Claude Code は、シンプルかつ直感的なAIエージェント体験を提供
- 複雑な仕組みを避け、単一ループと明快なツール設計 を重視
- claude.mdなどのコンテキストファイル でユーザー設定や好みを反映
- LLM検索中心の設計 でRAGに依存せず、モデル本来の力を最大活用
- ツールやプロンプト設計の工夫 が、他のエージェントとの差別化要因
Claude Codeが「使っていて気持ちいい」理由
- Claude Code は、ターゲット編集や使い捨てツールの操作が快適なエージェント体験を実現
- 適度な自律性 を持ちつつ、ユーザーの制御感を損なわない設計
- Claude 4モデル (特にinterleaved thinking)が主要な処理を担当
- CursorやGitHub Copilot Agents と比較しても、使い勝手が圧倒的に優れている
- MinusX の開発現場でも即採用されるほどの実用性
Claude Codeの設計思想と学び
- LLMの得意・不得意を理解した設計 で、弱点をプロンプトやツールで補完
- コントロールループは非常にシンプル で、デバッグも容易
- 複雑なマルチエージェントやRAG検索は極力排除 し、保守性と拡張性を両立
- 全てを1ファイルにまとめ、不要なボイラープレートを排除
Claude Codeの設計を自作エージェントに活かすポイント(TL;DR)
- 設計はとにかくシンプルに保つことが最重要
- メインループは1つ、分岐は最大1つ、メッセージ履歴も1つだけ
- 小型モデル(例:claude-3-5-haiku)を多用 し、コスト最適化
- ユーザーコンテキストはclaude.md等のファイルで厳密に管理
- プロンプトはXMLタグ・Markdown・豊富な事例で構成
- LLM検索を中心に据え、RAGベース検索は極力使わない
- ツールは低・中・高レベルをバランス良く用意
- エージェント自身がToDoリストを管理し、タスクの見失いを防止
- トーンやスタイルなどの美学も明示的に設計
コントロールループ設計
- メインループは1本化 し、デバッグ性を最優先
- 階層的なタスクはサブエージェント(分岐最大1つ)で処理
- メッセージ履歴はフラットなリストで管理
- サブエージェントは自己増殖不可とし、制御性を担保
- 複雑なマルチエージェント設計は不要
小型モデルの活用
- 重要なLLM呼び出しの半数以上がclaude-3-5-haiku
- 大容量ファイルの読取や要約も小型モデルで十分
- コスト削減効果が大きく、常用推奨
プロンプト設計
claude.mdパターンによるユーザーコンテキスト管理
- claude.md/cursor rules/agent.md などのコンテキストファイルでユーザー設定を厳密管理
- コードベースから推測できない好みやルールも明文化
- リクエストごとにclaude.mdの内容を毎回送信
XMLタグ・Markdown・事例の多用
- <system-reminder> タグでLLMへのリマインドを明示
- <good-example> / <bad-example> でベストプラクティスを具体的に提示
- Markdown見出しでプロンプト内セクションを明確化
- 例:トーン・スタイル、プロアクティブ性、コーディング規約、タスク管理、ツール利用方針
ツール設計
LLM検索中心主義(RAG排除)
- RAGではなく、LLMによるコマンド検索(例:ripgrep, jq, find)を重視
- LLMがコードを深く理解し、柔軟な正規表現やコマンド生成が可能
- RAG導入による複雑化・隠れた失敗モードを回避
- RL(強化学習)による最適化も視野に入る設計
ツールのレベル分けと選定
- 低レベル:Bash, Read, Write
- 中レベル:Edit, Grep, Glob
- 高レベル:WebFetch, mcp__ide__getDiagnostics
- 頻繁利用・高精度が求められるものは専用ツール化
- ツール選択基準や利用例をプロンプトで明示
ToDoリスト管理
- エージェント自身がToDoリストを頻繁に参照・更新
- 長期タスクや文脈の劣化(コンテキストロット)を防止
- 柔軟なタスク追加・修正が可能な設計
ステアラビリティ(制御性)
- トーンやスタイル、プロアクティブ性をプロンプト内で明示
- 「PLEASE THIS IS IMPORTANT」などの強調も未だ有効
- アルゴリズムやヒューリスティック、事例を活用し、望ましい動作へ誘導
このように、 Claude Code は「シンプルな設計」「強力なコンテキスト管理」「LLM本来の力の最大活用」「ツール設計の工夫」によって、他のエージェントと一線を画しています。自作エージェントにもこれらの原則を取り入れることで、 使っていて楽しい・気持ちいいLLMエージェント体験 が実現可能です。