Managed Deep Agents delivers a better user experience for agents in production

空逐月AI 前沿📡 LangChain Blog2026-09-25258 阅读💛 107 收藏

Key Takeaways

  • Identity-scoped auth and memory: user-owned credentials and user-level memory let agents act on the right permissions and remember caller-specific context.
  • HTTP channels: use agents in internal tools, customer portals, support systems, and other product surfaces that can send webhooks.
  • Built-in web search: Managed Deep Agents now includes web search powered by Parallel out of the box.

Today we’re launching Managed Deep Agents 0.8, which adds support for user-owned credentials, user-level memory, HTTP channels, file transfer in Slack and adds a pre-built tool for web search powered by Parallel.

Managed Deep Agents (MDA) is the simplest way to build, deploy, and run mission-critical agents in production, so engineering teams can focus on agent behavior instead of rebuilding the same infrastructure that every agent needs. With today’s release, we’re expanding Managed Deep Agents to support four challenges that most teams face when running agents in production: agent memory, authentication, channels, and tool management.

Try Managed Deep Agents

About Managed Deep Agents

Managed Deep Agents combines the Deep Agents harness with all of the infrastructure required to run agents in production. A Managed Deep Agent is a code-first project in your repo that allows you to easily organize all your agent’s primitives into a simple directory:

my-agent/
  agent.py | agent.ts | agent.tsx
  pyproject.toml | package.json    	# project dependencies
  instructions.md                  		# prompt synced to Context Hub
  identity.py | identity.ts        		# auth, thread scoping, memory scoping
  memory.py | memory.ts            	# define your agent's memory
  tools/                           			# custom tools
  channels/                       	 	# entry points like Slack and GitHub
  middleware/                      		# custom middleware
  schedules/                       		# managed cron schedules
  connectors/                      		# managed connectors
  skills/                          			# skills synced to Context Hub
  sandbox/                         		# sandbox configuration
  evals/                           			# agent evals

Managed Deep Agents in practice

Imagine you’re building an internal agent to support your sales team (we’ll call this agent our GTM Agent in this post). You want your agent to be able to look up account details, research the account, draft meeting briefs, follow-up emails, and so on, and help keep your team’s accounts engaged. To support this, your agent needs memory, tool access, web search, reasoning, and planning. 

Agent harnesses, like Deep Agents, help with building these agents. They provide primitives for building complex agents that can take on long-running, mission-critical tasks. With Deep Agents, getting a prototype up and running is straightforward, but making the agent work seamlessly in production requires a lot more.

That’s where Managed Deep Agents comes in. It packages your customized Deep Agents harness with the managed infrastructure required to run an agent like this at scale. This includes adding channels, like Slack, identity and authentication, and managing permissions for tools. Building this infra typically takes quarters of roadmap and requires ongoing maintenance. Managed Deep Agents allows engineers to focus on building the agent logic and hand off the boilerplate code.

Memory for your agent, scoped to the user

When an agent is used by multiple users in production, robust, secure systems to manage memory are important. Managed Deep Agents already supported durable agent memory, which lets a deployment retain instructions and preferences across conversations. Setting up memory can be done through simple declaration files: 

# A memory declaration file enables durable agent and user-level memory.
my-agent/
  agent.py
  memory.py

With Managed Deep Agents 0.8, we’ve added a second layer for user-level memory, scoped to the authenticated person starting the agent run. This gives the agent a place to store caller-specific context, such as preferences, working style, recurring tasks, or details the user has asked it to remember, without mixing that context with the shared agent-level memory.

from managed_deepagents import MemoryLayer, define_memory
memory = define_memory(
    agent=MemoryLayer(),
    user=MemoryLayer(),
)

Under the hood, durable memory is backed by LangSmith Context Hub, which enables teams to store, version, and collaborate on agent files like Skills and AGENTS.md. Agent memory is mounted at /memories/agent/ and shared by everyone using the deployment. User memory is mounted at /memories/user/ and keyed to the caller’s authenticated identity. The runtime never copies content between these layers, so teams can keep shared knowledge and personal context separate by default. This is useful in real-world agent use cases, such as: 

  • A support agent might use agent memory for team-wide escalation rules and user memory to remember that a specific teammate prefers concise Slack updates. 
  • A research agent might keep shared research procedures in agent memory, while storing an individual user’s preferred source types or formatting conventions in user memory. 
"Building with Managed Deep Agents has been such a smooth experience. The LangChain team partners well with us, and helped troubleshoot quickly. Our production chat app runs as a Managed Deep Agent - with Context Hub and user-level memory, we are able to maintain client confidentiality while delivering a superior experience."

— Zahid, CTO,
 

Memory is easily configurable and lives within a single file in a Managed Deep Agents project. You can enable the agent layer, the user layer, or both. You can also define access policies for each layer, giving teams control over when memory is available and what scope it applies to. Unless specified, Managed Deep Agents uses the following defaults:

Run source Agent memory User memory
Slack one-to-one DM Allowed Allowed
Slack channel or group DM Allowed Denied
HTTP Allowed Denied

