langchain-ai/langchain-skills1 file

Managed Deep Agents

INVOKE THIS SKILL when building, testing, or deploying Managed Deep Agents in LangSmith with the mda CLI. Walks a user through their first agent end to end — interviewing them about what they want to build, mapping it onto what MDA can actually do, then scaffolding and deploying it. Covers the file-based project layout; define_deep_agent / defineDeepAgent; instructions, skills, memory, identity, tools, middleware, sandboxes, schedules, channels, and evals; mda init/build/dev/deploy/logs/delete; and Context Hub.

Specification
Skill ID
langchain-ai/langchain-skills/managed-deep-agents
Publisher
langchain-ai
Repository
langchain-skills
Installs
0
Files
1
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

langchain-ai/langchain-skills/managed-deep-agentsInstalls these files
  • SKILL.md

What this skill tells the agent

Managed Deep Agents

Overview

Managed Deep Agents (MDA) is a hosted runtime for code-first Deep Agents in LangSmith. You author an agent in Python or TypeScript, test it locally with mda dev, and ship it with mda deploy. It pairs the open-source Deep Agents harness (see [[deep-agents-core]]) with managed infrastructure: durable runs, sandboxes, Context Hub-backed instructions and skills, memory, traces, and hosted LangGraph deployment.

The core idea is that an agent is a directory. A file's location determines its role, and the CLI compiles that directory into a managed LangGraph app.

MDA is in public beta and runs on US LangSmith Cloud only.

When to use

Use this skill when the user wants to build a Deep Agent in code and run it on LangSmith without operating their own server, or to add tools, middleware, memory, identity, schedules, channels, skills, sandboxes, or evals to one.

Use a standard LangSmith Deployment instead (see [[langgraph-cli]], langgraph deploy) when the user needs custom application code, custom HTTP routes, authentication beyond a LangSmith key or Supabase, stronger isolation, maximum scalability, or a region other than US.


Guide the user through their first agent

When a user is new to MDA, or says anything like "help me build an agent", do not scaffold immediately. Run this flow. It costs two questions and prevents building something the platform cannot host.

ask what they want to build -> check it against the limits -> confirm the shape
-> scaffold -> wire the smallest thing that runs -> mda dev -> deploy

1. Ask what they want to build

Ask in plain language, not in MDA vocabulary. The user does not yet know what a "channel" or a "sandbox" is.

Ask these two things first:

  • What should the agent do? ("Answer questions about our docs", "triage incoming bugs", "post a summary every morning".)
  • Who or what talks to it, and from where? (Them in a browser, their app's users, a Slack workspace, nobody — it runs on a timer.)

Then ask only the follow-ups that the answers actually raise:

  • Does it need to remember anything between separate conversations?
  • Does it need to reach a private API, database, or internal service?
  • Should anything require a human to approve before it happens?
  • Does it need to write files or run code?

Stop asking once you can name the capabilities. Two or three questions is usually enough.

2. Check the answer against the limits

Before you promise anything, check the request against [What MDA cannot do](#what-mda-cannot-do) below. If part of the request is out of scope, say so in one sentence, offer the nearest supported thing, and keep going with the rest. Do not quietly build a smaller agent and present it as what they asked for.

The common redirect: if they need custom HTTP routes, their own auth, or non-US hosting, tell them MDA is the wrong layer and point at langgraph deploy ([[langgraph-cli]]).

3. Map the answer onto capabilities

What the user describesWhat to reach forWhere it lives
How it should behave, its tone, its rulesInstructionsinstructions.md
Calls our API / database / internal serviceAuthored toolstools/
Tools from a remote MCP serverMCP connectorconnectors/mcp.py
A procedure it should follow for certain tasksSkillsskills/<name>/SKILL.md
Remembers things across conversationsDurable memory (read the warning)memory.py
Runs on a timer, no user messageSchedulesschedules/<name>.py
Lives in SlackChannelschannels/slack.py
Writes files, runs code or shell commandsSandboxsandbox/__init__.py
Ask me before it does XHuman-in-the-loopinterrupt_on=
Users must not see each other's chatsSupabase identityidentity.py
Must return structured data, not proseStructured outputresponse_format=
Hand off specialized workSubagentssubagents=
PII redaction, call limits, retries, loggingMiddlewaremiddleware/
Prove it still works as we change itHarbor evalsevals/tasks/

4. Confirm the shape before writing files

State the plan back in one short block and get agreement. Name the model, and list only the capabilities you are actually going to create:

research-assistant, Python, on anthropic:claude-sonnet-4-6
  instructions.md   how it researches and cites
  tools/search.py   web search
  schedules/        weekday 8am digest
  no memory, no sandbox, no channel

5. Scaffold and wire the smallest thing that runs

Scaffold with the flags that match the plan, so the project starts correct instead of being edited into shape:

mda init research-assistant --model anthropic:claude-sonnet-4-6
cd research-assistant
uv sync

Then add one capability at a time and confirm each one works before adding the next. A first agent that answers with good instructions and one real tool is a better starting point than a scaffold with every directory filled in.

Do not create directories the plan did not call for. Empty or unused skills/, channels/, or schedules/ directories are noise, and a sandbox/ directory the user does not need turns on a sandbox they will pay attention to for no reason (mda init --no-sandbox skips it).

6. Handle keys without touching their secrets

mda init writes a .env with empty placeholders. Fill in the names the project needs and let the user paste the values:

  • Do not write live credential values into .env yourself, and do not copy a key from another project directory.
  • Do not echo key values to the terminal or into your reply.
  • Confirm .gitignore covers .env and .env.* — mda init does this already.

The project needs LANGSMITH_API_KEY (to deploy) and the provider key its model requires (ANTHROPIC_API_KEY, OPENAI_API_KEY, …). Uncomment the right provider line and tell the user to paste both.

7. Run it locally, then deploy

mda dev .       # compiles, opens LangSmith Studio, hot reloads
mda deploy .    # syncs Context Hub, uploads, waits for DEPLOYED

Have the user actually send a message in Studio and confirm the agent calls the tool before deploying. mda deploy prints the deployment dashboard URL; open it to inspect builds, revisions, and traces.


What MDA cannot do

Check requests against this list before agreeing to build them. Being straight about a limit early is cheaper than discovering it at deploy time.

LimitConsequence
US LangSmith Cloud onlyNo self-hosted, no hybrid, no EU region. Needs langgraph deploy.
CLI-first, public betaNo public create/update/invoke REST surface. Calling a deployed agent from your own application is not documented during beta — tell the user to contact their LangChain team.
MCP servers must be remote HTTP/SSEStdio MCP servers are unsupported. Expose them over HTTP or write an authored tool.
Slack is the only channelNo Discord, Teams, email, or SMS channel.
Memory is deployment-sharedOne /memories/agent/ tree for all callers. There is no per-user memory.
Identity is LangSmith key or SupabaseNo OIDC, SAML, or custom JWT issuer. Per-user private threads require Supabase.
LangSmith sandboxes onlyNo other sandbox provider.
One agent entry per projectNo multiple graphs in one project. Use subagents= for delegation.
Schedules must be static literalsNo env vars, function calls, or computed values in a schedule declaration.
Build archive capped at 200 MBLarge fixtures or model weights in the project will fail the deploy.
Managed fields are not yours to setbackend, store, checkpointer, memory, skills, and the system prompt are injected by the runtime.

Prerequisites

  • A workspace with Managed Deep Agents public beta access, and a LangSmith API key for it.

Use this skill in a project

Open any RiverX project, search the Skills panel for langchain-ai/langchain-skills/managed-deep-agents, and install it in one click.

Use this skill