引子:一个"口袋里"的 AI 工作台
想象一个场景:你在地铁上,给某个 Telegram bot 发一句"帮我盯一下服务器,内存超 80% 就告警",然后收起手机;回家打开电脑,一个 Claude Code 会话已经把日志整理好、写好了排查脚本等你验收。
这不是科幻——OpenClaw 早就证明了"后台 agent + 手机遥控"的形状[2];2026 年 9 月,Claude Code Channels 把这条路径变成了官方能力:Telegram 官方插件、持久记忆、/loop 定时任务、云端 Routine[1][2]。本文走两条路把它落地:路线 A(官方插件,开箱即用)与路线 B(用 Claude Code 从零开发自定义 Bot,代码完整可跑)。
一、为什么 IM Bot 是 AI 编程的新热门载体
1.1 从 OpenClaw 到官方 Channels
OpenClaw 证明了形状:一个在后台持续工作的 agent,通过 IM 随时接收指令。而 Claude Code 栈在 2026 年 9 月把这套东西全部官方化[1][2]:
1.2 IM Bot 的场景价值
场景 | 价值 |
|---|---|
服务器巡检 | 手机收告警,agent 自动跑脚本 |
定时日报 | /loop 定时生成,VPS 关机也能跑(cloud Routines) |
任务遥控 | 上下班路上给 Claude Code 派活 |
团队助手 | 群内共享 bot,统一入口 |
核心洞察:IM 是"低门槛入口 + 高可用通知"的最佳组合——agent 不需要 UI,它需要的是随时能叫醒它的通道[2]。
二、路线 A:Claude Code Channels 官方插件
2.1 第一步:BotFather 建 bot
打开 Telegram 找 @BotFather,/newbot,起名、拿 token——token 就是你的 bot 的钥匙,要像密码一样保管,绝不提交仓库[1][3]。
2.2 三步配置
# 在 Claude Code 会话内: # ① 安装官方 Telegram 插件 /plugin install telegram@claude-plugins-official # ② 配置 token(也可用环境变量 TELEGRAM_BOT_TOKEN) /telegram:configure 7123456789:AAH1bGciOiJSUzI1NiIsInR5cCI6Ikp... # 你的真实 token # ③ 完成:手机给 bot 发消息 = 远程给 Claude Code 下指令2.3 能做什么
给 Claude Code 派活(写代码、读文件、跑命令)
配合
/loop做定时任务;skills/ 目录持久记忆;cloud Routines 让 VPS 关机后仍触发[2]
路线 A 一句话:零代码,三步,能力完整——适合个人自动化。
三、路线 B:用 Claude Code 从零开发自定义 Bot
以下对话流程为用 Claude Code 开发的示意(产物即
telegram_agent_demo.py,已通过本地语法验证)。
3.1 开发对话实录(AI 编程的工作方式)
你:帮我用 python-telegram-bot 写一个 Telegram bot, 命令:/start /help /ask <问题> /status, 其中 /ask 调用 DeepSeek 兼容 API。代码要能直接跑。 Claude Code: ① 检查环境 → 确认 python-telegram-bot 版本 ② 生成 telegram_agent_demo.py(应用框架 + LLM 接入) ③ 给出运行说明(设置 BOT_TOKEN 环境变量)3.2 完整代码:telegram_agent_demo.py
import os import requests from telegram import Update from telegram.ext import Application, CommandHandler, ContextTypes TOKEN = os.getenv("BOT_TOKEN", "") # @BotFather 获取 LLM_URL = os.getenv("LLM_URL", "https://api.deepseek.com/v1/chat/completions") LLM_KEY = os.getenv("LLM_KEY", "") LLM_MODEL = os.getenv("LLM_MODEL", "deepseek-chat") def ask_llm(prompt: str) -> str: """OpenAI 兼容端点:换 base_url + model 即可接 GLM/Qwen 等""" if not LLM_KEY: return f"[模拟] 未配置 LLM_KEY,收到问题:{prompt[:30]}……" resp = requests.post( LLM_URL, headers={"Authorization": f"Bearer {LLM_KEY}"}, json={ "model": LLM_MODEL, "messages": [ {"role": "system", "content": "你是网络与通信技术助手,回答要简洁、有依据。"}, {"role": "user", "content": prompt}, ], "max_tokens": 512, }, timeout=60, ) resp.raise_for_status() return resp.json()["choices"][0]["message"]["content"] async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text( "👋 我是 AI 编程开发的 Telegram Agent。\n" "/ask <问题> — 问 LLM\n/status — 状态\n/help — 帮助") async def ask(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: q = " ".join(ctx.args) if not q: await update.message.reply_text("用法:/ask <你的问题>"); return await update.message.reply_text("🤔 思考中……") try: ans = ask_llm(q) except Exception as e: ans = f"❌ LLM 调用失败:{e}" await update.message.reply_text(ans) async def status(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text(f"🟢 运行中\n模型:{LLM_MODEL}\n端点:{LLM_URL.split('/')[2]}") def main() -> None: assert TOKEN, "请设置 BOT_TOKEN" app = Application.builder().token(TOKEN).build() app.add_handler(CommandHandler("start", start)) app.add_handler(CommandHandler("help", start)) app.add_handler(CommandHandler("ask", ask)) app.add_handler(CommandHandler("status", status)) app.run_polling() if __name__ == "__main__": main()3.3 运行与接入
# 安装依赖 pip install python-telegram-bot requests # 运行(token 来自 @BotFather) BOT_TOKEN=你的token python3 telegram_agent_demo.py接其他模型:DeepSeek/GLM 都提供 OpenAI 兼容端点——只需改LLM_URL(base_url)与LLM_MODEL,一行都不用动主逻辑。这就是"OpenAI 兼容"协议的红利[1]。
四、双路线对比
维度 | 路线 A(官方 Channels) | 路线 B(自建 Bot) |
|---|---|---|
开发量 | 零(三步配置) | 几十行代码 |
能力 | 完整(工具/文件/记忆/定时) | 自定义命令、任意逻辑 |
LLM | 绑定 Claude 订阅 | 任意(DeepSeek/GLM/OpenAI) |
适用 | 个人自动化 | 产品化 / 多用户 / 团队 |
可控性 | 黑盒(官方行为) | 全可控(代码是你自己的) |
怎么选:个人自动化、想要完整工具链 → A;要产品化、要换模型、要自定义命令 → B[1][2]。
五、生产化与安全
Token 是密码:用环境变量注入,
echo "BOT_TOKEN=xxx" >> .env且.gitignore掉.env——绝不提交仓库、不贴公开聊天[1][3]权限:自建 bot 加
user_id白名单;官方插件在私有会话使用持久化:长任务用后台队列(Celery/Redis)或
/loop定时;bot 进程用 systemd/pm2 守护
六、总结
三个关键结论:
IM Bot 是"后台 agent"最顺滑的入口:OpenClaw 证明形状,Claude Code Channels 官方化——2026 年 9 月起,个人 agent 有了标准脚手架[1][2];
两条路各有归属:官方 Channels 零代码、能力完整;自建 Bot 全可控、任意 LLM——个人用 A,产品用 B[1][3];
AI 编程做 Bot 的本质:Claude Code 负责把"需求→代码→运行说明"一次做完,你负责设计边界(命令、权限、安全)——AI 写的是实现,你写的是产品[6]。
衔接生态:这个 bot 挂上 DeepSeek/GLM 就是个人 AI 助手,挂上 MCP 工具就是"口袋里的 OpenClaw"——从手机发出的一条消息,背后是一整个可编程的 agent 栈。
参考资料
[1] Claude Code 官方文档:Channels(telegram 插件安装/配置/环境变量,2026-08-20)
[2] dplooy(2026-09-09):Build a 24/7 Claude Code Agent With Telegram Control
[3] LowCode Agency(2026-09-03):Claude Code Channels: Complete Setup Guide (Telegram & Discord)
[6] python-telegram-bot 官方文档(Application/CommandHandler/run_polling)
补充说明:①路线 B 代码telegram_agent_demo.py已通过python3 -m py_compile与python-telegram-bot 22.8环境验证(真跑需 BOT_TOKEN);②Channels 插件与订阅的绑定关系以 Anthropic 官方最新文档为准;③本文为技术教程,token 安全为开发者自身责任。