在 Android/Termux 上部署微信 AI 助手:从零到可用的完整指南

前言

你是否想过把自己的微信变成一个 AI 助手?随时随地通过微信聊天就能调用 AI 的能力——查资料、写代码、做数据分析、定时推送信息。这篇文章记录了我在一台 Android 手机(32 位 ARM,armv7l 架构)上,通过 Termux 终端环境部署 Hermes Agent 微信网关的完整过程,包括踩过的坑和最终的解决方案。


第一步:准备 Termux 环境

安装 Termux

从 GitHub Releases 下载并安装 Termux(注意:不要从 F-Droid 安装,后续如果安装 Termux:API 等附加组件,必须保持来源一致,否则签名冲突会导致无法运行)。

修复软件源

Termux 默认的某些镜像(如 sjtu.edu.cn)可能会出现连接超时。编辑 sources.list:

nano $PREFIX/etc/apt/sources.list

将源替换为可用的镜像:

deb https://grimler.se/termux/termux-main/ stable main

然后更新:

pkg update && pkg upgrade

安装基础依赖

pkg install python python-pip git curl

如果需要与 Android 系统交互(如调用相机、传感器等),安装 Termux:API:

pkg install termux-api

同样,Termux:API 也必须从 GitHub Releases 获取,确保与 Termux 主应用签名一致。


第二步:安装 Hermes Agent

git clone https://github.com/nousresearch/hermes-agent.git
cd hermes-agent
python -m venv venv311
source venv311/bin/activate
pip install -r requirements.txt

初始化配置:

hermes setup

这会引导你完成 LLM 提供商的 API 密钥配置(支持 OpenRouter、Anthropic、OpenAI 等)。


第三步:配置微信网关

运行:

hermes gateway setup

选择 “Weixin (WeChat)”,系统会在终端显示一个二维码。用手机微信扫描该二维码,在手机上确认登录后,系统会自动保存凭证到 ~/.hermes/.env

WEIXIN_ACCOUNT_ID=<ilink_bot_id>
WEIXIN_TOKEN=<bot_token>
WEIXIN_BASE_URL=<baseurl>
WEIXIN_USER_ID=<ilink_user_id>

如果二维码不显示

在非交互式环境或终端不支持的情况下,可以通过 iLink API 直接获取二维码:

import aiohttp, asyncio

async def get_qr():
    url = "https://ilinkai.weixin.qq.com/ilink/bot/get_bot_qrcode?bot_type=3"
    headers = {"iLink-App-Id": "bot", "iLink-App-ClientVersion": str((2<<16)|(2<<8)|0)}
    async with aiohttp.ClientSession() as session:
        async with session.get(url, headers=headers) as r:
            resp = await r.json()
    print(resp["qrcode_img_content"])

asyncio.run(get_qr())

返回的是一个二维码图片 URL,可以在浏览器中打开,或者用 ASCII 在终端渲染:

pip install qrcode
import qrcode
qr = qrcode.QRCode(border=2)
qr.add_data(qr_url)
qr.make(fit=True)
qr.print_ascii(invert=True)

注意:二维码有效期约 60 秒,如果超时需重新获取。


第四步:解决 armv7l 架构上的坑(重点)

这是在 Android 手机上部署最核心的难点。

问题一:cryptography 库崩溃

启动微信网关时,遇到如下错误:

PyInterpreterState_Get: GIL error

这是因为 cryptography 库在 armv7l(32 位 ARM Android)上存在 GIL 兼容性问题。尝试从源码编译:

pip install cryptography

失败,maturin 报错:“Unsupported Android architecture: armv8l”。

尝试方案:symlink 系统 Python 库

如果系统 Python 3.13 上已经预装了 cryptography,尝试 symlink 到 venv:

SITE_PKG="$HOME/hermes-agent/venv311/lib/python3.11/site-packages"
ln -s /data/data/com.termux/files/usr/lib/python3.13/site-packages/cryptography "$SITE_PKG/cryptography"
ln -s /data/data/com.termux/files/usr/lib/python3.13/site-packages/cryptography-46.0.7.dist-info "$SITE_PKG/cryptography-46.0.7.dist-info"

但此方案也失败了——Python 3.13 和 Python 3.11 的 ABI 不兼容。

最终方案:使用 pycryptodomex

pycryptodomexcryptography 的纯 Python/可编译替代方案,支持 armv7l。

pip install pycryptodomex

在 armv7l 设备上编译需要 5-10 分钟,请耐心等待。

然后修改 gateway/platforms/weixin.py,将 from cryptography 的引用替换为 from Cryptodome

# 原来:
from cryptography.hazmat.primitives.ciphers import AES
# 改为:
from Cryptodome.Cipher import AES

问题二:缺少 aiohttp 和 qrcode

pip install aiohttp qrcode

问题三:网络超时

如果 pip 下载很慢,可以指定国内镜像(但注意某些镜像如 sjtu.edu.cn 可能不可达,需要测试):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pycryptodomex

第五步:启动网关

hermes gateway start --platform weixin

网关启动后,你的微信就接入了 AI 助手。直接给这个"微信号"发消息,AI 会实时回复。


第六步:实用场景

场景一:随时对话

在微信中直接发送自然语言问题,AI 会调用搜索、代码执行、文件操作等工具来回答。

场景二:定时信息推送

利用 cron 功能,设置每日定时推送:

# 创建 fetch_news.py
import json, urllib.request

url = "https://hacker-news.firebaseio.com/v0/topstories.json"
with urllib.request.urlopen(url, timeout=10) as r:
    ids = json.loads(r.read())

for sid in ids[:10]:
    item_url = f"https://hacker-news.firebaseio.com/v0/item/{sid}.json"
    with urllib.request.urlopen(item_url, timeout=10) as r:
        item = json.loads(r.read())
        print(f"[{item.get('score', 0)}] {item.get('title', 'N/A')}")
        print(f"  {item.get('url', 'N/A')}")
        print("---")

创建定时任务:

# 每天早上 8 点推送
hermes cron create --name "每日科技速递" --schedule "0 8 * * *" --script fetch_news.py --prompt "将以下原始数据整理成简洁的中文摘要,使用 emoji 和要点形式呈现。\n\n原始数据:\n{STDIN}" --deliver origin

场景三:代码审查

在微信中发送 GitHub 仓库链接或代码片段,AI 可以直接执行代码审查、写测试、分析性能问题。


常见问题排查

问题 解决方案
Gateway 启动报错 cryptography 换用 pycryptodomex,修改 weixin.py 中的 import
二维码不显示 用 API 直接获取二维码 URL,终端 ASCII 渲染
apt 安装软件超时 更换 sources.list 镜像源
微信无法 Web 登录 较新的微信账号可能限制了 Web 登录,考虑使用企业微信 (WeCom)
编译 pycryptodomex 超时 armv7l 编译较慢,设置更长的超时,或使用预编译 wheel

总结

在 Android 手机上部署微信 AI 助手的最大挑战不在于应用本身,而在于 armv7l 架构下的 Python 库兼容性问题。一旦跨过了 cryptography 这个坑,后续的使用体验非常流畅——微信作为日常使用最频繁的 App,天然就是最佳的 AI 交互界面。

整个部署流程可以概括为:装 Termux → 修软件源 → 装 Hermes → 配微信 → 解兼容坑 → 启动使用。希望这篇指南能帮你少走弯路。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