跳到主要内容

网关模式

网关模式(Gateway mode)允许将 Ante 作为长寿命机器人运行,可从 Slack、Discord 或同时从两者接入访问。每一次对话 —— 频道中的讨论串(thread)或私聊(DM)—— 都会分配到独立的智能体会话,使得多用户和多团队可以并发与 Ante 协作而互不干扰状态。

基础用法

ante gateway

此命令将读取 ~/.ante/channels.json,连接您启用的所有平台,并开始监听消息。

配置文件

创建 ~/.ante/channels.json。您可以仅启用 Slack、仅启用 Discord 或两者同时启用。

{
"slack": {
"enabled": true,
"bot_token": "env:SLACK_BOT_TOKEN",
"app_token": "env:SLACK_APP_TOKEN",
"allow_from": "open"
},
"discord": {
"enabled": true,
"bot_token": "env:DISCORD_BOT_TOKEN",
"allow_from": ["123456789012345678"]
}
}

env: 开头的值会在启动时从环境变量中读取,避免将敏感 Token 明文保存在文件中。

访问控制

allow_from 字段决定机器人会响应谁的消息:

取值允许与机器人对话的受众
"open"工作区或服务器内的所有成员
["U123", "U456"]仅限列表中的具体用户 ID
(省略)拒绝所有访问(安全的默认策略)

配置 Slack

  1. 访问 api.slack.com/appsFrom scratch 创建应用。
  2. Settings → Socket Mode:开启 Socket Mode 并创建一个拥有 connections:write 权限的 App-Level Token。复制 xapp-… Token —— 作为 app_token
  3. Features → OAuth & Permissions → Bot Token Scopes:添加 chat:writeapp_mentions:readchannels:historyim:historyim:write 权限。
  4. Features → Event Subscriptions:开启事件订阅并订阅 message.channelsmessage.im
  5. Features → App Home:启用 Messages Tab 并允许用户直接发送消息。
  6. Settings → OAuth & Permissions → Install to Workspace。复制生成的 xoxb-… Bot User OAuth Token —— 作为 bot_token
  7. 在每个需要机器人的频道中运行:/invite @your-bot-name
export SLACK_BOT_TOKEN="xoxb-..."
export SLACK_APP_TOKEN="xapp-..."

在 Slack 中使用机器人: 在频道中 @提及 机器人,或直接发送私聊 DM。机器人的回复始终汇总在讨论串(thread)中。

备注

任何时候修改了权限(Scopes)或事件订阅后,必须点击 Reinstall to Workspace 重新安装才能生效。

配置 Discord

  1. 访问 discord.com/developers/applicationsNew Application 创建应用。
  2. Bot:复制 Token —— 作为 bot_token。在 Privileged Gateway Intents 下开启 Message Content Intent(必选)。
  3. OAuth2 → URL Generator:在 Scopes 中勾选 bot;在 Bot Permissions 中勾选 Send MessagesRead Message HistoryView Channels。打开生成的 URL 将机器人邀请到您的服务器。
export DISCORD_BOT_TOKEN="..."

在 Discord 中使用机器人: 在服务器频道中 @提及 机器人,或发送私聊 DM。机器人会通过引用回复你的消息 —— 直接回复机器人的消息即可继续对话。

与机器人交互

当机器人加入工作区或服务器且网关正在运行后,您可以像与普通机器人一样与其交谈。部分特定回复具有特殊含义。

您可以随时通过发送以下指令中断机器人:

指令效果
stop取消当前任务(类似于 TUI 中的 Ctrl+C)

当机器人请求执行工具的权限时,回复以下内容之一:

回复效果
yes(或 y批准本次工具调用
no(或 n拒绝本次工具调用
always批准并在当前会话的后续调用中始终允许该工具

更多关于工具审批流程的说明,请参见授权与审批

命令行参数参考

ante gateway [--config PATH] [--model MODEL] [--provider PROVIDER] [--output-format FORMAT] [--offline-model PATH]
参数标识默认值说明
--config~/.ante/channels.json渠道配置文件的路径
--modellocal所有会话使用的大语言模型
--providerlocal所选模型的提供商
--output-formatminimal网关 stdout 输出格式:minimalhumanjson
--offline-model本地 GGUF 文件路径。在接受消息前拉起共享的 llama-server 并将所有对话路由至该服务(强制使用 --provider local --model local
提示

默认配置假定使用本地 llama-server。若需使用云端托管提供商,请显式传入 --provider--model(例如 ante gateway --provider anthropic --model claude-sonnet-5)。

输出格式

格式显示内容
minimal仅输出智能体回复消息、通知信息与错误
human彩色格式化输出所有事件(适用于调试)
json逐行输出 JSON Lines 格式的所有事件(适用于通过管道传递给其他工具)

常见问题排查

Slack 提示:"Sending messages to this app has been turned off"App Home 下启用 Messages Tab 并允许用户发送消息,随后重新点击 Reinstall to Workspace。

Slack 中机器人在频道被 @提及 时无响应 确保机器人已被邀请加入该频道(/invite @bot-name),且 message.channels 已添加在 Event Subscriptions 中。修改事件或权限后请重新安装应用。

Discord 中机器人无响应 确认机器人已开启 Message Content Intent,且在频道中拥有 Send MessagesRead Message History 权限。

网关收到消息后未输出任何内容 使用 --output-format human 运行以查看所有事件,并检查 ~/.ante/logs/ 中的详细错误信息。