LangChain's Deep Agents v0.5 introduces async subagents that run in the background, letting orchestrator agents parallelize long-running tasks without blocking.
LangChain released Deep Agents v0.5, adding async subagents that execute independently on remote servers and return task IDs immediately instead of blocking the main agent. The supervisor agent can now launch multiple subagents in parallel, continue interacting with users, and collect results as they complete. Async subagents are stateful, maintaining their own thread across interactions for mid-task course correction. The release also extends multimodal file support to PDFs, audio, and video via automatic MIME-type detection — no API changes required.
This is a direct architectural upgrade for anyone building multi-step agentic pipelines. The shift from blocking to async subagents means a supervisor can fan out deep research, code analysis, or data pipeline tasks in parallel — then collect results without halting user interaction. The Agent Protocol compatibility means you can point a Deep Agent at any compliant remote server, including LangSmith-deployed agents or custom FastAPI services, unlocking heterogeneous model deployments per task type.
Refactor an existing Deep Agents pipeline this week: replace a sequential SubAgent chain handling research + summarization + code generation with three concurrent AsyncSubAgent specs pointing to specialized remote agents — measure wall-clock time reduction on a 5-step task.
Suggested exercise · not independently tested. Access requirements and costs may vary.
Install or upgrade: pip install deepagents --upgrade
Paste this into a new file and run it: 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='http://localhost:8001'), AsyncSubAgent(name='coder', description='Writes and reviews code.', url='http://localhost:8002') ] )
Use the agent's launch_task tool to fire both subagents simultaneously, then call check_task_status on each — observe that both run concurrently and the supervisor remains responsive between checks
Tags