☰
如何用手机远程操控AI Agent:Atomic Agent接入Telegram/Discord机器人完整配置指南
2026/10/3 6:35:37 网站建设 项目流程

如何用手机远程操控AI Agent:Atomic Agent接入Telegram/Discord机器人完整配置指南

【免费下载链接】atomic-agentAtomic Agent is a local-first AI agent. Runs open-weight models on your own machine via llama.cpp.项目地址: https://gitcode.com/gh_mirrors/at/atomic-agent

Atomic Agent 是一个本地优先(local-first)的开源 AI Agent,通过 llama.cpp 在你自己的机器上运行开源权重模型,可以浏览网页、编辑文件、执行已批准的命令并跨会话记忆上下文。它的 Telegram / Discord 频道功能,让你直接用手机聊天窗口远程操控这个 Agent——危险操作会推送到手机上的审批按钮,点一下"批准"即可执行。本文带你从零完成配置。

为什么要把 AI Agent 接到手机上?📱

大多数 Agent 只能守在电脑终端里盯着。但你的 Agent 可能一跑就是几十分钟——等它跑到一半需要"批准执行这条命令"时,你人不一定在电脑旁。

Atomic Agent 的频道(Channels)设计解决了这个问题:

  • 会话隔离:每个 Telegram 聊天、论坛话题、Discord 频道和线程都是独立会话,互不串扰
  • 审批按钮:敏感操作(如运行 shell 命令)会以带按钮的消息推到"发起那一轮"的聊天里,只有配对的所有者能点
  • 文件双向传输:手机上发文件给机器人,Agent 就能拿到路径;Agent 的回复也能附带文件
  • 定时任务回报:定时任务跑完可以把结果直接推送到你的私聊

一键安装步骤

先安装 Atomic Agent 本体(macOS / Linux):

curl -fsSL https://atomicagent.io/install | sh

Windows (PowerShell):

irm https://atomicagent.io/install.ps1 | iex

安装完成后运行atomic-agent(或别名atag)进入 TUI。如果你打算从源码了解实现,可克隆仓库:https://gitcode.com/gh_mirrors/at/atomic-agent

💡 两个机器人通道都可以在 TUI 的Integrations(集成)标签页里图形化配置,下面讲的手改配置文件方式效果相同。

Telegram 机器人完整配置

第一步:创建 Bot 并拿到 Token

在 Telegram 中找 @BotFather,执行/newbot按提示取名,拿到形如123456789:AA-your-bot-token的 Token。

第二步:写入配置

Atomic Agent 把开关、所有者放在<stateDir>/config.json,把Token 这种机密单独放在<stateDir>/.env,两者分离是有意为之(Token 永远不会进 config.json):

// <stateDir>/config.json { "telegram": { "enabled": true, "ownerUserId": null } }
# <stateDir>/.env TELEGRAM_BOT_TOKEN=123456789:AA-your-bot-token

对应实现见 telegram-settings.ts,Token 键名TELEGRAM_BOT_TOKEN定义在 第19行。

第三步:配对(Pairing)确定主人

Telegram 机器人只响应它的主人。配对模式很简单:在 TUI 触发配对 → 60 秒内,第一个给机器人发私聊消息的用户即成为主人(写入ownerUserId)。配对状态机实现在 pairing-mode.ts,默认窗口 60 秒。

⚠️群里使用:需要先在 @BotFather 中关闭机器人的 privacy mode,否则普通 @提及 不会送达机器人。

进度气泡

任务运行期间,机器人会维持一个"静默进度气泡",只显示步骤标签(如"读取文件"),绝不泄露工具输出。不喜欢就关掉:"telegram": { "progressIndicator": false }。

Discord 机器人配置(免配对版)

Discord 通道没有配对流程,直接把你的用户 ID 填进配置即可(discord-settings.ts):

// <stateDir>/config.json { "discord": { "enabled": true, "ownerUserIds": ["123456789012345678"] } }
# <stateDir>/.env DISCORD_BOT_TOKEN=your-discord-bot-token

两个细节值得注意:

  • 空列表 = 拒绝所有人:ownerUserIds不填就等于机器人不响应任何消息
  • 不需要特权 Intents:Discord 无需特殊权限即可投递私聊和 @提及,省掉一步折腾

审批按钮:手机上的一键批准/拒绝 🔐

