はじめに
LangChainが2026年3月15日にリリースした Deep Agents は、長期的・複数ステップのタスクに特化したオープンソースのエージェントハーネスである。LangGraphランタイム上に構築され、タスク計画(Planning)、仮想ファイルシステムによるコンテキスト管理、サブエージェント生成という3つの中核機能を備える。
従来のLLMエージェントは短いツール呼び出しループでは機能するものの、ステップ数が増えるとコンテキストウィンドウの圧迫やステート管理の破綻が起きやすい。Deep Agentsはこの「長期タスク問題」を構造的に解決するために設計されたフレームワークである。
Terminal Bench 2.0ベンチマークではClaude Sonnet 4.5使用時に約42.65%のスコアを記録し、同モデルで動作するClaude Codeと同等の性能を達成している。MITライセンスで公開されており、GitHub上で10,000以上のスターを獲得した。
この記事で学べること
- Deep Agentsのアーキテクチャと設計思想
-
create_deep_agentAPIを使ったエージェント構築の基本 - 計画ツール・ファイルシステムバックエンド・サブエージェントの仕組み
- Claude Code・Codex CLIとの比較と使い分け
対象読者
- AIエージェント開発に取り組むPythonエンジニア
- LangChain / LangGraphを既に使用しているか、導入を検討している方
- Claude CodeやCodex CLIと比較検討したい方
TL;DR
- Deep AgentsはLangGraph上に構築されたオープンソースのエージェントハーネス(MITライセンス)
-
write_todosによる計画、仮想ファイルシステムによるコンテキスト管理、taskによるサブエージェント生成が中核機能 - モデル非依存で、Anthropic・OpenAI・Google等15以上のプロバイダーに対応
- Terminal Bench 2.0でClaude Code同等のスコア(約42.65%、Sonnet 4.5使用時)
-
pip install deepagentsで即座に利用開始可能
Deep Agentsのアーキテクチャ
Deep Agentsは3つのレイヤーで構成される。
Foundation Layer(SDK)
コアとなる deepagents パッケージが create_deep_agent() 関数を提供する。この関数はLangGraphの CompiledStateGraph を返すため、LangGraphのストリーミング、永続化、チェックポイント、LangGraph Studioでの可視化がそのまま利用できる。
from deepagents import create_deep_agent
agent = create_deep_agent(
system_prompt="You are a research assistant",
tools=[my_custom_tool],
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "Analyze the latest AI trends"}]}
)
create_deep_agent() はミドルウェアパイプラインを内部で組み立てる。計画(TodoListMiddleware)、ファイル操作(FilesystemMiddleware)、サブエージェント(SubAgentMiddleware)、メモリ(MemoryMiddleware)といったミドルウェアが自動的に組み込まれる。
Application Layer(CLI・ACP)
SDK上に構築されたCLIアプリケーション(deepagents-cli)は、ターミナルベースの対話型コーディングエージェントとして動作する。
# インタラクティブモード
deepagents
# 非インタラクティブモード(パイプ入力)
echo "Fix the bug in main.py" | deepagents -n
CLIは HITLMiddleware(Human-in-the-Loop)によるコマンド承認フローを備え、シェルコマンドの許可リストを設定できる。
Integration Layer(サンドボックスバックエンド)
Modal、Runloop、Daytonaといったリモート実行環境との統合レイヤーである。ローカル実行だけでなく、隔離されたサンドボックス環境でのエージェント実行をサポートする。
中核機能 1: タスク計画(Planning)
Deep Agentsは write_todos ツールによる明示的なタスク計画を採用している。エージェントが複雑なタスクを受け取ると、まずサブタスクに分解し、各ステップの進捗を追跡しながら実行する。
# エージェント内部で自動的に呼び出される計画ツールの動作イメージ
# write_todos ツールがタスクを分解する
todos = [
{"id": 1, "task": "既存コードの構造を把握する", "status": "done"},
{"id": 2, "task": "テストケースを追加する", "status": "in_progress"},
{"id": 3, "task": "リファクタリングを実施する", "status": "pending"},
]
TodoListMiddleware がこの計画機能を提供する。暗黙的な推論チェーンではなく、明示的なTODOリストとしてタスクを管理するため、進捗の可視化やデバッグが容易になる。
中核機能 2: ファイルシステムバックエンド
Deep Agentsはすべてのファイル操作を BackendProtocol で抽象化し、6つのファイルツールを提供する。
| ツール名 | 機能 |
|---|---|
read_file |
ファイル読み込み |
write_file |
ファイル書き込み |
edit_file |
ファイル編集(差分適用) |
ls |
ディレクトリ一覧 |
glob |
パターンマッチによるファイル検索 |
grep |
ファイル内容の正規表現検索 |
バックエンドは用途に応じて切り替えられる。
| バックエンド | 用途 |
|---|---|
StateBackend |
インメモリ(デフォルト、エフェメラル) |
FilesystemBackend |
ローカルディスク+サブプロセス実行 |
StoreBackend |
LangGraph Storeベースの永続ストレージ |
CompositeBackend |
パスベースのルーティング(一時ファイル処理) |
SandboxBackendProtocol |
リモート実行インターフェース(Modal等) |
この仮想ファイルシステムが、コンテキストウィンドウ圧迫の問題を解決する鍵となる。エージェントは中間成果物(コード、レポート、検索結果)をファイルに書き出してプロンプトウィンドウから解放し、必要なときに読み戻す。状態が約80,000文字を超えると SummarizationMiddleware が自動的に会話履歴を要約し、/offloaded_history/ に退避する。
中核機能 3: サブエージェント生成
SubAgentMiddleware が提供する task ツールにより、親エージェントがコンテキスト隔離された子エージェントを生成できる。
# エージェント内部でのサブエージェント呼び出しイメージ
# task ツールで専門化されたサブエージェントを生成
result = task(
instruction="Search for the latest pricing of GPT-5.4 API",
# サブエージェントは親とは独立したコンテキストで動作
)
この階層的なエージェント分解により、各サブタスクを専門化されたエージェントに委任できる。サブエージェントの実行結果は親エージェントの会話状態に直接統合される。
MCP統合
Deep Agentsは langchain-mcp-adapters を通じてModel Context Protocol(MCP)サーバーとの統合をサポートする。MCP経由で外部ツール(データベース、API、ファイルシステム等)をエージェントに接続できるため、既存のMCPエコシステムの資産をそのまま活用できる。
モデル設定とプロバイダー対応
LangChainの init_chat_model() を通じて、15以上のLLMプロバイダーに対応する。
from deepagents import create_deep_agent
# Anthropic
agent = create_deep_agent(model="anthropic:claude-sonnet-4-6")
# OpenAI
agent = create_deep_agent(model="openai:gpt-5.3-codex")
# Google
agent = create_deep_agent(model="google:gemini-3-pro")
CLIではTOMLベースの ModelConfig でセッションごとのモデル選択と切り替えが可能である。
Claude Code・Codex CLIとの比較
Deep Agentsの公式ドキュメントには、Claude Agent SDKおよびCodex SDKとの比較ページが用意されている。主要な差異を整理する。
| 項目 | Deep Agents | Claude Code | Codex CLI |
|---|---|---|---|
| ライセンス | MIT(無料) | 有料($200/月) | 無料(OSS) |
| モデル対応 | 15+プロバイダー | Claude系列 | GPT系列 |
| サンドボックス | ツールレベル | アプリケーションレベル(17フックイベント) | OSカーネルレベル |
| 計画機能 |
write_todos(明示的) |
内部推論 | 内部推論 |
| 永続メモリ | LangGraph Memory Store | なし | なし |
| 可観測性 | LangSmith統合 | なし | なし |
| Terminal Bench 2.0 | 約42.65%(Sonnet 4.5) | 同等(Sonnet 4.5) | 77.3%(GPT-5.3-Codex) |
安全モデルの違い
安全性の実装アプローチは3者で大きく異なる。
- Deep Agents: 「LLMを信頼し、ツールレベルで境界を設ける」方針。パストラバーサル防止やHITL承認フローはあるが、OS レベルのサンドボックスは持たない
- Claude Code: アプリケーションレベルで17種のフックイベントによる細粒度制御を提供
- Codex CLI: OSカーネルレベルの粗粒度サンドボックスで隔離を実現
信頼できない入力を本番環境で処理する場合は、Deep Agents単体ではなく、Modal等のリモートサンドボックスバックエンドとの組み合わせが推奨される。
NVIDIA連携とエンタープライズ展開
2026年3月16日のNVIDIA GTC 2026で、LangChainはNVIDIAとの包括的な連携を発表した。Deep Agents + LangGraph + LangSmithのスタックが、NVIDIA Agent Toolkit(NIM マイクロサービス、Nemotronモデル、NeMo Agent Toolkit、OpenShell)と統合される。
NIMマイクロサービスは標準デプロイと比較して最大2.6倍のスループットを実現し、クラウド・オンプレミス・ハイブリッド環境に対応する。Adobe、Atlassian、Salesforce、SAP等17社がこの統合プラットフォームの採用を表明している。
セットアップ手順
インストール
pip install deepagents
# または
uv add deepagents
基本的な使い方(SDK)
from deepagents import create_deep_agent
# カスタムツールを定義
def search_docs(query: str) -> str:
"""ドキュメントを検索する"""
return f"Results for: {query}"
# エージェントを作成
agent = create_deep_agent(
tools=[search_docs],
system_prompt="You are a documentation assistant.",
)
# 実行
result = agent.invoke(
{"messages": [{"role": "user", "content": "Find the API reference for auth"}]}
)
CLI利用
# CLIのインストール
pip install deepagents-cli
# インタラクティブモードで起動
deepagents
# ワンショット実行
echo "Refactor the utils module" | deepagents -n
まとめ
Deep Agentsは、LLMエージェントの「長期タスク問題」に正面から取り組んだフレームワークである。
-
計画:
write_todosによる明示的なタスク分解と進捗追跡 - コンテキスト管理: 仮想ファイルシステムによるプロンプトウィンドウの圧迫回避
- 委任: サブエージェント生成によるタスクの階層的分解
- モデル非依存: 15以上のプロバイダーに対応し、ベンダーロックインを回避
- 可観測性: LangSmith統合による実行トレースとデバッグ
Claude CodeやCodex CLIが特定モデルに最適化された垂直統合型であるのに対し、Deep Agentsはモデル非依存のオープンな水平統合型として位置づけられる。MITライセンスで無料利用でき、LangGraphエコシステムとシームレスに統合できる点が、既にLangChainを採用しているチームにとっては大きな利点となる。



