消息渠道与远程控制

在设置里直接连接 QQ 与 Telegram,或通过渠道插件、手动 Webhook 把 ACECode 会话接到其他消息平台。

本页内容

连接 QQ、微信、飞书、钉钉、Telegram、Discord 与 LINE

在 设置 > 集成 > 消息通道 中直接连接 QQ 官方机器人、微信、飞书、钉钉、Telegram、Discord 与 LINE,不需要安装插件或 Node.js;除 LINE 外都由本机主动连出,不需要公网地址,所有连接都跟随 ACECode 的代理设置。页面上每个平台一张卡片:点连接,还没配好的平台会弹出三步向导(创建机器人 → 连接 → 绑定机主),配好的直接连上;连上后按钮变成取消连接,点一下立即断开。卡片只显示简要状态和待批准请求,连接失败的原因、群隐私模式、收发计数等细节写在后台进程的日志里(数据目录下 logs/daemon-日期.log,带 [channels/…] 前缀)。

平台配置方式
QQ点连接后向导直接显示二维码,用手机 QQ 扫码并确认,机器人会自动创建并配置,扫码人成为机主。也可以改为手动填写 AppID / AppSecret,保存前会先验证。未经个人认证的机器人只有管理员本人能使用,并且只能加入管理员担任群主的群。
Telegram向导第一步说明如何在 @BotFather 创建机器人,粘贴 Token 后会先验证。连上后在“绑定机主”一步用手机相机扫码(Telegram 自带的扫码只能登录设备,扫不了这个),在 Telegram 里点开始即成为机主;电脑上登录了 Telegram 也可以直接点链接,或点复制链接。
微信点连接后用微信扫码并在手机上确认,扫码的微信号自动成为机主,也是唯一能使用它的人。微信机器人只支持私聊;登录失效时卡片会提示,重新扫码即可。
飞书在飞书开放平台创建企业自建应用、添加机器人能力并开通 im:message 等权限,填入 App ID 与 App Secret(可选飞书或 Lark)。连上之后回到开放平台,把订阅方式保存为使用长连接接收事件、添加接收消息 v2.0事件并发布版本(飞书要求长连接在线时才能保存)。
钉钉在钉钉开放平台创建企业内部应用、添加机器人并选择 Stream 模式,开通机器人发送消息权限后发布,填入 Client ID 与 Client Secret。
Discord在 Discord 开发者后台新建应用,在 Bot 页复制 Token 并打开 Message Content Intent,粘贴 Token 后用向导给出的邀请链接把机器人拉进服务器。私信与频道里 @机器人 都能用。
LINE在 LINE Official Account Manager 建官方账号并启用 Messaging API,填入 Channel ID 与 Channel secret;在控制台打开 Use webhook、关闭自动回应。LINE 只能回调公网地址:公网地址留空时 ACECode 用 cloudflared 自动建立临时隧道(先用 winget install --id Cloudflare.cloudflared 安装),也可以填写自己的 HTTPS 地址。

默认拒绝所有人。陌生人私聊只会收到配对提示,平台卡片上出现待批准请求(Desktop 窗口不在前台时弹出系统通知),请求 10 分钟后失效。群要先批准,群里只处理 @机器人 的消息,群成员也要单独批准。飞书、钉钉、Discord、LINE 连上后,向导会给出 6 位绑定码,私聊机器人发送这串数字即成为机主(10 分钟内有效,只能用一次)。飞书和钉钉会把每条消息随机交给同一应用的某一个连接,同一个应用不要再同时接到别的工具上,否则会悄悄分走一部分消息。在卡片的管理里可以更换机器人或撤销授权;撤销会立即停止处理对方的消息,并中止其会话正在进行的回合。

在聊天中发送作用
/help列出可用命令。
/status查看会话、位置、模型、是否忙碌和待处理事项。
/stop停止当前回合。
/new在当前会话所在的位置新建会话。
/sessions、/resume 编号列出并切换会话;机主可以切到任意会话,其他人只能切换自己创建的会话。
/model 名称从下一回合起切换模型。
/approve 编号、/deny 编号、/aq处理权限请求与提问,与 Desktop 先答者生效。

每个私聊(或群里的每位成员)绑定一个 ACECode 会话,第一条消息会自动新建无项目会话并使用默认权限。被绑定的会话在侧栏显示电脑图标;在 Desktop 里向它输入时,回复也会发到聊天。图片和文件会导入会话附件,QQ 语音使用平台识别出的文字。通道由后台进程托管:在“常规”中勾选“退出 ACECode 后继续运行后台进程”时,关闭 Desktop 后通道仍然在线。

准备并连接消息渠道

先按渠道插件的说明安装它的可执行程序、完成平台认证并取得 manifest 文件。ACECode 使用 remote_control.channels 保存插件配置,使用 remote_control.default_channel 指定默认渠道。只输入消息平台名称不会自动安装插件。

JSON · 合并到主配置,路径与 settings 按插件说明填写
{
  "remote_control": {
    "default_channel": "my-channel",
    "channels": {
      "my-channel": {
        "manifest_path": "/absolute/path/to/channel-plugin.json",
        "timeout_ms": 10000,
        "settings": {}
      }
    }
  }
}

在要绑定的会话中提交 /rc,它是 /remote-control 的别名,会激活默认渠道。确认返回已连接状态后,从消息平台发一条简单请求,检查是否进入目标会话并能收到回复。

展示 /rc 返回的已连接状态和会话绑定标记,以及一条测试消息的往返;必须遮挡 Token、Webhook 密钥与私人聊天。

在渠道中切换会话

daemon 托管的已连接渠道可使用以下会话导航命令。这些控制命令由后台处理,不会作为普通问题交给当前模型。

在渠道发送结果
/sessions列出最近十个普通、未归档会话。
/sessions more 或 /sessions all查看完整目录。
/sessions search 关键词搜索最多五个匹配结果。
/sessions 2选择最近一次列表中的第 2 个会话。

/session 和 /resume 是同一组渠道导航的别名。列表包含有工作区与无工作区的普通任务,不包含已归档任务和子代理。切换成功后以确认信息中的会话名称为准,再发送后续工作。

目标会话无法恢复时,原连接会保留。运行中的控制请求还在处理时,不要连续发送大量列表和切换命令。桌面前端可以收到切换提示,但渠道本身的会话选择不依赖桌面窗口保持打开。

查看状态、解绑与手动接入

在 ACECode 会话中查看状态与解除绑定
/rc show
/rc off

show 展示当前连接、入站与出站状态,内容可能包含认证信息,不要直接公开截图。off 解除当前绑定。daemon 托管模式会保存绑定会话并在后续启动时尝试恢复,单纯关闭桌面窗口不等于主动解绑。

手动集成使用 /remote-control on 启动本地入站服务,再通过 /remote-control url <webhook-url> 指定出站地址。入站使用 POST /rc/send、X-ACECode-RC-Token 请求头和 {"text":"消息"} 正文;按 show 的实际地址接入。

远程消息控制与远程 Web是两套入口,认证头与端口也不同。需要实现自己的渠道时,参见渠道插件协议。

搜索全部帮助文档