AI三分钟第3弹|【全网首发】躺在被窝里用手机控制AI编程
AI三分钟第3弹|【全网首发】躺在被窝里用手机控制AI编程
什么是AI三分钟?
《AI三分钟》专栏旨在提供短小精悍的AI工具使用技巧或者知识
在这个时间碎片化、知识碎片化的时代
用最精炼的语言和最生动的故事
3分钟完成一项干货的科普

正文

相信程序猿和其他被电脑奴役的打工人们都有一个美好的愿景:
“要是我能躺床上,对着我的手机动动嘴,然后电脑就帮我把活干完了该多好”
得益于AI时代
今天这个愿望老邋遢帮你实现了
无图无真相,上图:
-
用手机指挥AI写代码

-
上面AI写代码的任务,自动生成代码到了我们的工程目录下


不光是写代码,动动嘴它还能帮你发邮件、写日报、改bug、测试…
废话至此,看看怎么实现的
拿去用
本文的Github地址
在开始之前,确认自己有没有这些前置条件,若没有自行GPT:
- 魔法软件
- Telegram账户
- cursor IDE或者claude code账户
第一步:创建 Telegram Bot
-
在 Telegram 中搜索 @BotFather
-
发送
/newbot创建新 Bot -
按提示设置 Bot 名称和用户名
-
保存 Bot Token(格式示例:
<数字>:<字符串>,请勿泄露) -
发送
/setprivacy选择你的 Bot,设置为 Disable(允许 Bot 接收所有消息)
第二步:获取你的 Telegram User ID
-
在 Telegram 中搜索 @userinfobot
-
发送任意消息,Bot 会返回你的 User ID(一串数字,请自行保存)
第三步:搭建 Bot 服务
-
创建项目目录并进入:
mkdir -p telegram-bot/bot cd telegram-bot/bot -
创建 Python 虚拟环境:
python3 -m venv venv source venv/bin/activate -
安装依赖:
pip install python-telegram-bot python-dotenv -
创建
.env文件,填入你的 Bot Token(需代理时再填USE_PROXY和PROXY_URL):cat > .env << EOF TELEGRAM_BOT_TOKEN=你的Bot_Token USE_PROXY=true PROXY_URL=http://127.0.0.1:你的代理端口 EOF -
创建
bot_config.json配置文件:mkdir -p ../config cat > ../config/bot_config.json << EOF { "allowed_user_ids": [你的User_ID], "admin_user_id": 你的User_ID, "rate_limit": { "max_messages": 5, "window_seconds": 60 }, "allowed_projects": { "my-project": "/path/to/your/project" }, "max_task_length": 1000, "command_timeout": 300 } EOF -
创建主程序
telegram-bot.py:#!/usr/bin/env python3 import os import subprocess import logging from dotenv import load_dotenv from telegram import Update from telegram.ext import Application, MessageHandler, filters, ContextTypes load_dotenv() BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") AGENT_PATH = os.getenv("AGENT_PATH", "/path/to/agent") # Cursor CLI 路径,如 $HOME/.local/bin/agent PROJECT_ROOT = os.getenv("PROJECT_ROOT", "/path/to/your/project") # 你的项目根路径 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s' ) async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): user_id = update.effective_user.id message_text = update.message.text # 检查用户权限(从配置文件读取) # 这里简化处理,实际应该从 bot_config.json 读取 # 执行 Cursor CLI await update.message.reply_text("⏳ 正在执行任务...") cmd = [AGENT_PATH, "-p", "--force", message_text] result = subprocess.run( cmd, cwd=PROJECT_ROOT, capture_output=True, text=True, timeout=300 ) if result.returncode == 0: await update.message.reply_text(f"✅ 任务完成\n\n{result.stdout}") else: await update.message.reply_text(f"❌ 任务失败\n\n{result.stderr}") def main(): app = Application.builder().token(BOT_TOKEN).build() app.add_handler(MessageHandler(filters.TEXT, handle_message)) app.run_polling() if __name__ == "__main__": main() -
启动 Bot(如需代理,将端口改为你本地的魔法端口):
export HTTP_PROXY=http://127.0.0.1:你的魔法端口 export HTTPS_PROXY=http://127.0.0.1:你的魔法端口 python3 telegram-bot.py
第四步:测试 Bot
-
在 Telegram 中找到你的 Bot
-
发送
/start或任意消息 -
Bot 应该回复"⏳ 正在执行任务…"然后返回结果
进阶功能:项目触发词和会话记忆
如果你想让 Bot 支持快速切换项目,可以添加以下功能:
-
项目触发词:发送你配置的触发词(如
项目A、后端、前端)快速切换项目 -
会话记忆:Bot 会记住你选择的项目,后续消息自动在该项目下执行
-
增量输出:长任务每 30 秒自动发送进度更新
完整实现代码可参考我的GitHub开源地址
只是寻找解决方案的朋友看到这里就足够了,后文是知识点讲解
讲清楚
Telegram Bot 的工作原理
Telegram Bot 就像一个「24小时在线的助手」,它通过 Telegram Bot API 接收你的消息,然后执行你指定的操作(比如运行 Cursor CLI),最后把结果发回给你。
整个流程可以想象成「你给助手发指令 → 助手去执行 → 助手把结果告诉你」:
-
你发送消息:在 Telegram 中给 Bot 发消息
-
Bot 接收消息:Bot 通过
getUpdatesAPI 轮询获取新消息 -
Bot 处理消息:解析你的指令,调用 Cursor CLI 执行任务
-
Bot 返回结果:把执行结果格式化后发回给你
项目触发词的设计思路
想象一下,你有很多个项目要管理,每次都要输入完整路径太麻烦。触发词就像「快捷方式」:
-
你说「后端」,Bot 就知道你要操作对应的后端项目
-
你说「前端」,Bot 就知道你要操作对应的前端项目
-
Bot 会记住你的选择,下次发消息时自动使用上次的项目
类似于下面的效果

