正本: llm-agent-concepts-comparison.md / 基準日: 2026-09-05 / 29見出し

LLM Agent Concepts Comparison

Anthropic / OpenAI / MCPの概念を、Claude CodeやCodexだけに閉じないAgent Engineeringの地図として比較する。

基準日: 2026-09-05 目的: Prompt、Context、Tool、Host、Agent、Verificationの関係を共通モデルで理解し、ローカルAgentへ設計原則を移す。

ラベル

「Equivalent」はAPI互換を意味しない。ベンダー間の交換可能性を判断するには、表のNotesと元の公式Docsを読む。


Part 1 — Universal Mental Model

1.1 共通のAgent architecture

flowchart LR G[User Goal] --> I[Instructions] I --> C[Context] C --> M[Model] M --> TS[Tool Selection] TS --> H[Host Runtime] H --> E[Tool Execution] E --> O[Observation] O --> C M -->|answer candidate| V[Verification] O --> V V -->|continue| C V -->|human approval if risky| A[Human Approval] V -->|pass| F[Output] A --> E

このモデルで、各ベンダーの名称を次のように置き換えられる。

共通ブロック実体の例設計質問
User Goal問い、変更要求、業務目的何をもって達成とするか
Instructionssystem、developer、CLAUDE.md、AGENTS.md、Skill常時か、必要時か、強制か
Contextmessage、Conversation、tool result、Resource、Memory何を今回見せるか
ModelClaude / OpenAI model / local modelどの出力契約を保証するか
Tool Selectiontool_use、function_call、MCP tool、SDK runner誰が選ぶか、選べる範囲は何か
Host RuntimeClaude Code、Responses application、Agents SDK、Codex、local serviceloop、state、permissionのownerは誰か
Tool Executionshell、filesystem、HTTP、DB、MCP Serverどこで、誰の権限で実行するか
Observationtool_result、function_call_output、trace、test証拠は再現可能か
Verificationtest、lint、schema、grader、human reviewAgentの自己申告とどう分けるか

1.2 Agentの最小条件

一般化した定義では、Agentは「モデルが出力した文章を表示するだけ」のものではない。少なくとも次のうち、モデルが次の処理を選び、Hostが結果を再びContextへ戻すloopがある。

  1. Goalと制約がある。
  2. Modelが次のTool / branch / answerを選ぶ。
  3. Hostが選択を検証して実行する。
  4. Observationを次のContextへ追加する。
  5. Stop conditionまたはVerificationがある。

ただし、毎回モデルが自由に計画する必要はない。固定されたWorkflowでも、途中にModel callとTool executionがあればAgentic systemの一種になり得る。AnthropicはWorkflowとAgentを「事前定義のコード経路」と「モデルが動的にプロセスを指揮すること」で区別する。


Part 2 — Concept Map

2.1 包含関係

flowchart TB L[LLM application] L --> P[Prompt / instructions] L --> CTX[Context engineering] L --> W[Workflow] L --> AG[Agentic system] CTX --> MEM[Memory] CTX --> RET[Retrieval / RAG] CTX --> MCPR[MCP Resources] AG --> LOOP[Agent loop] AG --> TOOL[Tool use] TOOL --> FC[Function calling] TOOL --> MCP[MCP Tools] AG --> SUB[Subagent] W --> ORCH[Orchestrator] AG --> G[Guardrail] G --> HITL[HITL / human approval] L --> EVAL[Eval] L --> SANDBOX[Sandbox] L --> SKILL[Skill] L --> HOOK[Hook]

この図の矢印は「実装上いつも親子である」という意味ではなく、設計上の関心がどこに含まれるかを示す。

2.2 用語の短い定義

