mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-06-02 00:57:41 +08:00
Merge branch 'master' into feat/wechatcom-kf-channel
This commit is contained in:
43
docs/channels/index.mdx
Normal file
43
docs/channels/index.mdx
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
title: 通道概览
|
||||
description: CowAgent 支持的通道及能力矩阵
|
||||
---
|
||||
|
||||
CowAgent 支持接入多种聊天通道,启动时通过 `channel_type` 切换。Web 控制台默认开启,可与其他接入通道并行运行。
|
||||
|
||||
## 能力矩阵
|
||||
|
||||
下表汇总各通道支持的入站消息类型、机器人回复类型与群聊能力,方便按场景选择。
|
||||
|
||||
| 通道 | 文本 | 图片 | 文件 | 语音 | 群聊 |
|
||||
| --- | :-: | :-: | :-: | :-: | :-: |
|
||||
| [微信](/channels/weixin) | ✅ | ✅ | ✅ | ✅ | |
|
||||
| [Web 控制台](/channels/web) | ✅ | ✅ | ✅ | ✅ | |
|
||||
| [飞书](/channels/feishu) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [钉钉](/channels/dingtalk) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [企微智能机器人](/channels/wecom-bot) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [QQ](/channels/qq) | ✅ | ✅ | ✅ | | ✅ |
|
||||
| [企业微信应用](/channels/wecom) | ✅ | ✅ | ✅ | ✅ | |
|
||||
| [公众号](/channels/wechatmp) | ✅ | ✅ | | ✅ | |
|
||||
| [Telegram](/channels/telegram) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Slack](/channels/slack) | ✅ | ✅ | ✅ | | ✅ |
|
||||
|
||||
- **图片 / 文件 / 语音**列表示通道支持收发对应消息类型,具体细节详见各通道文档
|
||||
- **群聊**列指可识别并响应群消息
|
||||
|
||||
<Tip>
|
||||
每个通道的语音 / 图像能力依赖对应模型厂商的配置,详见 [模型概览](/models)。
|
||||
</Tip>
|
||||
|
||||
## 通道一览
|
||||
|
||||
- [Web 控制台](/channels/web) — 内置浏览器对话和管理面板,默认开启
|
||||
- [微信](/channels/weixin) — 通过个人微信扫码登录
|
||||
- [飞书](/channels/feishu) — 飞书自建机器人
|
||||
- [钉钉](/channels/dingtalk) — 钉钉自建机器人
|
||||
- [企微智能机器人](/channels/wecom-bot) — 企业微信智能机器人
|
||||
- [QQ](/channels/qq) — QQ 官方机器人开放平台
|
||||
- [企业微信应用](/channels/wecom) — 企业微信自建应用接入
|
||||
- [公众号](/channels/wechatmp) — 微信公众号(订阅号 / 服务号)
|
||||
- [Telegram](/channels/telegram) — 海外 IM,5 分钟接入,无需公网 IP
|
||||
- [Slack](/channels/slack) — 团队协作 IM,Socket Mode 接入,无需公网 IP
|
||||
118
docs/channels/slack.mdx
Normal file
118
docs/channels/slack.mdx
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
title: Slack
|
||||
description: 将 CowAgent 接入 Slack App
|
||||
---
|
||||
|
||||
> 通过 Slack App 的 **Socket Mode** 接入 CowAgent,支持私聊(DM)与频道(@机器人 / 线程内回复触发)。Socket Mode 基于长连接,无需公网 IP 与回调地址,开箱即用。
|
||||
|
||||
## 一、接入步骤
|
||||
|
||||
### 步骤一:创建 Slack App
|
||||
|
||||
1. 打开 [Slack API 应用管理页](https://api.slack.com/apps),点击 **Create New App** → **From scratch**。
|
||||
2. 填写 **App Name**(如 `CowAgent`),选择要安装的 **Workspace**,点击创建。
|
||||
|
||||
### 步骤二:开启 Socket Mode 并获取 App Token
|
||||
|
||||
1. 左侧菜单进入 **Settings → Socket Mode**,打开 **Enable Socket Mode**。
|
||||
2. 系统会提示生成一个 **App-Level Token**,作用域勾选 `connections:write`,生成后保存这串以 `xapp-` 开头的 Token。
|
||||
|
||||
<Tip>
|
||||
Socket Mode 通过 WebSocket 长连接接收事件,无需在公网暴露回调 URL,适合本地或内网部署。
|
||||
</Tip>
|
||||
|
||||
### 步骤三:配置 Bot 权限并安装
|
||||
|
||||
1. 进入 **Features → OAuth & Permissions**,在 **Bot Token Scopes** 中点击 **Add an OAuth Scope**,逐项添加以下权限:
|
||||
|
||||
```
|
||||
app_mentions:read
|
||||
channels:history
|
||||
chat:write
|
||||
commands
|
||||
files:read
|
||||
files:write
|
||||
groups:history
|
||||
im:history
|
||||
mpim:history
|
||||
users:read
|
||||
```
|
||||
|
||||
<Note>
|
||||
`files:read` / `files:write` 用于图片、文件的收发;若仅需文本对话可省略。
|
||||
</Note>
|
||||
|
||||
2. 进入 **Features → Event Subscriptions**,打开 **Enable Events**,在 **Subscribe to bot events** 中点击 **Add Bot User Event** 添加以下事件:
|
||||
|
||||
```
|
||||
app_mention
|
||||
message.im
|
||||
message.channels
|
||||
```
|
||||
|
||||
<Note>
|
||||
如需在私有频道使用,再添加 `message.groups`。
|
||||
</Note>
|
||||
3. 进入 **Features → App Home**,在 **Show Tabs** 区域勾选 **Messages Tab**,并勾选下方的 **Allow users to send Slash commands and messages from the messages tab**(允许用户从消息标签页发送消息),否则私聊输入框会被关闭、无法给机器人发消息。
|
||||
4. 回到 **OAuth & Permissions**,点击 **Install to Workspace** 完成安装,安装后获取以 `xoxb-` 开头的 **Bot User OAuth Token**。
|
||||
|
||||
<Tip>
|
||||
若 Slack 客户端仍提示「向此应用发送消息的功能已关闭」,请确认已完成上一步的 App Home 设置,并刷新或重启 Slack 客户端(必要时把 App 从对话列表移除后重新打开)。
|
||||
</Tip>
|
||||
|
||||
### 步骤四:接入 CowAgent
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Web 控制台(推荐)">
|
||||
打开 Web 控制台(本地链接:http://127.0.0.1:9899 ),选择 **通道** 菜单,点击 **接入通道**,选择 **Slack**,分别填入 Bot Token(`xoxb-`)和 App Token(`xapp-`),点击接入即可。
|
||||
</Tab>
|
||||
<Tab title="配置文件">
|
||||
在 `config.json` 中添加以下配置后启动:
|
||||
|
||||
```json
|
||||
{
|
||||
"channel_type": "slack",
|
||||
"slack_bot_token": "xoxb-xxxxxxxxxxxx",
|
||||
"slack_app_token": "xapp-xxxxxxxxxxxx",
|
||||
"slack_group_trigger": "mention_or_reply"
|
||||
}
|
||||
```
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
| --- | --- | --- |
|
||||
| `slack_bot_token` | Bot User OAuth Token,形如 `xoxb-...` | - |
|
||||
| `slack_app_token` | App-Level Token(开启 Socket Mode 后生成),形如 `xapp-...` | - |
|
||||
| `slack_group_trigger` | 频道触发方式:`mention_or_reply`(@或线程内回复)/ `mention_only`(仅@) / `all`(所有消息) | `mention_or_reply` |
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
启动 Cow 后,日志中出现以下输出即表示接入成功:
|
||||
|
||||
```
|
||||
[Slack] Bot logged in as user_id=U0XXXXXXX, team=Txxxxxxxx
|
||||
[Slack] ✅ Slack bot ready, listening for events
|
||||
```
|
||||
|
||||
## 二、功能说明
|
||||
|
||||
| 功能 | 支持情况 |
|
||||
| --- | --- |
|
||||
| 私聊(DM) | ✅ |
|
||||
| 频道(@机器人 / 线程内回复) | ✅ |
|
||||
| 文本消息 | ✅ 收发 |
|
||||
| 图片消息 | ✅ 收发 |
|
||||
| 文件消息 | ✅ 收发(PDF / Word / Excel 等) |
|
||||
| 线程回复 | ✅ 回复发送至触发消息所在线程 |
|
||||
|
||||
<Note>
|
||||
Slack 通过线程(Thread)组织对话。机器人会把回复发送到触发消息所在的线程,频道内更整洁。
|
||||
</Note>
|
||||
|
||||
## 三、使用
|
||||
|
||||
完成接入后:
|
||||
|
||||
- **私聊(DM)**:在 Slack 左侧 **Apps** 中找到你的 App,直接发消息对话。
|
||||
- **频道**:把 App 邀请进频道(`/invite @你的App`),使用 `@你的App 你好` 触发对话;后续在同一线程内直接回复即可继续对话。
|
||||
|
||||
发送图片或文件时,可以在附件的输入框中 **添加文字说明**(描述/问题)一并发送,机器人会结合附件回答。也支持先发附件再发问题,两条消息会自动合并提问。
|
||||
112
docs/channels/telegram.mdx
Normal file
112
docs/channels/telegram.mdx
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
title: Telegram
|
||||
description: 将 CowAgent 接入 Telegram Bot
|
||||
---
|
||||
|
||||
> 通过 Telegram Bot API 接入 CowAgent,支持单聊与群聊(@机器人 / 回复机器人触发),使用 Long Polling 模式无需公网 IP,开箱即用。
|
||||
|
||||
|
||||
## 一、接入步骤
|
||||
|
||||
### 步骤一:通过 BotFather 创建 Bot
|
||||
|
||||
1. 在 Telegram 中搜索并打开官方账号 [@BotFather](https://t.me/BotFather)。
|
||||
2. 发送 `/newbot` 命令,按提示输入:
|
||||
- **Bot 名称**(显示名,可中文,例如 `My CowAgent Bot`)
|
||||
- **Bot 用户名**(必须以 `bot` 结尾,例如 `my_cowagent_bot`)
|
||||
3. 创建成功后,BotFather 会返回一段 **HTTP API Token**(形如 `123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ`),妥善保存。
|
||||
|
||||
<Tip>
|
||||
这个 Token 等同于 Bot 的密码,请勿泄露。如果意外泄漏可向 `@BotFather` 发送 `/revoke` 重置。
|
||||
</Tip>
|
||||
|
||||
### 步骤二:(群聊使用)关闭 Privacy Mode
|
||||
|
||||
仅使用单聊可跳过此步。Telegram Bot 默认开启 **Privacy Mode**,群聊中只能收到带 `@bot` 的命令(如 `/start@your_bot`)以及对 bot 消息的 reply;**普通的 `@bot 你好` 文字消息收不到**,会导致群聊无响应。
|
||||
|
||||
向 `@BotFather` 发送:
|
||||
|
||||
1. `/setprivacy`
|
||||
2. 选择刚才创建的 bot
|
||||
3. 选择 `Disable`
|
||||
|
||||
<Note>
|
||||
若设置后群聊仍无响应,可尝试把 Bot 从群里移除并重新拉入。
|
||||
</Note>
|
||||
|
||||
### 步骤三:接入 CowAgent
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Web 控制台(推荐)">
|
||||
打开 Web 控制台(本地链接:http://127.0.0.1:9899 ),选择 **通道** 菜单,点击 **接入通道**,选择 **Telegram**,填入 Bot Token,点击接入即可。
|
||||
</Tab>
|
||||
<Tab title="配置文件">
|
||||
在 `config.json` 中添加以下配置后启动:
|
||||
|
||||
```json
|
||||
{
|
||||
"channel_type": "telegram",
|
||||
"telegram_token": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
|
||||
"telegram_group_trigger": "mention_or_reply"
|
||||
}
|
||||
```
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
| --- | --- | --- |
|
||||
| `telegram_token` | BotFather 返回的 HTTP API Token | - |
|
||||
| `telegram_group_trigger` | 群聊触发方式:`mention_or_reply`(@或回复机器人)/ `mention_only`(仅@) / `all`(所有消息) | `mention_or_reply` |
|
||||
| `telegram_register_commands` | 启动时是否自动向 BotFather 注册命令菜单 | `true` |
|
||||
| `telegram_proxy` | (可选)代理地址,如 `http://127.0.0.1:7890`、`socks5://127.0.0.1:1080`;运行环境无法直连 `api.telegram.org` 时配置,留空则使用环境变量 `HTTPS_PROXY` | `""` |
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
启动 Cow 后,日志中出现以下输出即表示接入成功:
|
||||
|
||||
```
|
||||
[Telegram] Bot logged in as @my_cowagent_bot (id=123456789)
|
||||
[Telegram] Registered 10 bot commands
|
||||
[Telegram] ✅ Telegram bot ready, polling for updates
|
||||
```
|
||||
|
||||
## 二、功能说明
|
||||
|
||||
| 功能 | 支持情况 |
|
||||
| --- | --- |
|
||||
| 单聊 | ✅ |
|
||||
| 群聊(@机器人 / 回复机器人) | ✅ |
|
||||
| 文本消息 | ✅ 收发 |
|
||||
| 图片消息 | ✅ 收发 |
|
||||
| 语音消息 | ✅ 收发(接收 OGG/Opus,发送 OGG/Opus) |
|
||||
| 视频消息 | ✅ 收发 |
|
||||
| 文件消息 | ✅ 收发(PDF / Word / Excel 等) |
|
||||
| 命令菜单 | ✅ 与 Web 控制台 slash 命令一致 |
|
||||
|
||||
### 命令菜单
|
||||
|
||||
启动时会自动向 BotFather 注册命令菜单,用户在 Telegram 输入框输入 `/` 会出现下拉提示:
|
||||
|
||||
| 命令 | 说明 |
|
||||
| --- | --- |
|
||||
| `/help` | 显示命令帮助 |
|
||||
| `/status` | 查看运行状态 |
|
||||
| `/context` | 查看对话上下文(`/context clear` 清除) |
|
||||
| `/skill` | 技能管理(`/skill list`、`/skill install` 等) |
|
||||
| `/memory` | 记忆管理(`/memory dream`) |
|
||||
| `/knowledge` | 知识库管理(`/knowledge list` / `on` / `off`) |
|
||||
| `/config` | 查看当前配置 |
|
||||
| `/cancel` | 中止当前正在运行的 Agent 任务 |
|
||||
| `/logs` | 查看最近日志 |
|
||||
| `/version` | 查看版本 |
|
||||
|
||||
<Note>
|
||||
Telegram 命令菜单只能展示一级命令,子命令通过空格输入即可,例如 `/skill list`、`/context clear`。
|
||||
</Note>
|
||||
|
||||
## 三、使用
|
||||
|
||||
完成接入后:
|
||||
|
||||
- **单聊**:在 Telegram 中搜索你创建的 Bot 用户名(如 `@my_cowagent_bot`),点击 `Start` 即可开始对话。
|
||||
- **群聊**:把 Bot 拉进群,使用 `@bot 你好` 或 **回复 Bot 的某条消息** 触发对话。若群聊无响应,请检查 Privacy Mode 是否已按 [步骤二](#步骤二-群聊使用-关闭-privacy-mode) 关闭。
|
||||
|
||||
发送图片或文件时,可以直接在附件上方的输入框中 **添加 Caption**(描述/问题)一并发送,机器人会结合附件回答。也支持先发附件再发问题,两条消息会自动合并提问。
|
||||
@@ -59,9 +59,9 @@ Web 控制台是 CowAgent 的默认通道,启动后会自动运行,通过浏
|
||||
|
||||
### 模型管理
|
||||
|
||||
支持在线管理模型配置,无需手动编辑配置文件:
|
||||
支持在线管理不同模型厂商的文本、图像、语音、向量模型配置,无需手动编辑配置文件:
|
||||
|
||||
<img width="850" src="https://cdn.link-ai.tech/doc/20260227173811.png" />
|
||||
<img width="850" src="https://cdn.link-ai.tech/doc/20260521212949.png" />
|
||||
|
||||
### 技能管理
|
||||
|
||||
|
||||
Reference in New Issue
Block a user