xAPI 教程 2:制作推特监听 Bot
上一讲我们让 Agent 跑通了 xAPI,一句话就能调 Twitter、Google 搜索、加密货币行情。这一讲,我们就用这套能力做点真正有用的东西——一个推特监听 Bot:自动盯着 Elon Musk、何一、CZ 这些大佬的推特,一有新推文就第一时间推到你的 Telegram,整个过程不需要写一行代码。
1. 整体架构
这个监听 Bot 把三块拼起来:xAPI 读推文 + Agent 定时执行 + Telegram 推送。
整套流程分 4 步:
- 让 Agent 用 xAPI 试着读一下三位大佬的推文。
- 让 Agent 写一个监听脚本(读推文 → 去重 → 推 Telegram)。
- 在 Telegram 创建 Bot,将 Token 发给 Agent,让监控 Bot 第一时间推送到你的 Telegram。
- 用 Agent 的定时功能让脚本每 1 分钟跑一次,定时推送最新消息。
下面我们逐步拆解。
2. 用 xAPI 读推文
正式写脚本之前,先让 Agent 用 xAPI 把三位大佬的推文跑一遍,验证链路是通的。直接对 Agent 说:
Prompt:
/xapi 用 xAPI 抓 elonmusk、heyibinance、cz_binance 这三个账号最新的 3 条推文
Agent 会自动按 xAPI Skill 教的 “先 user_by_screen_name 拿数字 ID(rest_id)→ 再 user_tweets 拿推文” 模式跑一遍,并输出结果:
如果你还没有安装 xAPI Skill 或注册账号,请参考教程的 第一讲,主要有 3 步:
- 让 Agent 使用
npx skills add https://github.com/xapi-labs/xapi-cli --skill xapi安装 xapi skill。 - 让 Agent 帮忙注册一个 xAPI 账号,邀请码
xapito。 - 注册成功会返回一个链接,访问这个链接绑定推特账号,领取 $1 免费额度。
3. 让 Agent 写监听脚本
链路测试成功后,让 Agent 写推特监听脚本。你可以提供详细的约束条件,让 Agent 生成更高质量的代码:
Prompt:
/xapi 帮我写一个 Python 脚本twitter_watcher.py,做 3 件事:
- 用 xAPI 抓
elonmusk、heyibinance、cz_binance三个账号最新 20 条推文(包含转推和回复)- 用
seen.json记录每个账号已推送的"高水位 id"- 把新推文通过 Telegram Bot API 推到我聊天
关键约束:
- 状态:用 per-account
max_id高水位(字符串),不要 id 集合—— snowflake 单调递增,比集合稳,自然避开 pinned tweet 重推。新账号 (handle not in seen) 只 snapshot newest_id,不推。seen.json用tmp + os.replace原子写;每发成功一条立刻 flush。- 安全:所有 xAPI 字段(
full_text/created_at/…)经 HTML escape 才能进 message;最终 message 截到 ~3800 字符(4096 是 rendered 上限, escape 会膨胀);链接从 validated handle[A-Za-z0-9_]{1,15}+ 数字 id 自己构造,不回显tweet.url。- 健壮:xAPI 响应必须先校验
success字段(否则余额耗尽时 KeyError 让 cron 崩);subprocesstimeout=30、urlopentimeout=15;Telegram POST 用application/json(form-urlencoded 长 text 会坑),disable_web_page_preview字段是bool不是字符串;单账号失败用traceback.print_exc()+continue,不阻塞其他账号。- 工程:
ACCOUNTS = {handle: user_id}一次性写死,省每次user_by_screen_name查询;用logging带 timestamp 不要裸目标: cron 每分钟跑一次 或 --loop 进程内使用 threading.Event.wait() 调度,at-most-once,不爆群。
Agent 会生成类似下面这样的脚本:
4. 创建 Telegram Bot
4.1. 在 BotFather 获取 Token
打开 Telegram,搜索 @BotFather(注意是蓝 V 认证的官方账号),开始对话:
- 发送
/newbot。 - 给 Bot 起一个显示名,比如
xAPI Twitter Watcher。 - 给 Bot 起一个用户名,必须以
bot结尾,比如wtf_twitter_testbot。 - BotFather 会返回一串 Token,长这样(⚠️ Token 等同于密码,不要泄漏):
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ1234567890
4.2. 打通 Telegram 推送
Bot 不能凭空给陌生人发消息,必须先知道你的 Chat ID:你需要主动给你新建的 Bot 发一条消息(什么都行,例如 hi)—— Bot 必须先收到过你的消息才能反过来推你信息。
在 Telegram 搜 @wtf_twitter_testbot(你刚才给 Bot 起的用户名),给它发送 hi。
发完之后,把 Bot Token(替换你上一步拿到的真实 Token)和你已经和 Bot 对话过的信息告诉 Agent,让它帮你配置:
Prompt: 我已经申请好了 Telegram Bot,并且已经和它对话
/start了,请帮我配置并测试。 Token:123456789:ABCdefGHIjklMNOpqrSTUvwxYZ1234567890
Agent 帮你配置好 Telegram Bot 环境变量后,你的 Telegram 会收到测试信息:
5. 运行监听 Bot
现在脚本和 Telegram 通道都配置好了,你可以和 Agent 说:
Prompt: 请运行推特监听脚本,每分钟监听最新推文并推送。
Agent 就会运行推特监听机器人,让你在 Telegram 收到 Elon Musk、何一和 CZ 的最新推文了。
6. 改进方向
目前的监听 Bot 非常简单,有很大的改进空间,这里给出几个思路:
- 监听更多的 KOL:只需在脚本中增加账号配置。
- 增加监听频率:可以缩短间隔,但 xAPI 成本会同比上升。
- 将监听脚本工程化:部署到云服务器(VPS)上实现 24 小时运行。
- 扩展平台:xAPI 还提供了微博、抖音、Reddit、TikTok 等社交媒体的接口,可以实现多平台监听。
7. 总结
这一讲,我们用 xAPI + Agent + Telegram 三个组件,制作了一个实用的推特监听 Bot:每分钟监听 Elon Musk、何一和 CZ,并通过 Telegram 推送到手机。整个过程不需要你编写一行代码。
下一讲,我们将介绍如何做一个 自动发推机器人 🤖!
8. 资源
- xAPI 官网: xapi.to
- xAPI 电报开发群: https://t.me/+mapOl6ayUYw3YWNl
- WTF xAPI 教程(更新中): https://github.com/AmazingAng/WTF-xAPI