聊天频道
聊天频道将一款消息应用——Telegram、Lark (Feishu) 或 WeChat——连接到 Codeg,让你可以从手机上运行它。从一条聊天消息发起任务,在智能体工作时与它交谈,当它需要权限来运行命令时点击批准,并将结果推送回给你——这一切都无需坐在 Codeg 前。这是你离开 Codeg 时驱动它的两种方式之一;另一种是自动化。
你只需在设置中连接一次机器人,此后一切都通过消息完成:一个已连接的聊天可以启动会话、实时跟踪它们,并解除正在等待你的智能体的阻塞。在你添加频道之前,任何功能都不会开启。
连接频道
一切都位于设置 → 聊天频道下,它有四个标签页——频道、命令、事件和其他。从频道开始,点击添加频道:为它起个名字,选择频道类型,并填写该类型所需的信息。
| 频道 | 你需要提供什么 | 如何连接到 Codeg |
|---|---|---|
| Telegram | 一个 Bot Token(来自 @BotFather)和用于对话的 Chat ID | 对 Telegram 的 API 进行长轮询 |
| Lark (Feishu) | 一个自定义应用的 App ID 和 App Secret,以及群组的 Chat ID | 向 Lark 打开一个出站 WebSocket |
| 无需输入任何内容——你扫描一个二维码 | 通过托管的 iLink 机器人服务 |
各类型的具体说明:
- Telegram。 用 @BotFather 创建一个机器人,粘贴它的 Bot Token(
123456:ABC-DEF…),并提供机器人应发消息的聊天或群组的 Chat ID(群组形如-100123456789)。 - Lark (Feishu)。 从一个 Lark 自定义应用中,获取它的 App ID(
cli_xxxxx)和 App Secret,以及目标群组的 Chat ID(oc_xxxxx)。 - WeChat。 无需粘贴任何内容——将 iLink 基础 URL 保持为默认值(
https://ilinkai.weixin.qq.com),添加后点击连接 ▶ 调出二维码。打开 WeChat 扫描它,频道便会自行授权。如果无人扫描,二维码每五分钟刷新一次。
你还可以为每个频道开启每日报告并设置时间(默认 18:00)——Codeg 会每天推送一次当天会话的摘要。
频道一旦添加,就会显示在已配置频道下,每一行都带有一个启用开关,以及用于连接 ▶ / 断开 ■、用一条 ping 消息测试其通道、编辑(需先断开)或删除的按钮。一个彩色圆点跟踪实时状态——绿色表示已连接,琥珀色表示连接中,红色表示错误,灰色表示关闭。已启用的频道会在 Codeg(或服务器)每次启动时自动连接,所以你只需设置一次。
无需开放端口,无需公网 URL
每个频道都通过向外连接——Telegram 长轮询、Lark 打开 WebSocket、WeChat 借助 iLink 服务——因此它们都不需要入站 webhook 或你对外暴露的端口。位于 NAT 后面的桌面应用与公网服务器的工作方式完全相同。(唯一的出站 HTTP 部分,即 webhook,是可选的,方向恰好相反。)
用命令驱动 Codeg
你发给机器人的任何内容都会以两种方式之一解读。如果它以命令前缀开头,就是一条命令;否则,如果你有一个打开的会话,它就是发给该会话智能体的下一条消息。
前缀默认是 /,位于命令标签页——如果 / 与其他东西冲突,可将它设置为任意 1–3 个非字母数字字符。在群聊中,你必须 @提及机器人,它才会读取你的消息。
| 命令 | 作用 |
|---|---|
/folder [n|path] | 列出你的文件夹,按编号选择一个,或按路径添加一个——设置你的工作文件夹 |
/agent [n|name] | 列出智能体,或选择由哪个智能体运行你的下一个任务 |
/task <description> | 在当前文件夹中用当前智能体创建一个会话并运行任务 |
/sessions | 列出你文件夹中正在进行的会话 |
/resume [id] | 按 id 恢复一个会话(或列出最近的对话) |
/cancel | 取消你的活动会话 |
/approve [always] | 批准待处理的权限请求(always 还会在此聊天中自动批准未来的请求) |
/deny | 拒绝待处理的权限请求 |
/search <keyword> | 按标题搜索你的对话 |
/today | 今天活动的摘要 |
/status | 你频道的连接状态 |
/help | 命令列表 |
一次典型的运行只需三条消息,然后就是普通对话:
/folder 2
/agent claude_code
/task Fix the flaky test in tests/auth.spec.ts and explain the cause在 /task 之后,去掉斜杠——任何不带前缀的消息都会作为下一条提示词转发给你的智能体,因此你可以像平常一样与它对话。(如果它仍在处理当前回合,Codeg 会回复它正忙,请稍后再试。)
每个人都有自己的上下文
当前的文件夹、智能体和会话是按聊天成员分别跟踪的,因此多个人可以共享一个已连接的机器人,各自运行自己的任务而互不干扰。
批准并跟踪进度
事件标签页控制 Codeg 推送回你聊天的内容。五个事件,每个都是一个开关:
| 事件 | 触发时机 | 默认 |
|---|---|---|
| 回合完成 | 智能体完成一个回合时 | 开 |
| 智能体错误 | 智能体遇到错误时 | 开 |
| 权限请求 | 智能体需要批准才能行动并正在等待时 | 开 |
| 智能体提问 | 智能体向你提问时 | 开 |
| 用户消息 | 你发送一条提示词时——其中包含提示词文本 | 关 |
用户消息默认关闭是有意为之:它是唯一会将你的提示词文本复制到频道(以及任何 webhook)的事件,因此需要你主动选择启用。
其价值体现在权限请求循环上。当你从聊天中启动的任务想要运行命令或写入文件时,Codeg 会把请求发到同一个聊天中并等待——回复 /approve(或 /approve always)予以放行,或回复 /deny 予以拒绝。这正是该功能的全部意义所在:智能体可以暂停下来等待人类决策,而你可以在任何地方从手机上做出决定。提问也以同样的方式运作,会呈现出来供你回答。
关于你从聊天中启动的任务的更新会流回到那个聊天——它的回复、工具调用以及上面的提示。你在应用中启动的会话也会作为通知出现在你已连接的频道里(经过速率限制,以免话痨式的运行淹没你),这样你就能从口袋里对桌面上的工作保持半分留意。
将事件发送到你自己的工具
在同一标签页下,Webhook 会将相同的已启用事件,以带 JSON 主体的 HTTP POST 形式,转发到你添加的任意 URL——用于将 Codeg 接入仪表板、Slack 中继或你自己的自动化。上面的事件开关同样控制 webhook(不过 webhook 不受速率限制)。负载小而稳定:
{
"event": "permission_request",
"level": "warning",
"title": "Permission Request",
"body": "An agent is waiting for approval.",
"fields": [{ "label": "Operation", "value": "Bash: npm test" }],
"connection_id": "conn-abc",
"source": "codeg"
}与聊天机器人不同,webhook 指向外部——由 Codeg 调用你的 URL——因此如果你在防火墙后运行,那个 URL 必须能从 Codeg 运行所在的机器上访问到。
选择消息语言
其他标签页只有一个设置:消息语言——Codeg 撰写其聊天消息(命令回复、事件通知、每日报告)所用的语言。它独立于应用自身的界面语言,并覆盖相同的十种语言,因此你可以用英语运行 Codeg,却让机器人用简体中文回复你。
须知
- 频道是应用级的,而非按文件夹划分。 你只需添加一次;每个任务用
/folder选择文件夹。 - Bot token 与你的 git 凭据保存在同一个密钥存储中——桌面端是你的操作系统系统密钥环,服务器端则是
CODEG_DATA_DIR下的tokens.json。频道的其他一切(名称、chat id、事件设置、每日报告时间)都存放在 Codeg 的本地数据库中,消息历史会被记录并保留 30 天。→ Codeg 在哪里存储数据 · git 账户 - 你的机器人直接与消息服务通信。 没有任何内容经由 Anthropic 或 Codeg 服务器中转;Telegram 和 Lark 直接从你的机器连接,WeChat 则通过 iLink 中继。
- 在服务器上完全相同。 相同的设置界面也在浏览器版本中——只需确保服务器能访问互联网。
- WeChat 有一个小怪癖。 由于 iLink 协议的限制,每次重新连接后,你必须先给机器人发一条消息,事件推送才会重新开始流动;Codeg 会在该频道上用一个小提醒标示这一点。
- 从聊天中批准权限是真刀真枪的。
/approve回答的正是你在应用中会看到的同一个提示,处于你正常的权限级别——聊天只是另一个说“是”的地方。