这是整套手机遥控体验的灵魂。当 Agent 要执行需要审批的操作(典型场景:运行一条 shell 命令)时:

  1. 请求不会落在电脑端的 TUI 对话框上,而是发到发起这一轮的那个聊天
  2. 消息带两个按钮(Discord 端"拒绝"按钮是醒目的红色 danger 样式)
  3. 只有配对的所有者能点击,其他账号点击会被静默忽略并收到提示
  4. Telegram 端每轮审批默认8 分钟自动拒绝(approval-bridge.ts 第13行),防止任务卡死;Discord 端实现在 discord-approval-bridge.ts

安全性设计同样是"失败即关闭":发送审批消息失败时立即按拒绝处理,绝不无限挂起;重复点击同一个按钮也不会二次生效。

手机上常用的聊天命令

两个机器人都理解这些命令,随时发:

命令作用
/status查看当前状态
/sessions列出所有会话
/switch <id>切换到指定会话
/new开一个新会话
/model [provider] [model-id]切换模型
/cancel取消当前正在跑的这一轮

文件收发与定时任务回报 📎

发文件给 Agent:私聊里发图片/文档,文件会存到<stateDir>/inbox/telegram/(按天分文件夹),Agent 拿到路径和你附的文字说明。Telegram 机器人单文件上限 20 MB;Discord 入站文件上限 50 MB,存到<stateDir>/inbox/discord/。

Agent 回文件:图片内联显示,其他格式作为文档附件,受 Telegram 50 MB 机器人上限约束。

定时任务主动汇报:给定时任务加上通知参数,每次运行的结果会直接推送到你的私聊:

atomic-agent task create --cron "0 9 * * *" --message "morning digest" --notify telegram

让机器人常驻后台:serve 命令 🚀

机器人生存在 Agent 运行时里,不依赖 TUI。用serve启动时,所有已启用的 Telegram / Discord 机器人(以及 Swarm 机器人)会一起在后台应答——即使终端 UI 完全关闭:

atomic-agent serve --host 127.0.0.1 --port 8787 --cwd /path/to/work

两个运维要点:

  • 锁文件防重入:每个机器人有独立的锁文件,第二个进程尝试启动同一个机器人会直接失败(already running in another atomic-agent (pid N)),别从 TUI 和 serve 两边同时启动
  • 常驻守护:默认serve不脱离父进程;要后台长期运行请加--no-parent-exit(或环境变量ATOMIC_AGENT_SERVE_NO_PARENT_EXIT=1)。入口实现在 serve-command.ts

进阶:Swarm 多机器人

想让"值班机器人"和"开发机器人"各管一摊?在 TUI 的 Swarm 标签页(/swarm)可以增开任意多个 Telegram / Discord 机器人,各自独立 Token、主人、锁文件和会话:

"swarm": { "units": [ { "id": "ops", "kind": "telegram", "label": "Ops", "role": "on-call triage", "enabled": true, "tokenEnv": "TELEGRAM_BOT_TOKEN_OPS", "ownerUserId": null } ] }

Token 键名按<KIND>_BOT_TOKEN_<ID>规则命名,互不覆盖。相关源码集中在 src/channels/swarm/。

常见坑位速查

症状原因与解法
Telegram 群里 @机器人没反应未关闭 privacy mode,去 @BotFather 处理
Discord 机器人完全不理人ownerUserIds为空列表,填入自己的用户 ID
审批消息 8 分钟后自动拒绝这是 Telegram 端的超时保护(fail-closed 设计),不是故障
启动报already running in another atomic-agent (pid N)同一机器人已被别的进程占用,先在旧进程里停掉
Token 改了不生效Token 必须在<stateDir>/.env,写进 config.json 无效

小结

Atomic Agent 通过 Telegram / Discord 频道,把"本地 AI Agent"变成了"手机里的 AI 助理":私聊即会话、按钮即审批、文件双向流通、定时任务自动回报。全部状态留在你自己的磁盘上,Token 与配置分离存放,审批按钮只对配对所有者生效——本地优先,遥控安全。装上它,Agent 干活,你只需要在手机上点一下"批准"。✅

【免费下载链接】atomic-agentAtomic Agent is a local-first AI agent. Runs open-weight models on your own machine via llama.cpp.项目地址: https://gitcode.com/gh_mirrors/at/atomic-agent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询