会话记忆的过期机制
Bot 的记忆不是永久的,而是「今天有效,明天失效」。这样设计的好处是:
-
避免「昨天选了项目 A,今天忘记切换,结果在错误项目执行任务」
-
每天重新选择项目,确保操作的是你当前想操作的项目
-
过期时间设置为「第二天 0 点」,符合「一天」的直觉
增量输出的实现原理
长任务执行时,Bot 不是等任务完成才告诉你结果,而是「边执行边汇报」:
-
Bot 启动子进程执行 Cursor CLI
-
用线程实时读取进程的输出
-
每 30 秒检查一次,如果有新输出就发给你
-
如果没有新输出,就发「正在处理中」让你知道 Bot 还在工作
-
任务完成后发送最终结果
架构思维导图
记住它
流程图
核心知识点
-
Telegram Bot API:Telegram 提供的 Bot 开发接口,通过 HTTP 请求与 Bot 通信
-
Bot Token:Bot 的唯一身份标识,用于调用 Telegram Bot API
-
User ID:Telegram 用户的唯一标识,用于用户认证和权限控制
-
轮询(Polling):Bot 定期调用
getUpdatesAPI 获取新消息的方式 -
代理(Proxy):网络请求的中转服务器,用于访问被墙的服务
-
项目触发词:用简短的关键词快速切换项目,提高操作效率
-
会话记忆:Bot 记住用户选择的项目,自动应用到后续操作中
-
增量输出:实时获取任务执行过程中的输出,而不是等任务完成才返回
-
速率限制:限制用户发送消息的频率,防止滥用和服务器压力过大
-
输入验证:检查用户输入是否包含危险字符或命令,防止命令注入攻击
结语
点关注不迷路,UP带你上高速
动动您发财的小手,给老邋遢点一波免费的关注,不胜感激~
引用
版权信息
© 2026 老邋遢(笔名) 版权所有
原创内容,转载请注明出处
更多推荐
所有评论(0)