> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langchain.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect messaging channels to Managed Deep Agents

> Declare messaging channels under channels/ so Managed Deep Agents can receive events and reply from Slack and future providers.

Managed Deep Agents discovers channel modules under `channels/`. Each file is a messaging ingress: the managed runtime mounts a public Events URL, verifies the provider signature, invokes your agent with [identity](/langsmith/managed-deep-agents-identity) stamps, and can auto-reply on the same conversation.

<Note>
  Managed Deep Agents is in **private [beta](/langsmith/release-stages)**, available on [LangSmith Cloud](/langsmith/cloud) in the US region only. [Join the waitlist](https://www.langchain.com/langsmith-managed-deep-agents-waitlist) to request access.
</Note>

## Channel types

| Channel                                                | File                      | What it does                                                                                                               |
| ------------------------------------------------------ | ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| [Slack](/langsmith/managed-deep-agents-channels/slack) | `channels/slack.{py\|ts}` | Receives Slack Events (`app_mention`, DMs, thread replies), runs the agent, and optionally replies with the Slack Web API. |

Slack is the supported channel today. Declare each channel as its own file under `channels/`, you do not register channels in the agent entry.

For the full project layout, see the [CLI project file reference](/langsmith/managed-deep-agents-cli#project-file-reference).

## How channels work

1. You declare a channel under `channels/` (for example `defineSlackChannel` / `define_slack_channel`).
2. Compile and deploy discover the file name as the channel name (`channels/slack.ts` → `slack`).
3. The runtime mounts provider ingress for that channel on the Agent Server.
4. Inbound messages invoke your agent with [identity](/langsmith/managed-deep-agents-identity) stamps so tools and memory see the same caller model as HTTP runs.
5. When enabled, the runtime can reply on the originating conversation.

Channels require a root identity declaration. Provider-specific delivery details (for example Slack Events verification and auto-reply) live on each channel page, see [Slack](/langsmith/managed-deep-agents-channels/slack).

## Identity and threading

| Pattern              | Identity approach                                                   | Thread behavior                                                                                                                    |
| -------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Shared workspace bot | `shared-bot` preset (`threads: "channel"`)                          | Conversations are scoped by Slack source thread; Slack users stay as `slack:T…:U…` actors unless you add linking.                  |
| Linked web + Slack   | `validated_token` (for example Supabase/guest) + Connect-with-Slack | Unlinked users get a connect prompt; linked users run as the web actor so browser and Slack share history when `threads: "actor"`. |

For Slack app setup, secrets, Event Subscriptions, and Connect-with-Slack, see [Slack](/langsmith/managed-deep-agents-channels/slack).

## Test and deploy

Test the project locally with [`mda dev`](/langsmith/managed-deep-agents-cli#develop-locally), then deploy it with [`mda deploy`](/langsmith/managed-deep-agents-deploy). Open deployment traces in LangSmith to inspect model calls, tool calls, errors, and latency.

When `channels/` is present, `mda deploy` preflights Slack secrets (`SLACK_SIGNING_SECRET`, `SLACK_BOT_TOKEN`) before upload. Missing secrets fail the deploy early.

## Next steps

<CardGroup cols={2}>
  <Card title="Slack" icon="brand-slack" href="/langsmith/managed-deep-agents-channels/slack">
    Declare a Slack channel, configure the Slack app, and enable Connect-with-Slack.
  </Card>

  <Card title="Identity" icon="fingerprint" href="/langsmith/managed-deep-agents-identity">
    Choose `shared-bot` or linked `validated_token` for channel callers.
  </Card>

  <Card title="Schedules" icon="calendar" href="/langsmith/managed-deep-agents-schedules">
    Run managed cron schedules alongside channel bots.
  </Card>

  <Card title="CLI reference" icon="terminal" href="/langsmith/managed-deep-agents-cli">
    Look up `channels/` project file rules and deploy preflight.
  </Card>
</CardGroup>

***

<div className="source-links">
  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>

  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/langsmith/managed-deep-agents-channels/index.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>
</div>
