LLM Agent Concepts Comparison
Anthropic / OpenAI / MCPの概念を、Claude CodeやCodexだけに閉じないAgent Engineeringの地図として比較する。
基準日: 2026-09-05 目的: Prompt、Context、Tool、Host、Agent、Verificationの関係を共通モデルで理解し、ローカルAgentへ設計原則を移す。
ラベル
- Equivalent: 目的・責任・ライフサイクルがほぼ同じ。
- Similar: 似た目的だが、実行場所、所有権、状態、UI、Schemaなどが違う。
- Different: 名前は近いが設計責任が異なる。
- No direct equivalent: 一方に同じ責任範囲を持つ公式概念がない。
「Equivalent」はAPI互換を意味しない。ベンダー間の交換可能性を判断するには、表のNotesと元の公式Docsを読む。
Part 1 — Universal Mental Model
1.1 共通のAgent architecture
このモデルで、各ベンダーの名称を次のように置き換えられる。
| 共通ブロック | 実体の例 | 設計質問 |
|---|---|---|
| User Goal | 問い、変更要求、業務目的 | 何をもって達成とするか |
| Instructions | system、developer、CLAUDE.md、AGENTS.md、Skill | 常時か、必要時か、強制か |
| Context | message、Conversation、tool result、Resource、Memory | 何を今回見せるか |
| Model | Claude / OpenAI model / local model | どの出力契約を保証するか |
| Tool Selection | tool_use、function_call、MCP tool、SDK runner | 誰が選ぶか、選べる範囲は何か |
| Host Runtime | Claude Code、Responses application、Agents SDK、Codex、local service | loop、state、permissionのownerは誰か |
| Tool Execution | shell、filesystem、HTTP、DB、MCP Server | どこで、誰の権限で実行するか |
| Observation | tool_result、function_call_output、trace、test | 証拠は再現可能か |
| Verification | test、lint、schema、grader、human review | Agentの自己申告とどう分けるか |
1.2 Agentの最小条件
一般化した定義では、Agentは「モデルが出力した文章を表示するだけ」のものではない。少なくとも次のうち、モデルが次の処理を選び、Hostが結果を再びContextへ戻すloopがある。
- Goalと制約がある。
- Modelが次のTool / branch / answerを選ぶ。
- Hostが選択を検証して実行する。
- Observationを次のContextへ追加する。
- Stop conditionまたはVerificationがある。
ただし、毎回モデルが自由に計画する必要はない。固定されたWorkflowでも、途中にModel callとTool executionがあればAgentic systemの一種になり得る。AnthropicはWorkflowとAgentを「事前定義のコード経路」と「モデルが動的にプロセスを指揮すること」で区別する。
Part 2 — Concept Map
2.1 包含関係
この図の矢印は「実装上いつも親子である」という意味ではなく、設計上の関心がどこに含まれるかを示す。
2.2 用語の短い定義
| 概念 | 定義 | 主な所有者 |
|---|---|---|
| Prompt | モデルへ渡す指示・入力の設計物 | Application / user |
| System Prompt | Applicationの恒常的な指示を置く入力領域 | Host |
| Instructions | 望む行動、制約、出力契約 | Host / user / config |
| Context | 推論時にモデルへ見えるtoken全体 | Context manager |
| Memory | 将来再利用するために保存した情報 | Application |
| RAG | Knowledgeを検索してContextへ入れる処理 | Retrieval layer |
| Tool | 外部のデータ・計算・副作用を扱う実行契約 | Host / service |
| Function Calling | Modelが関数名・引数を構造化して返す形式 | Model API |
| MCP | Host–Client–Server間で外部Capabilityを標準化するProtocol | MCP ecosystem |
| Skill | 知識・指示・資産・Workflowの再利用bundle | Product / application |
| Hook | Lifecycle eventに対する決定的な処理 | Runtime / policy |
| Agent | Modelが次のプロセスやToolを動的に選ぶ系 | Host + model |
| Subagent | 親から委譲され、Contextや役割を分離したAgent | Orchestrator |
| Workflow | 事前定義されたModel・Toolの経路 | Application code |
| Orchestrator | 分解、routing、parallel、統合を担当 | Parent agent / runtime |
| Evaluator | 出力やtraceを基準と照合する仕組み | Eval system |
| Guardrail | 入力・出力・Tool動作を自動検証する仕組み | Runtime / SDK |
| Sandbox | filesystem、network、processなどの実行隔離 | Runtime / platform |
| HITL | 人間が承認・拒否・修正する制御点 | Human + runtime |
| Eval | 成功基準でAgent behaviorを反復測定する仕組み | Team / platform |
2.3 Prompt、Context、Memory、Knowledge
Knowledgeは、会社のDB、ファイル、Web、コード、規約そのもの。Memoryは、将来役立つと判断して保存した一部。RetrievalはKnowledgeやMemoryから今回必要な部分を選ぶ処理。Contextは、その結果にInstructions、Tool定義、会話履歴、観測を合わせた今回の入力である。
したがって、Knowledgeを増やすだけでは回答品質は上がらない。Retrievalの選択、Contextの順序、出典、鮮度、削除、secret filteringが重要になる。
2.4 Tool、Function Calling、MCP
Toolは概念であり、Function CallingはAPIの呼び出し形式、MCPは外部ToolやResourceやPromptを接続・発見する標準Protocolである。Function CallingがあってもMCPは不要な場合があるし、MCP Serverを接続しても、モデルに対するToolの見せ方と実行許可はHostが設計する。
2.5 Skill、Hook、Subagent
Skillは「必要なときに詳細な知識・手順をロードする」ためのbundleに近い。Hookは「eventが起きたら同じ処理を実行する」ための決定的な境界。Subagentは「別のContext・役割・Tool・実行場所でloopを分ける」ための委譲単位である。
三つをPromptの別名として扱うと、目的が崩れる。
Part 3 — Anthropic vs OpenAI
3.1 中核概念対応表
| General Concept | Anthropic | OpenAI | Label | Notes |
|---|---|---|---|---|
| Model response | Claude Messages API response | Responses API response | Similar | item / blockの形は異なる |
| Application instructions | system parameter、messages | developer message、Responses instructions | Similar | roleと優先順位が異なる |
| User input | user message | user input / message | Equivalent | untrusted dataの分離は共通 |
| Tool call | tool_use content block | function_call item、Hosted tool item | Similar | resultの返し方が異なる |
| Tool result | tool_result block | function_call_output item | Similar | ID、item schema、Endpointを確認 |
| Function calling | Tool use / client tool | Function calling | Similar | 概念は共通、API形式は非互換 |
| Structured output | Structured outputs、strict tool use | Structured Outputs、strict schema | Similar | schema制約と対応Modelを確認 |
| Client execution | Application / Host | Application / Host | Equivalent | Modelは通常直接実行しない |
| Hosted/server tool | Anthropic Server tools | OpenAI Hosted tools | Similar | 実行場所、保持、対応Modelが違う |
| Prompt caching | Prompt caching | Prompt caching / cache controls | Similar | 料金・API・Context計算を確認 |
| Context state | Messages履歴、Context windows | Responses、Conversations、previous_response_id | Similar | state persistenceのAPIが違う |
| Context compaction | Claude server-side compaction / context editing | Responses compaction | Similar | 機能状態、opaque item、usageを確認 |
| Workflow | predefined code paths | Application workflow / SDK workflow | Equivalent | モデル自由度を制限する設計 |
| Agent | model dynamically directs process | Responses loop / Agents SDK run | Similar | Agentの所有権・抽象度が違う |
| Orchestration | Agent patterns、Subagents | Handoffs、Agents as tools | Similar | control ownershipが異なる |
| Human approval | Host permission / tool confirmation | Human review / approval | Similar | SDK/API/製品面で実装が異なる |
| Guardrail | Host policy、Hooks、validation | Input/Output/Tool guardrails | Similar | OpenAI SDKに名前付きsurfaceがある |
| MCP | Claude Code/API connector | Responses MCP tool / remote MCP | Similar | protocolは共通、connector adapterが異なる |
| MCP Host | Claude Code / Claude app / custom app | OpenAI app / custom app | Similar | Host責任はMCP仕様に依存 |
| MCP Resource | MCP Resource | Remote MCP Resource経由 | Similar | OpenAI APIでのContext inclusionを確認 |
| MCP Prompt | MCP Prompt | Remote MCP Prompt経由 | Similar | user-controlled primitive |
| Persistent project instruction | CLAUDE.md | AGENTS.md | Different | discovery、hierarchy、size、scopeが違う |
| Skill | Claude Code SKILL.md、project/plugin Skill | OpenAI Skills API、Codex/host Skill | Similar | 同名でもruntimeとdistributionが違う |
| Hook | Claude Code Hook events | Application middleware、guardrail、Codex automation | No direct equivalent | Codexの製品Hooksは別途現行Docs確認 |
| Subagent isolation | Claude Code fresh context / worktree | Codex subagent workflow / Agents SDK handoff | Similar | thread・state・filesystemの範囲が違う |
| Sandbox | Claude Code Bash sandbox | Codex sandbox、Agents SDK sandbox agents | Similar | policy、OS、network、permissionが違う |
| Eval | tests、review、custom eval | traces、graders、datasets、eval runs | Similar | OpenAIはtrace/eval surfaceが明示的 |
| Agent SDK | Claude Agent SDK | OpenAI Agents SDK | Different | loop・tool・session APIは非互換 |
| Coding agent | Claude Code | Codex | Similar | 製品、設定ファイル、UI、権限が異なる |
3.2 重要な非対称性
Anthropicの公式記事はWorkflowとAgentの定義を明示し、Claude Codeの拡張はCLAUDE.md、Skill、MCP、Subagent、Hookという役割別の境界で説明する。一方、OpenAIの現行Agents guideは、Responses APIとAgents SDKのloop ownership、HandoffsとAgents as toolsの会話所有権、GuardrailsとHuman review、TracesとGradersを明示する。
この差から「AnthropicはWorkflow中心、OpenAIはAgent中心」と断定するのは不適切である。両社ともWorkflow、Tool、Agent、State、Guardrail、Evalを扱う。公式Docsが強調する抽象化と製品名が違うだけで、実装判断は共通Mental Modelへ戻して比較する。
3.3 Claude CodeとCodex
| 目的 | Claude Code | Codex | 判定 |
|---|---|---|---|
| Project instruction | CLAUDE.md | AGENTS.md | Different |
| 常時ロードのContext | CLAUDE.md、rules | AGENTS.md chain | Similar |
| On-demand workflow | Skill | Skill / hosted skill | Similar |
| lifecycle automation | Hooks | Application/automation surface | No direct equivalent |
| context分離 | Subagent、worktree | Subagent workflow、thread、custom agent | Similar |
| shell/filesystem | Built-in tools、sandboxed Bash | shell、patch、workspace sandbox | Similar |
| approval | Permission mode / user confirmation | permission mode / human review | Similar |
| model API | Claude API / Agent SDK | OpenAI API / Agents SDK | Different |
| external service | MCP | MCP / connector | Similar |
「CLAUDE.mdをAGENTS.mdに名前変更すれば互換」ということではない。Discoveryと優先順位が製品の仕様なので、両方を使うなら共有規約・製品固有規約・強制Policyを分離する。
Part 4 — Product-specific vs General
4.1 General LLM concept
次は特定ベンダーが変わっても設計対象として残る。
| General concept | 必要な理由 |
|---|---|
| Instructionsとdataの分離 | Prompt injectionと指示競合を扱う |
| Context curation | window、attention、cost、privacyを管理する |
| Structured output | 後段のparserと検証を安定させる |
| Tool contract | 入力、出力、error、side effectを明示する |
| Host-mediated execution | Modelの提案と実行権限を分ける |
| State machine / Agent loop | continue、retry、stopを制御する |
| Permission / approval | side effectと人間の判断を境界化する |
| Sandbox | 実行を狭い環境に閉じ込める |
| Retrieval / memory | 大きなKnowledgeを必要時に選ぶ |
| Verification / eval | 自己申告ではなく証拠で測る |
| Trace / audit | 失敗を再現・改善する |
| Idempotency / timeout | 再試行と外部副作用を安全にする |
4.2 Vendor-specific implementation
| Vendor-specific | そのまま一般化しない理由 |
|---|---|
| Anthropic tool_use / tool_result block | OpenAI Responses itemと形が違う |
| OpenAI function_call / function_call_output | Claude Messagesのblockと非互換 |
| Claude Code CLAUDE.md discovery | CodexのAGENTS.md hierarchyとは異なる |
| Codex AGENTS.md byte limit | 他製品のInstruction limitではない |
| Claude Code Hook event / exit code | OpenAI APIに同じlifecycleがあるとは限らない |
| Agents SDK Runner | Claude Agent SDKやResponses APIのRunnerとは別物 |
| Responses previous_response_id / Conversation | 他APIで同じ保持保証はない |
| Server-side compaction item | opaque stateの形式・保持・料金が異なる |
| OpenAI Hosted tools / connector | Anthropic Server tools、MCP Serverと責任が違う |
| Claude Code sandbox | Codex / local containerと隔離機構が異なる |
| MCP connector adapter | MCP protocolそのものではなくVendor integration |
| Model-specific thinking / context limit | Model、version、providerに依存 |
4.3 読み替えルール
- 製品の名前を消しても意味が残る説明は一般原則として扱う。
- Field name、CLI option、config file path、SDK classはVendor-specificと記録する。
- 「同じ目的」と「同じprotocol」「同じsecurity guarantee」を分ける。
- 対応が見つからない概念はNo direct equivalentと書き、無理な一対一対応を作らない。
- 公式が明言していない思想は、実務上の解釈または一般化した原則とラベル付けする。
Part 5 — ローカルAgent構築への応用
5.1 必須コンポーネント
Required
- Model server: ローカルまたはリモートの推論Endpoint。
- Prompt builder: system/developer/user/dataの分離。
- Context manager: token計測、truncation、retrieval、compaction。
- Tool registry: 名前、description、JSON Schema、side effect、権限。
- Dispatcher: callの実行、timeout、retry、idempotency。
- Validation: schemaだけでなく業務認可と対象確認。
- Agent loop: 最大ターン、stop condition、エラー処理。
- Permission layer: allow、deny、approval、監査。
- Memory / retrieval: Knowledgeを必要時に取得。
- Logging / eval: trace、結果、失敗、回帰を保存。
Optional
- MCP Client / Server。
- Skill loaderとresource bundle。
- Subagent orchestration。
- Hook / middleware。
- Queue、background worker、streaming UI。
5.2 最小Tool loop
def local_agent(goal, model, tools, max_turns=6):
context = [{"role": "user", "content": goal}]
for turn in range(max_turns):
model_output = model.generate(
instructions=SYSTEM_RULES,
context=context,
tools=tools,
)
context.append(model_output)
calls = model_output.get("tool_calls", [])
if not calls:
return verify_final(model_output)
for call in calls:
args = parse_json(call["arguments"])
validate_schema(call["name"], args)
require_permission(call["name"], args)
result = dispatch(
call["name"],
args,
timeout_seconds=20,
idempotency_key=call["id"],
)
context.append({
"role": "tool",
"tool_call_id": call["id"],
"content": bound_result(result),
})
return {"status": "incomplete", "reason": "max_turns"}
ローカルModelがTool callをネイティブに出せないときも、Structured outputでaction objectを出し、同じvalidation → permission → execute → observationの流れへ接続できる。ただし、Parserの失敗、曖昧な引数、モデルの幻覚したTool名を拒否する。
5.3 ローカルで最も重要な順序
- 読み取り専用Toolでround tripを作る。
- JSON Schemaと業務認可を分ける。
- timeout、retry、max turns、ログを入れる。
- side effect Toolの前にapprovalとidempotencyを入れる。
- Sandboxとsecret boundaryを入れる。
- Context compactionとmemoryを追加する。
- MCP、Skills、Subagentsを、必要な問題が明確になってから追加する。
- Dataset、trace、grader、regression testでModel変更を監視する。
5.4 典型的な失敗
| 失敗 | 原因 | 修正 |
|---|---|---|
| Toolを全て常時表示 | 選択肢とSchemaがContextを汚す | registry、tool search、on-demand loading |
| Tool結果を全文返す | Contextと秘密が膨張 | bounded result、要約、再取得ID |
| Promptだけで禁止 | 自然言語は強制Policyではない | runtime deny、sandbox、approval |
| Agentが無限にループ | Stop conditionが曖昧 | max turns、budget、実行状態 |
| retryで二重実行 | side effectのidempotencyがない | idempotency key、transaction、状態照会 |
| 子Agentの結論を無検証採用 | Context分離を信頼性と誤解 | 親でevidenceとtestを確認 |
| 1M Contextへ全ログ | 大きさと関連性を混同 | retrieval、compaction、progressive disclosure |
| ベンダーの設定をコピー | API保証をローカルへ誤移植 | 責任分離から再設計 |
学習ロードマップ
- Prompt / Instructions / Contextの区別を理解する。
- Function callingのcall → execute → resultを自分で書く。
- Schema、error、timeout、retry、approvalをTool契約へ入れる。
- WorkflowとAgent loopを比較し、必要な自由度を決める。
- MCPのHost–Client–Server、Tools / Resources / Promptsを読む。
- Claude CodeのCLAUDE.md / Skills / Hooks / Subagents / Permissionsを製品例として読む。
- OpenAIのResponses API / Agents SDK / Handoffs / Guardrails / Evalsを読む。
- CodexのAGENTS.md / Skills / Subagents / Sandboxを別製品面として読む。
- 自分のローカルAgentへContext、Policy、Verificationを移植する。
まとめ
AnthropicとOpenAIの公式概念を横断すると、中心にあるのは「Modelへより多くの権限を与えること」ではなく、GoalからOutputまでの状態・実行・検証をHostが設計することだと分かる。
- PromptはInstructionsの書き方。
- Contextはそのターンへ入れる全状態。
- Memory / RetrievalはKnowledgeを必要時に選ぶ仕組み。
- Toolは外部世界へ接続する契約。
- Function Callingは一つのAPI形式。
- MCPは外部Capabilityを標準化するProtocol。
- Skillは知識・手順・資産の遅延ロード単位。
- Hookは決定的なlifecycle処理。
- AgentはModelがloopの次の分岐を選ぶ構成。
- Guardrail、Sandbox、HITL、EvalはAgentの自由度を安全に運用する境界。
Sources
- Building effective agents — Anthropic
- Effective context engineering for AI agents — Anthropic
- How Claude Code works
- Extend Claude Code
- MCP Architecture
- MCP Lifecycle
- MCP Tools
- Agents SDK — OpenAI API
- Orchestration and handoffs — OpenAI API
- Guardrails and human review — OpenAI API
- Evaluate agent workflows — OpenAI API
- Conversation state — OpenAI API
- Using tools — OpenAI API
- Custom instructions with AGENTS.md
- Subagents — ChatGPT Learn