Deep Agents v0.5のリリース
LangChainはDeep Agents v0.5をリリースし、非同期サブエージェントによるバックグラウンド処理、拡張されたマルチモーダルファイルシステムサポートなどを導入した。
キーポイント
非同期サブエージェントの導入
メインエージェントの実行をブロックせずにリモートエージェントに作業を委任できる非同期サブエージェントを実装し、長時間タスクのボトルネックを解消した。
状態保持と対話型制御
非同期サブエージェントはスレッドを維持するため、実行中のタスクに対してフォローアップ指示や軌道修正が可能になり、より柔軟な制御を実現した。
異種デプロイメントの可能性
軽量なオーケストレーターが異なるハードウェアやモデル、ツールセットを持つ専門リモートエージェントに委任する分散アーキテクチャへの道を開いた。
拡張されたマルチモーダルファイルシステムサポート
より多様なファイル形式とデータソースに対応するマルチモーダルファイルシステムサポートを強化した。
非同期サブエージェントの相互作用モデル
メインエージェントはタスクを起動後、ユーザーとの対話を継続し、必要時に結果を確認するfire-and-forget方式で、複数の非同期サブエージェントを同時実行できる。
Agent Protocol採用の理由
非同期サブエージェント向けの標準サーバープロトコルとして採用され、スレッドと実行を基盤とするモデルが非同期サブエージェントの動作に直接対応し、状態管理を可能にする。
拡張されたマルチモーダルサポート
Deep Agents v0.5では、PDF、オーディオ、ビデオなどの追加ファイルタイプのサポートが拡張され、ファイルタイプは拡張子から自動検出され、適切なMIMEタイプでモデルに渡されます。
影響分析・編集コメントを表示
影響分析
このリリースはエージェントシステムの実用性を大幅に向上させ、特に研究や大規模コード分析など長時間を要するタスクでの応用可能性を広げる。非同期処理と状態保持の組み合わせにより、より複雑で長期的なワークフローの自動化が現実的になり、エージェント技術の産業応用を加速させる可能性がある。
編集コメント
エージェントシステムの実用性を高める重要な進展で、特に長時間タスクの処理能力向上は産業応用の障壁を下げる。技術的には目新しい概念ではないが、実装としての完成度と実用性が評価できる。
TL;DR: deepagentsとdeepagentsjsの新しいマイナーバージョンをリリースしました。非同期(非ブロッキング)サブエージェント、拡張されたマルチモーダルファイルシステムサポートなどを特徴とします。
image詳細は変更履歴をご覧ください。
非同期サブエージェント
Deep Agentsは、バックグラウンドで実行されるリモートエージェントに作業を委任できるようになりました。完了するまでメインエージェントをブロックする既存のインラインサブエージェントとは対照的に、非同期サブエージェントはタスクIDを即座に返し、リモートサーバー上で独立して実行されます。
詳細はDeep Agentsのドキュメントをご覧ください。
動機
インラインサブエージェントは、短く焦点を絞ったタスクには有効ですが、実行中はスーパーバイザーの実行ループをブロックします。数秒ではなく数分を要する作業(詳細な調査、大規模なコード分析、多段階のデータパイプラインなど)では、これがボトルネックとなります。サブエージェントが結果を返すまで、スーパーバイザーはユーザーに応答したり、他の作業を進めたりすることができません。ほとんどのエージェントとサブエージェントの寿命が短かった頃は、これはさほど問題ではありませんでした。しかし、扱えるタスクの長さが増すにつれ、ブロッキングはより深刻な問題となっていました。
非同期サブエージェントはこの制約を解消します。スーパーバイザーは複数のサブエージェントを並行して起動し、ユーザーとの対話を継続しながら、結果が得られ次第収集できます。インラインサブエージェントとは異なり、非同期サブエージェントはステートフルでもあります。つまり、対話をまたいで独自のスレッドを維持するため、スーパーバイザーはフォローアップの指示を送信したり、タスクの途中で軌道修正を行ったりできます。
これにより、異種デプロイメントへの道も開けます。軽量なオーケストレーターが、異なるハードウェア上で動作し、異なるモデルを使用し、独自のツールセットを保持する専門的なリモートエージェントに作業を委任できるようになるのです。
使用方法
subagentsパラメータが拡張され、リモートエージェントを指し示すAsyncSubAgent仕様を受け付けるようになりました:
from deepagents import AsyncSubAgent, create_deep_agent
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
subagents=[
AsyncSubAgent(
name="researcher",
description="Performs deep research on a topic.",
url="https://my-agent-server.dev",
graph_id="research_agent",
),
],
)AsyncSubAgent仕様は、既存のSubAgentおよびCompiledSubAgent仕様と自由に組み合わせることができます。create_deep_agentは、各仕様のタイプに基づいて適切なミドルウェアにルーティングします。
設定が完了すると、メインエージェントはバックグラウンド作業を管理するための5つのツールを利用できるようになります:
| ツール | 目的 |
|---|---|
start_async_task | リモートエージェントでタスクを起動します。即座にタスクIDを返します。 |
check_async_task | タスクのステータスをポーリングし、完了時に結果を取得します。 |
update_async_task | 実行中のタスクにフォローアップ指示を送信します。 |
cancel_async_task | 実行中のタスクをキャンセルします。 |
list_async_tasks | 現在のステータスを含む、追跡中の全タスクを一覧表示します。 |
インタラクションモデルはファイア・アンド・フォーゲットです。メインエージェントはタスクを起動し、作業を続行したりユーザーと対話したりしながら、必要に応じて結果を確認します。複数の非同期サブエージェントを同時に実行することも可能です。
サーバープロトコル
Agent Protocolを実装する任意のリモートエージェントは、非同期サブエージェントの有効なターゲットとなります。つまり、Deep Agentを任意のAgent Protocol準拠サーバーに向けることができます。これには、LangSmithでデプロイされたエージェント、サーバースタブを使用したカスタムFastAPIサービス、その他の実装などが含まれます。PythonおよびJS向けのDeep Agentsのサンプルサーバー実装を追加しました。
urlフィールドが省略された場合、Deep AgentsはASGIトランスポートを使用してサブエージェントと通信します。これにより、スーパーバイザーとサブエージェントを同じプロセス内で共同デプロイし、通信させることが可能になります。
デプロイメント設定、トレーシング、トラブルシューティング、リファレンス実装を含む完全なチュートリアルについては、非同期サブエージェントのドキュメントをご覧ください。
なぜAgent Protocolなのか
非同期サブエージェントには、デプロイ方法や場所に関わらず、あらゆるリモートエージェントが実装できる標準的なサーバープロトコルが必要です。Agent Protocolに決定する前に、他にどのような選択肢があるかを検討しました。
ACP (Agent Client Protocol) は、エディターとエージェント間の通信のために特別に構築されたプロトコルで、ツーリング分野での採用が広がりつつあります。ACPには、私たちのユースケースにおいて2つの問題があります。第一に、クライアントがプロンプトを送信して応答を待つ同期型セッションモデルを中心に設計されているため、非同期サブエージェントにうまく対応できません。第二に、現在サポートされているのはstdioトランスポートのみであり、リモートエージェントはローカルのサブプロセスとして実行する必要があります。HTTPサポートはロードマップにはありますが、まだリリースされていないため、ACPは現在のところリモートデプロイメントでは利用できません。
A2A (Agent-to-Agent Protocol) はより近い適合性を持ち、技術的にも互換性があります。完全なHTTPサポートとネイティブの非同期タスクモデルを備えています。これは強力なプロトコルであり、プッシュ/プルサブスクリプション、エージェントディスカバリー、機能ネゴシエーションなど、業界全体の広範なエージェント相互運用性の課題を解決するように設計されています。しかし、非同期サブエージェント自体がまだ進化段階にあるため、より迅速な反復を可能にするプロトコルを優先しました。A2Aのサポートは将来のリリースで追加される可能性があります。
Agent Protocolは、LangChainがLLMエージェントを提供するために策定したオープンな仕様であり、すでにLangGraph Platformの基盤となるプロトコルです。これが当てはまる理由はいくつかあります。
モデルがきれいに一致します。Agent Protocolはスレッドと実行を中心に構築されています。会話コンテキストを保持するスレッドを作成し、作業を開始する実行を起動し、結果が必要なときにその状況を確認します。これは、非同期サブエージェントの動作方法に直接対応します。また、サブエージェントが対話をまたいでステートフルであることも意味します。タスク途中で更新を送信すると、スレッドの履歴が保持されているため、リモートエージェントはコンテキストを引き継いで再開でき、ゼロから開始する必要がありません。
結果として、非同期タスクモデルに自然に適合し、マネージドとセルフホステッドの両方のデプロイメントで動作し、機能とともに進化するのに十分な機敏さを保ったプロトコルが実現します。
拡張されたマルチモーダルサポート
Deep Agentsは以前、仮想ファイルシステムから画像を読み取ることをサポートしていました。このリリースでは、マルチモーダルサポートをPDF、オーディオ、ビデオ、その他のファイルタイプに拡張します。エージェントは同じread_fileツールを使用します。APIの変更は必要ありません。ファイルタイプは拡張子から自動的に検出され、コンテンツは適切なMIMEタイプを持つネイティブコンテンツブロックとしてモデルに渡されます。詳細はDeep Agentsのドキュメントをご覧ください。
重要な点として、どのモダリティがサポートされるかは、基盤となるモデルに依存します。モデルプロファイルを通じて、プログラムでサポートされているモダリティを確認できます。各LangChainチャットモデルは、受け入れる入力タイプを宣言するプロファイルを公開しています。
最新バージョンを試す準備はできていますか?クイックスタートガイドにアクセスして、今すぐDeep Agentsを始めましょう。
原文を表示
TL;DR: We’ve released new minor versions of deepagents & deepagentsjs, featuring async (non-blocking) subagents, expanded multi-modal filesystem support, and more.
imageSee the changelog for details.
Async subagents
Deep Agents can now delegate work to remote agents that run in the background. As opposed to the existing inline subagents, which block the main agent until they complete, async subagents return a task ID immediately and execute independently on a remote server.
See the Deep Agents docs for more detail.
Motivation
Inline subagents are effective for short, focused tasks, but they block the supervisor's execution loop while they run. For work that takes minutes rather than seconds—deep research, large-scale code analysis, multi-step data pipelines—this becomes a bottleneck. The supervisor can't respond to the user or make progress on other work until the subagent returns. This was less of an issue when most agents and subagents were short-lived, but as the addressable task length has grown, blocking has become a more serious issue.
Async subagents remove this constraint. The supervisor can launch several subagents in parallel, continue a conversation with the user, and collect results as they become available. Unlike inline subagents, async subagents are also stateful: they maintain their own thread across interactions, so the supervisor can send follow-up instructions or course-correct mid-task.
This also opens the door to heterogeneous deployments, where a lightweight orchestrator delegates to specialized remote agents running on different hardware, using different models, or maintaining their own tool sets.
Usage
The subagents parameter has been widened to accept an AsyncSubAgent spec, which points to a remote agent:
from deepagents import AsyncSubAgent, create_deep_agent
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
subagents=[
AsyncSubAgent(
name="researcher",
description="Performs deep research on a topic.",
url="<https://my-agent-server.dev>",
graph_id="research_agent",
),
],
)
AsyncSubAgent specs can be mixed freely with the existing SubAgent and CompiledSubAgent specs—create_deep_agent routes each to the appropriate middleware based on its type.
Once configured, the main agent gains five tools for managing background work:
Tool
Purpose
start_async_task
Launch a task on a remote agent. Returns a task ID immediately.
check_async_task
Poll a task's status and retrieve its result when complete.
update_async_task
Send follow-up instructions to a running task.
cancel_async_task
Cancel a running task.
list_async_tasks
List all tracked tasks with their current statuses.
The interaction model is fire-and-forget: the main agent launches a task, continues working or talking to the user, and checks back for results when needed. Multiple async subagents can run concurrently.
Server protocol
Any remote agent that implements the Agent Protocol is a valid target for async subagents. This means you can point a Deep Agent at any Agent Protocol-compliant server, including any agent deployed with LangSmith, a custom FastAPI service using the server stubs, or any other implementation. We’ve added example server implementations for Deep Agents for Python and JS.
If the url field is omitted, Deep Agents will use ASGI transport to communicate with the sub-agent. This allows supervisor and sub-agents to be co-deployed and communicate in the same process.
For a complete walkthrough—including deployment configuration, tracing, troubleshooting, and a reference implementation—see the async subagents documentation.
Why Agent Protocol
Async subagents need a standard server protocol, one that any remote agent can implement regardless of how or where it’s deployed. Before landing on Agent Protocol, we looked at what other options were available.
ACP (Agent Client Protocol) is purpose built for editor-to-agent communication and has growing adoption in the tooling space. ACP has two problems for our use case. First, it's built around a synchronous session model where the client sends a prompt and waits for a response, which doesn't map cleanly to async subagents. Second, it currently only supports stdio transport, which means the remote agent has to run as a local subprocess. HTTP support is on the roadmap but hasn't shipped, so ACP isn't viable for remote deployments today.
A2A (Agent-to-Agent Protocol) is a closer fit and is technically compatible. It has full HTTP support and a native async task model. It’s a strong protocol and is designed to solve broad agent interoperability challenges across the industry covering things like push/pull subscriptions, agent discovery, and capability negotiation. However, since async subagents are still evolving, we prioritized a protocol that allows for faster iteration. Support for A2A may be added in a future release.
Agent Protocol is LangChain's own open specification for serving LLM agents and is already the protocol underlying LangGraph Platform. It fits well here for a few reasons.
The model lines up cleanly. Agent Protocol is built around threads and runs. You create a thread to hold conversation context, start a run to kick off work, and check on it when you need the result. That maps directly onto how async subagents work. It also means subagents are stateful across interactions. When you send a mid-task update, the remote agent picks up in context because the thread history is preserved, rather than starting from scratch.
The result is a protocol that fits the async task model naturally, works across managed and self-hosted deployments, and stays nimble enough to evolve alongside the feature.
Expanded multi-modal support
Deep Agents previously supported reading images from its virtual filesystem. This release extends multimodal support to PDFs, audio, video, and other file types. The agent uses the same read_file tool; no API change is required. File type is detected automatically from the extension, and the content is passed to the model as a native content block with the appropriate MIME type. See Deep Agents docs for details.
Importantly, which modalities are supported depends on the underlying model. You can check supported modalities programmatically via model profiles—each LangChain chat model exposes a profile that declares which input types it accepts.
Ready to try out the latest version? Head to the quickstart guide to get started with Deep Agents today.
関連記事
2026年3月6日 Frontier Red TeamによるClaudeのCVE-2026-2796エクスプロイトのリバースエンジニアリング
Frontier Red Teamが、Claudeの脆弱性CVE-2026-2796を悪用するエクスプロイトをリバースエンジニアリングした。
フロンティア・レッドチーム、Firefoxのセキュリティ向上のためにMozillaと提携
フロンティア・レッドチームは、Firefoxのセキュリティを向上させるため、Mozillaと提携した。
59%のユーザーがより安価なモデルを選択:Sonnet 4.6の詳細解説
Anthropic社がClaude Sonnet 4.6をリリースし、Claude Codeテストで70%のユーザーが前世代モデルより好み、59%がフラッグシップモデルOpus 4.5よりも選択した。コーディング、コンピュータ利用、100万トークンコンテキストなど6次元で全面アップグレードされ、価格は据え置き。