Managed Deep Agents is in public beta on LangSmith Cloud and Bring Your Own Cloud (BYOC). Use Managed Deep Agents CLI and SDK v0.10 or later for BYOC.
Project structure
Channel declarations live in the project-levelchannels/ directory:
Understand channels
A channel combines three parts of an external messaging integration:- Inbound events: Verify and normalize provider events, then start an agent run.
- Outbound messaging: Send the agent’s response back to the originating conversation.
- Provisioning: Create and configure the provider resources that connect the service to the deployed agent.
Declare channels in a project
Put each channel in a separate module underchannels/.
Export a module-level channel from each file.
The file name becomes the configured channel name and identifies the channel within the deployment.
Do not name a declaration channels/channel.py.
Channel names must be unique within a project.
The provider factory creates the declaration.
For example, channels.slack() creates a Slack channel.
See the provider guide for its declaration, app configuration, and deployment procedure.
Distinguish channels from connectors
A channel receives messages that start agent runs and delivers responses. An MCP connector gives the agent tools from a remote MCP server. A project can use either or both.Supported channels
Slack
Start runs from Slack mentions, direct messages, and thread replies.
HTTP
Start runs from any service that can send a JSON webhook.
See also
- Identity: authenticate callers and scope channel runs to the resolved user.
- Schedules: deliver scheduled results through a configured channel.
- Deploy an agent: deploy project changes and configure secrets.
- CLI reference: review channel project-file conventions.
Connect these docs to your agent of choice via MCP for real-time answers.

