跳转到主要内容

概述

Channels API 允许您将 Shannon 与外部消息平台集成。创建 Channel 以连接 Slack 工作区或 LINE 账户,Shannon 将通过其 Agent 系统自动处理传入的消息。

功能特性

  • Slack 集成,支持事件订阅和 Bot 消息
  • LINE 集成,基于 Webhook 的消息处理
  • HMAC 签名验证,确保入站 Webhook 安全
  • Agent 路由,通过 agent_name 配置将消息定向到指定 Agent
  • 用户隔离,每个用户的 type + name 组合唯一
  • 凭据安全 — 凭据永远不会在 API 响应中暴露

创建 Channel

创建新的消息 Channel。

请求体

响应

出于安全考虑,credentials 字段永远不会在 API 响应中返回。请在您自己的系统中安全存储凭据。

列出 Channel

列出当前认证用户的所有 Channel。

响应

获取 Channel

获取指定 Channel 的详细信息。

响应

更新 Channel

更新现有 Channel。所有字段均为可选 — 仅更新提供的字段。

请求体

响应

返回更新后的 Channel 对象(与获取 Channel 的响应格式相同)。

删除 Channel

永久删除一个 Channel。

响应

Response
(HTTP 200 OK with JSON body)

入站 Webhook

接收来自外部平台的消息。当用户在 Slack 或 LINE 中发送消息时,平台会调用此端点。
此端点不需要认证。每个平台使用自己的 HMAC 签名验证来确保请求的真实性。

响应

Webhook 会验证入站请求、提取消息内容,并异步将其分发到 Shannon 的 Agent 系统。响应会立即返回。

凭据格式

Slack 凭据

LINE 凭据

Webhook 行为

Slack

  • 签名验证:使用 Channel 的 signing_secret 通过 HMAC-SHA256 验证 X-Slack-Request-TimestampX-Slack-Signature 请求头
  • 时钟偏差:超过 5 分钟的请求将被拒绝
  • URL 验证:在应用设置期间自动响应 Slack 的 url_verification challenge
  • Bot 过滤:忽略来自 Bot 的消息以防止循环
  • 支持的事件messageapp_mention

LINE

  • 签名验证:使用 Channel 的 channel_secret 通过 HMAC-SHA256(base64 编码)验证 X-Line-Signature 请求头
  • 回复行为:使用 Reply Token 立即发送 “Thinking…” 回复
  • 消息处理:处理事件载荷中的第一条文本消息

Agent 路由

在 Channel 的 config 中设置 agent_name 字段,将传入消息路由到指定的 Agent:
如果未设置 agent_name,消息将由 Shannon 的默认 Agent 路由处理。

Channel 响应对象

错误响应

所有错误遵循标准格式:

后续步骤

提交任务

通过 API 直接提交任务

智能体

配置 Agent 用于 Channel 路由