This layered approach ensures user-level information is not ‘leaked’ into a conversation with multiple users. Consider the GTM agent mentioned earlier. Users could initiate requests in a direct DM with the agent, or they could start a request in a Slack group. Defined access policies and defaults ensure that: 

  • A direct DM has the agent acting as per the user’s preference.
  • Requests with multiple users in a thread or a slack group has the agent defaulting to workspace / team preferences. 
  • There is no leakage of preferences and stored memory between the two scenarios.  

Learn more about setting up agent and user-level memory here.

Securely provide user and agent identity through connections

Connections link a Managed Deep Agent to an external service such as GitHub, Notion, or Tavily. Connections are named credentials in your LangSmith workspace that your tools only read at runtime.

As with memory, it’s important to scope credentials according to the agent’s purpose and how users interact with it. With Managed Deep Agents, you can scope credentials at the user- or agent-level. 

Agent-owned credentials are shared across all users, which is useful for an agent capability that does not differ per person, such as web search. By contrast, user-owned credentials are important when the user will have unique permissions within a tool. This is often necessary for tools like GitHub, Linear, and Notion.

Managed Deep Agents connections

For example, our GTM agent should be able to pass through user credentials and use Salesforce data when a user requests it in a DM. The agent should also be able to use agent-credentials to search the web and find information about a customer. 

Managed Deep Agents comes with OOTB support for 23 services including Linear, GitHub and Google Workspace tools, where LangSmith manages authorization, tokens and methods so developers only need to set up user ID and secrets.

Learn how to set up and use credentials in connections here.

Accessing agents through user-preferred channels

Internal agents are commonly accessed through existing communication channels like Slack. Managed Deep Agents provides pre-built Slack support to make it simple to expose agents where your team is already working. 

With today’s release, Managed Deep Agents now supports richer Slack workflows with file transfer, and adds HTTP channels for connecting agents to any service that can send a JSON webhook.

# channels/orders.py
from managed_deepagents import channels


from lib.orders import parse, verify, messaging
channel = channels.http(
    provider="orders",
    verify=verify,
    parse=parse,
    messaging=messaging,
)

For Slack-based workflows, users can invoke an agent from a DM, an app mention, or a thread reply. With file transfer support, they can also send the materials the agent needs directly in the conversation, such as logs, spreadsheets, contracts, screenshots, or customer documents.For example, with our GTM agent, a user can now add notes from a previous call or documents shared by a customer right inside Slack while making a request to the agent. The agent then picks up the file, adds it to the context and responds based on it.

HTTP channels let teams bring agents into internal tools, customer portals, support systems, order systems, or any product surface that can send a webhook. This is useful for customer-facing agents that live on multiple channels. For example, a customer support agent that manages intake and triage can live in your product and an agent that schedules demos and meetings can live on your webpage.

For both Slack and HTTP methods, teams keep control over authentication, identity, and memory, while giving users access to agents in the channels they already prefer.

“[Managed Deep Agents is] by far the most complete agent platform, end to end. Slack integration worked perfectly and made life easier since we access all our agents through slack. We were able to deploy multiple agents, with custom MCP servers, to production using the CLI and GitHub actions. Now we have always-on triage with access to the right monitoring and the ability to open PRs and alert teams.”

— Derek Gilbert, Engineering, Consensus

Built-in web search, powered by Parallel

Web search is one of the most common agent tools, so we decided to build it right into Managed Deep Agents. Now, you can use web search powered by Parallel without creating a separate vendor account, managing another API key, and wiring a search tool into the agent themselves. 

Simply specify the MCP server in the tools folder and LangSmith manages the Parallel credentials and executes the tool. The agent receives relevant excerpts and source URLs it can cite, while calls, latency, and errors show up in LangSmith traces. 

Add Parallel to the servers map in tools/mcp.py / tools/mcp.ts. Define mcp only once

from managed_deepagents import define_mcp

mcp = define_mcp(
    servers={
        "Parallel": {
            "transport": "http",
            "url": "https://api.smith.langchain.com/v1/managed-tools/servers/parallel/mcp",
        },
    },
)

Getting started

Managed Deep Agents 0.8 simplifies agent authentication, memory, and channels, and brings in web search as a pre-built tool. 

We’re excited to see how teams use these new capabilities, so we’re making Parallel web search available free through Managed Deep Agents while MDA is in beta.

Learn more in the Managed Deep Agents docs, or get started with:

uvx --from managed-deepagents mda init my-agent
cd my-agent
uv run mda deploy

We’re continuing to improve Managed Deep Agents and would love to hear what you’re building. Join our Slack community to share what you’re building and reach out to us with any feedback.

文章评论(4)

龙文博42 分钟前

整理得太全面了,省了我不少时间。

回复
白向阳2 小时前

看标题就点进来了,内容果然没让人失望。

回复
一叶知秋2 小时前

不错不错,已加入书签。

回复
杨丽华19 分钟前

支持作者,持续关注中。

回复