Managed Deep Agents 0.10 adds browser use and async subagents
LangChain's Managed Deep Agents hit v0.10 in public beta with two additions: a real browser running in a LangSmith sandbox, and subagents that execute asynchronously so the orchestrator can keep talking to the user. The release also removes the connectors.mcp() layout, so MCP server declarations have to move to tools/mcp.ts or tools/mcp.py.
Key points
- The browser runs in its own LangSmith sandbox and adds four tools to the agent automatically: browser_snapshot, browser_run, browser_screenshot and browser_handoff.
- scope="thread" gives every conversation a clean browser reused across turns, while scope="user" keeps one browser per person so site logins carry over between conversations.
- browser_handoff pauses at login walls and two-factor prompts, lets a human take the window so credentials never reach the model or traces, and its links expire after 15 minutes.
- Setting "async": True on a subagent definition keeps the orchestrator responsive; it starts, checks and cancels tasks with async task tools and is notified instead of polling.
- Breaking change: connectors.mcp() and the connectors/ folder are gone, MCP servers now live in tools/mcp.ts or tools/mcp.py, and the sandbox scope option was removed.
- Async subagents share the agent's sandbox, so files written earlier are visible, and their runs appear under the agent's run in LangSmith.
Managed Deep Agents, LangChain's hosted agent runtime, reached v0.10 in public beta. The headline addition is browser use: an agent can now operate sites that have no API. Declaring define_browser() at the project root starts a browser inside a LangSmith sandbox and gives the agent four tools — browser_snapshot, browser_run, browser_screenshot and browser_handoff. Scope decides whether every conversation gets a clean browser (thread) or one browser per person with logins carried across conversations (user).
Subagents can now be marked "async": True, so long delegated work runs on its own thread while the orchestrator keeps answering the user; the agent starts, checks and cancels these tasks with async task tools and is notified instead of polling. Note the breaking change: connectors.mcp() and the connectors/ layout are gone, MCP servers move to tools/mcp.ts or tools/mcp.py.
Real-world use
- An agent that cancels a subscription or files an expense claim on a portal with no API, handing the window over to the user only for the password and 2FA step.
- A coding agent that opens the built app in the browser to check that a UI change actually renders, instead of parsing pre-render HTML.
- A research orchestrator that fans out several long-running background subagents while the user keeps refining the question in Slack.
- A Slack support agent using scope="user" so a signed-in person only authenticates once across all of their conversations.
Why it matters
Human handoff for logins and non-blocking subagents remove the two things that kept hosted agents stuck at demo level: login walls and long waits for delegated work to finish.