概念定義主な所有者
Promptモデルへ渡す指示・入力の設計物Application / user
System PromptApplicationの恒常的な指示を置く入力領域Host
Instructions望む行動、制約、出力契約Host / user / config
Context推論時にモデルへ見えるtoken全体Context manager
Memory将来再利用するために保存した情報Application
RAGKnowledgeを検索してContextへ入れる処理Retrieval layer
Tool外部のデータ・計算・副作用を扱う実行契約Host / service
Function CallingModelが関数名・引数を構造化して返す形式Model API
MCPHost–Client–Server間で外部Capabilityを標準化するProtocolMCP ecosystem
Skill知識・指示・資産・Workflowの再利用bundleProduct / application
HookLifecycle eventに対する決定的な処理Runtime / policy
AgentModelが次のプロセスやToolを動的に選ぶ系Host + model
Subagent親から委譲され、Contextや役割を分離したAgentOrchestrator
Workflow事前定義されたModel・Toolの経路Application code
Orchestrator分解、routing、parallel、統合を担当Parent agent / runtime
Evaluator出力やtraceを基準と照合する仕組みEval system
Guardrail入力・出力・Tool動作を自動検証する仕組みRuntime / SDK
Sandboxfilesystem、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 ConceptAnthropicOpenAILabelNotes
Model responseClaude Messages API responseResponses API responseSimilaritem / blockの形は異なる
Application instructionssystem parameter、messagesdeveloper message、Responses instructionsSimilarroleと優先順位が異なる
User inputuser messageuser input / messageEquivalentuntrusted dataの分離は共通
Tool calltool_use content blockfunction_call item、Hosted tool itemSimilarresultの返し方が異なる
Tool resulttool_result blockfunction_call_output itemSimilarID、item schema、Endpointを確認
Function callingTool use / client toolFunction callingSimilar概念は共通、API形式は非互換
Structured outputStructured outputs、strict tool useStructured Outputs、strict schemaSimilarschema制約と対応Modelを確認
Client executionApplication / HostApplication / HostEquivalentModelは通常直接実行しない
Hosted/server toolAnthropic Server toolsOpenAI Hosted toolsSimilar実行場所、保持、対応Modelが違う
Prompt cachingPrompt cachingPrompt caching / cache controlsSimilar料金・API・Context計算を確認
Context stateMessages履歴、Context windowsResponses、Conversations、previous_response_idSimilarstate persistenceのAPIが違う
Context compactionClaude server-side compaction / context editingResponses compactionSimilar機能状態、opaque item、usageを確認
Workflowpredefined code pathsApplication workflow / SDK workflowEquivalentモデル自由度を制限する設計
Agentmodel dynamically directs processResponses loop / Agents SDK runSimilarAgentの所有権・抽象度が違う
OrchestrationAgent patterns、SubagentsHandoffs、Agents as toolsSimilarcontrol ownershipが異なる
Human approvalHost permission / tool confirmationHuman review / approvalSimilarSDK/API/製品面で実装が異なる
GuardrailHost policy、Hooks、validationInput/Output/Tool guardrailsSimilarOpenAI SDKに名前付きsurfaceがある
MCPClaude Code/API connectorResponses MCP tool / remote MCPSimilarprotocolは共通、connector adapterが異なる
MCP HostClaude Code / Claude app / custom appOpenAI app / custom appSimilarHost責任はMCP仕様に依存
MCP ResourceMCP ResourceRemote MCP Resource経由SimilarOpenAI APIでのContext inclusionを確認
MCP PromptMCP PromptRemote MCP Prompt経由Similaruser-controlled primitive
Persistent project instructionCLAUDE.mdAGENTS.mdDifferentdiscovery、hierarchy、size、scopeが違う
SkillClaude Code SKILL.md、project/plugin SkillOpenAI Skills API、Codex/host SkillSimilar同名でもruntimeとdistributionが違う
HookClaude Code Hook eventsApplication middleware、guardrail、Codex automationNo direct equivalentCodexの製品Hooksは別途現行Docs確認
Subagent isolationClaude Code fresh context / worktreeCodex subagent workflow / Agents SDK handoffSimilarthread・state・filesystemの範囲が違う
SandboxClaude Code Bash sandboxCodex sandbox、Agents SDK sandbox agentsSimilarpolicy、OS、network、permissionが違う
Evaltests、review、custom evaltraces、graders、datasets、eval runsSimilarOpenAIはtrace/eval surfaceが明示的
Agent SDKClaude Agent SDKOpenAI Agents SDKDifferentloop・tool・session APIは非互換
Coding agentClaude CodeCodexSimilar製品、設定ファイル、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 CodeCodex判定
Project instructionCLAUDE.mdAGENTS.mdDifferent
常時ロードのContextCLAUDE.md、rulesAGENTS.md chainSimilar
On-demand workflowSkillSkill / hosted skillSimilar
lifecycle automationHooksApplication/automation surfaceNo direct equivalent
context分離Subagent、worktreeSubagent workflow、thread、custom agentSimilar
shell/filesystemBuilt-in tools、sandboxed Bashshell、patch、workspace sandboxSimilar
approvalPermission mode / user confirmationpermission mode / human reviewSimilar
model APIClaude API / Agent SDKOpenAI API / Agents SDKDifferent
external serviceMCPMCP / connectorSimilar

「CLAUDE.mdをAGENTS.mdに名前変更すれば互換」ということではない。Discoveryと優先順位が製品の仕様なので、両方を使うなら共有規約・製品固有規約・強制Policyを分離する。


Part 4 — Product-specific vs General

