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

# 概览

> 让 AgentScope 服务中的智能体入驻 IM 平台。

渠道（Channel）将 AgentScope 服务中的智能体接入外部即时通讯（IM）平台，让智能体能够在 IM 平台上直接与用户交流。

AgentScope 服务中的渠道目前支持以下能力：

* 在飞书、Discord 等 IM 平台上接收用户消息并回复；
* 主动向指定的 IM 平台推送消息；
* 通过路由规则，把消息分配给不同的智能体与会话；
* 收发图片、文件等多模态内容；
* 在对话中完成智能体工具调用的审批；
* 自动向智能体注入渠道上下文（所在平台、聊天名称、群聊 / 私聊），让回复更贴合场景。

## 支持的平台

每个平台对应一个内置的类型标识（`channel_type`），创建渠道时指定：

| 平台       | 类型标识       | 接入方式              | 状态          |
| -------- | ---------- | ----------------- | ----------- |
| 飞书（Lark） | `feishu`   | WebSocket 长连接     | 可用          |
| Discord  | `discord`  | Gateway WebSocket | 可用          |
| 钉钉       | `dingtalk` | Stream 模式         | Coming soon |
| 企业微信     | `wecom`    | 应用回调              | Coming soon |

<Tip>
  在智能体服务中，调用 `GET /channels/types` 可以获取所有类型及其凭据表单结构（JSON Schema），前端据此自动渲染配置表单，无需为每个平台硬编码。
</Tip>

## 启用渠道

渠道随[智能体服务](/versions/2.0.6dev/zh/deploy/agent-service)启动，用 `create_app` 的 `channels` 参数声明本服务允许接入哪些渠道类型：

```python 启用内置渠道 theme={null}
from agentscope.app import create_app
from agentscope.app.channel import DiscordChannel, FeishuChannel

app = create_app(
    storage=...,
    message_bus=...,
    workspace_manager=...,
    channels=[FeishuChannel, DiscordChannel],  # 允许接入的渠道类型
)
```

不传 `channels` 时，不启用任何渠道类型，渠道功能保持关闭。要接入内置之外的平台，把你的渠道类一并加进列表，见[自定义渠道](/versions/2.0.6dev/zh/deploy/channel/custom)。

## 分布式部署

渠道支持分布式多节点部署。渠道配置、会话、消息总线等共享状态都存放在 Redis 里，多个节点平等运行、各自处理请求；把 `storage` 与 `message_bus` 换成 Redis 版本，就能横向扩展到多台机器。

在连接层面，每个分布式部署节点都为启用的渠道各自维持一条长连接。同一条消息可能被平台投递到多个节点，但同一个会话在同一时刻只允许一个节点收集并发送回复，因此用户不会收到重复回答。

## HTTP 接口

渠道的完整生命周期通过 `/channels` 下的接口管理：

| 方法与路径                         | 作用                    |
| ----------------------------- | --------------------- |
| `GET /channels/types`         | 列出支持的平台类型及凭据表单结构      |
| `POST /channels/`             | 创建渠道                  |
| `GET /channels/`              | 列出当前用户的渠道             |
| `GET /channels/{id}`          | 查看渠道详情（凭据脱敏）          |
| `PATCH /channels/{id}`        | 更新名称 / 路由 / 会话 / 平台配置 |
| `DELETE /channels/{id}`       | 删除渠道                  |
| `POST /channels/{id}/enable`  | 启用渠道                  |
| `POST /channels/{id}/disable` | 停用渠道                  |
| `GET /channels/{id}/status`   | 查看渠道的实时连接状态           |
| `GET /channels/{id}/sessions` | 列出该渠道派生出的会话           |
| `GET /channels/{id}/chat_ids` | 列出机器人已知的聊天，便于配置路由     |

各接口的完整请求与响应字段，见本章的 [API](/versions/2.0.6dev/en/deploy/openapi.json) 部分。

## 延伸阅读

<CardGroup cols={2}>
  <Card title="会话路由" icon="route" href="/versions/2.0.6dev/zh/deploy/channel/routing" cta="查看详情" arrow>
    决定消息交给哪个智能体、进入哪个会话。
  </Card>

  <Card title="接入飞书" icon="comment" href="/versions/2.0.6dev/zh/deploy/channel/feishu" cta="查看详情" arrow>
    创建飞书机器人，让智能体在飞书里收发消息。
  </Card>

  <Card title="接入 Discord" icon="discord" href="/versions/2.0.6dev/zh/deploy/channel/discord" cta="查看详情" arrow>
    创建 Discord Bot，让智能体在 Discord 里收发消息。
  </Card>

  <Card title="自定义渠道" icon="puzzle-piece" href="/versions/2.0.6dev/zh/deploy/channel/custom" cta="查看详情" arrow>
    实现 ChannelBase，接入内置之外的平台。
  </Card>
</CardGroup>