4.1 General LLM concept

次は特定ベンダーが変わっても設計対象として残る。

General concept必要な理由
Instructionsとdataの分離Prompt injectionと指示競合を扱う
Context curationwindow、attention、cost、privacyを管理する
Structured output後段のparserと検証を安定させる
Tool contract入力、出力、error、side effectを明示する
Host-mediated executionModelの提案と実行権限を分ける
State machine / Agent loopcontinue、retry、stopを制御する
Permission / approvalside effectと人間の判断を境界化する
Sandbox実行を狭い環境に閉じ込める
Retrieval / memory大きなKnowledgeを必要時に選ぶ
Verification / eval自己申告ではなく証拠で測る
Trace / audit失敗を再現・改善する
Idempotency / timeout再試行と外部副作用を安全にする

4.2 Vendor-specific implementation

Vendor-specificそのまま一般化しない理由
Anthropic tool_use / tool_result blockOpenAI Responses itemと形が違う
OpenAI function_call / function_call_outputClaude Messagesのblockと非互換
Claude Code CLAUDE.md discoveryCodexのAGENTS.md hierarchyとは異なる
Codex AGENTS.md byte limit他製品のInstruction limitではない
Claude Code Hook event / exit codeOpenAI APIに同じlifecycleがあるとは限らない
Agents SDK RunnerClaude Agent SDKやResponses APIのRunnerとは別物
Responses previous_response_id / Conversation他APIで同じ保持保証はない
Server-side compaction itemopaque stateの形式・保持・料金が異なる
OpenAI Hosted tools / connectorAnthropic Server tools、MCP Serverと責任が違う
Claude Code sandboxCodex / local containerと隔離機構が異なる
MCP connector adapterMCP protocolそのものではなくVendor integration
Model-specific thinking / context limitModel、version、providerに依存

4.3 読み替えルール

  1. 製品の名前を消しても意味が残る説明は一般原則として扱う。
  2. Field name、CLI option、config file path、SDK classはVendor-specificと記録する。
  3. 「同じ目的」と「同じprotocol」「同じsecurity guarantee」を分ける。
  4. 対応が見つからない概念はNo direct equivalentと書き、無理な一対一対応を作らない。
  5. 公式が明言していない思想は、実務上の解釈または一般化した原則とラベル付けする。

Part 5 — ローカルAgent構築への応用

5.1 必須コンポーネント

flowchart TB UI[User / CLI / Web UI] --> API[Agent API] API --> CM[Context Manager] CM --> PT[Prompt template / instructions] CM --> MS[Model Server] MS --> TS[Tool Selection] TS --> REG[Tool Registry] REG --> DIS[Dispatcher] DIS --> SCHEMA[Schema validation] SCHEMA --> POLICY[Permission / guardrail] POLICY --> HITL[Human approval] HITL --> EXEC[Sandboxed execution] EXEC --> OBS[Observation / bounded result] OBS --> CM API --> STATE[State store] STATE --> MEM[Memory / retrieval] API --> LOG[Trace / audit] LOG --> EVAL[Dataset / eval runner]

Required

Optional

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 ローカルで最も重要な順序

  1. 読み取り専用Toolでround tripを作る。
  2. JSON Schemaと業務認可を分ける。
  3. timeout、retry、max turns、ログを入れる。
  4. side effect Toolの前にapprovalとidempotencyを入れる。
  5. Sandboxとsecret boundaryを入れる。
  6. Context compactionとmemoryを追加する。
  7. MCP、Skills、Subagentsを、必要な問題が明確になってから追加する。
  8. 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保証をローカルへ誤移植責任分離から再設計

学習ロードマップ

  1. Prompt / Instructions / Contextの区別を理解する。
  2. Function callingのcall → execute → resultを自分で書く。
  3. Schema、error、timeout、retry、approvalをTool契約へ入れる。
  4. WorkflowとAgent loopを比較し、必要な自由度を決める。
  5. MCPのHost–Client–Server、Tools / Resources / Promptsを読む。
  6. Claude CodeのCLAUDE.md / Skills / Hooks / Subagents / Permissionsを製品例として読む。
  7. OpenAIのResponses API / Agents SDK / Handoffs / Guardrails / Evalsを読む。
  8. CodexのAGENTS.md / Skills / Subagents / Sandboxを別製品面として読む。
  9. 自分のローカルAgentへContext、Policy、Verificationを移植する。

まとめ

AnthropicとOpenAIの公式概念を横断すると、中心にあるのは「Modelへより多くの権限を与えること」ではなく、GoalからOutputまでの状態・実行・検証をHostが設計することだと分かる。

Sources