仅限 Android。果党可以撤了。
为什么要在手机上养马?搞个迷你主机不行吗?当然更推荐树莓派或迷你主机方案。但我是因为要出差好几天,安全起见家中要关闭电器。带上树莓派又占地方,所以带了一个旧手机。
这个可以认为是差旅人士友好方案。
Android 手机部署 Hermes Agent 完整教程(V2 优化版)
目录
- 前言与概述
- 方案对比与选择
- 环境准备
- Termux 基础配置
- Hermes Agent 部署(官方推荐方式)
- 配置与启动
- 后台运行与保活方案
- 远程访问配置
- 局限性与注意事项
- 进阶配置
- 故障排除
- 附录
1. 前言与概述
1.1 什么是 Hermes Agent
Hermes Agent 是一个功能强大的 AI 助手框架,支持多种模型和工具集成,可以在各种平台上运行。本教程将指导你如何在 Android 手机上完整部署 Hermes Agent,让你的手机变成随身携带的 AI 助手。
1.2 为什么选择 Android 部署
- 便携性 :随时随地使用 AI 助手
- 隐私性 :数据完全本地处理
- 成本低 :利用现有设备,无需额外硬件
- 可玩性 :深度定制,打造专属 AI 工作流
1.3 适用设备要求
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| Android 版本 | Android 10+ | Android 12+ |
| 存储空间 | 500MB 可用空间 | 2GB+ 可用空间 |
| 内存 (RAM) | 4GB | 8GB+ |
| 处理器 | ARM64 | 中高端 SoC |
| 网络 | WiFi/4G/5G | 稳定网络连接 |
2. 方案对比与选择
2.1 Android 运行 Python 的方案对比
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Termux | 完整 Linux 环境、包管理丰富、社区活跃 | 需要一定 Linux 基础 | ⭐ 推荐方案 |
| Pydroid 3 | 图形界面友好、自带 IDE、易于上手 | 功能受限、后台运行困难 | 初学者入门 |
| QPython | 轻量级、中文支持好 | 更新慢、兼容性差 | 简单脚本运行 |
| UserLAnd | 完整 Linux 发行版、支持图形界面 | 资源占用高、配置复杂 | 需要图形界面的场景 |
2.2 推荐方案:Termux
选择 Termux 的理由:
- 原生 Linux 环境 :基于 Android 的 Linux 内核,提供完整的终端体验
- 丰富的软件包 :内置 apt 包管理器,超过 1000+ 软件包可用
- Python 支持完善 :支持 Python 3.8+,pip 可用
- 后台运行能力 :支持通过 wakelock 保持后台运行
- SSH 远程访问 :支持 OpenSSH,可远程管理
- 社区生态丰富 :Termux:API、Termux:Widget、Termux等扩展
- 官方适配 :Hermes Agent 官方已针对 Termux 环境做了专属适配
3. 环境准备
3.0 科学上网
这个我就不细讲了。
3.1 下载安装 Termux
⚠️ 严禁从 Google Play 安装 (版本停更,依赖存在大量兼容性问题)
官方下载渠道(二选一):
- GitHub 最新版 (推荐)
- 访问:https://github.com/termux/termux-app/releases
- 下载 arm64 架构的 APK 安装包
安装注意:
- 需开启「设置 → 安全 → 安装未知来源应用」权限
- 安装后打开 Termux
这里最好顺手把 Termux 和 Termux API 这两个包一起装上。后面还有用。
3.2 必要的前置设置
步骤 1:关闭电池优化(重要!)
设置 → 应用 → Termux → 电池 → 无限制
这一步确保 Termux 不会在后台被系统杀死。
步骤 2:授予存储权限
# 在 Termux 中执行
termux-setup-storage
这将创建 ~/storage 目录,链接到手机的内部存储。
4. Termux 基础配置
4.1 首次启动配置
打开 Termux 后,执行以下命令更新软件包:
# 更新软件包列表并升级
pkg update && pkg upgrade -y
# 安装必要工具
pkg install -y git curl wget vim nano
4.2 更换国内镜像源(推荐)
一键切换清华镜像源:
sed -i 's@^deb.*stable main$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list
apt update && apt upgrade -y
或可视化换源:
termux-change-repo
选择:
- Mirror group: 选择
Mirrors in China - 具体镜像:推荐选择
Tsinghua或USTC
4.3 安装基础依赖
# 安装完整系统依赖(Hermes Agent 所需)
pkg install -y git python clang rust make pkg-config libffi openssl nodejs ripgrep ffmpeg
5. Hermes Agent 部署(官方推荐方式)
Hermes Agent 官方已针对 Termux 环境做了专属适配,提供一键安装脚本。
5.1 一键安装(新手首选,强烈推荐)
直接在 Termux 终端执行以下命令:
# 官方脚本(需科学上网)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 国内镜像(推荐,国内用户)
curl -fsSL https://res1.hermesagent.org.cn/install.sh | bash
安装过程说明:
脚本全程无需人工干预,自动执行以下操作:
- ✅ 用 pkg 包管理器安装 python、clang、rust 等系统构建依赖
- ✅ 创建隔离的 Python 虚拟环境,避免污染系统环境
- ✅ 自动导出安卓 API 级别,适配移动端依赖构建
- ✅ 安装经过验证的 Termux 专属
.[termux]组件包 - ✅ 将
hermes命令链接到系统 PATH,实现全局调用 - ✅ 自动跳过安卓端未适配的浏览器/语音相关流程
安装耗时: 约 2-5 分钟,取决于网络速度与设备性能
5.2 手动安装(进阶用户 / 调试排错用)
若一键安装出现报错,可按以下步骤逐行执行手动安装:
步骤 1:确保基础依赖已安装
pkg install -y git python clang rust make pkg-config libffi openssl nodejs ripgrep ffmpeg
步骤 2:克隆 Hermes Agent 仓库(含子模块)
# 创建工作目录
mkdir -p ~/projects
cd ~/projects
# 克隆仓库
git clone --recurse-submodules https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
# 若已克隆但未拉取子模块,执行补全
git submodule update --init --recursive
步骤 3:创建并激活虚拟环境
python -m venv venv
source venv/bin/activate
# 配置安卓专属环境变量
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
# 升级 pip
python -m pip install --upgrade pip setuptools wheel
步骤 4:安装 Termux 专属适配依赖
# 完整适配版(推荐)
python -m pip install -e '.[termux]' -c constraints-termux.txt
# 仅核心最小版(无额外功能)
# python -m pip install -e '.' -c constraints-termux.txt
步骤 5:链接 hermes 命令到系统 PATH
ln -sf "$PWD/venv/bin/hermes" "$PREFIX/bin/hermes"
6. 配置与启动
6.1 验证安装是否成功
执行以下两条命令,无报错即代表安装成功:
# 查看版本号
hermes version
# 运行系统诊断,检查所有依赖与配置是否正常
hermes doctor
若 hermes doctor 所有检查项均为绿色通过,即可进入下一步配置。
6.2 核心配置:LLM 模型与 API 密钥
Hermes Agent 本身不运行大模型,需配置大模型 API 密钥(要求模型至少支持 64K tokens 上下文)。
交互式配置(推荐):
# 交互式模型配置
hermes model
# 或完整配置向导(模型、工具、网关等)
hermes setup
手动配置方式:
# 编辑环境变量文件
nano ~/.hermes/.env
# 填入 API 密钥,示例(以 OpenRouter 为例):
OPENROUTER_API_KEY=sk-or-v1-你的密钥
编辑完成后,按 Ctrl+O 保存,Ctrl+X 退出编辑器。
6.3 启动 Hermes Agent
配置完成后,在终端执行以下命令,即可启动 Hermes 对话界面:
hermes
7. 后台运行与保活方案
7.1 核心原理
Android 系统(特别是国产 ROM)会 激进地杀死后台进程以节省电量。要让 Hermes Agent 持续运行,需要同时解决三个层面:
- 应用不被系统杀死 → 前台服务 (Foreground Service)
- CPU 不休眠 → 唤醒锁 (Wake Lock)
- 系统级进程查杀 → ADB设置 + 系统配置
7.2 一键开启前台服务(无需找界面)
如果找不到「RUN IN FOREGROUND」选项,使用命令行方案(100% 生效):
# 前置准备:安装必要工具
pkg install termux-am -y
# 一键开启前台服务 + CPU 唤醒锁
# 执行后,通知栏会立刻出现 Termux 常驻通知
termux-wake-lock
am startservice --user 0 -n com.termux/com.termux.app.TermuxService -a com.termux.service_action.ACQUIRE_WAKE_LOCK
# 固化自启:加入启动脚本
echo "termux-wake-lock" >> ~/.bashrc
echo "am startservice --user 0 -n com.termux/com.termux.app.TermuxService -a com.termux.service_action.ACQUIRE_WAKE_LOCK > /dev/null 2>&1" >> ~/.bashrc
7.3 验证前台服务是否生效
# 直观验证:下拉手机通知栏,能看到 Termux 的常驻通知
# 命令行验证:
termux-wake-lock
# 若提示 "Wake lock already held",说明唤醒锁和前台服务已成功持有
7.4 关闭前台服务
# 释放唤醒锁
termux-wake-unlock
# 停止前台服务
am stopservice --user 0 -n com.termux/com.termux.app.TermuxService
7.5 国产 ROM 专属系统设置
这里注意以下:如果是 OLED 屏幕,还是要定时熄屏的,否则可能会烧屏。
荣耀 Magic UI / 华为 EMUI:
- 通知权限全开
- 设置 → 应用 → 应用管理 → Termux
- 通知管理 → 开启「允许通知」总开关
- 所有子项(常驻通知、后台通知、基础通知)全部打开
- 通知重要程度设为「紧急/优先」
- 后台锁定
- 调出多任务界面 → 下拉 Termux 卡片
- 点击小锁图标锁定(一键清理不会关闭)
- 启动权限全开
- 设置 → 应用 → Termux → 启动管理
- 关闭「自动管理」
- 手动开启「允许自启动、允许关联启动、允许后台活动」
- 电池优化彻底关闭
- 设置 → 应用 → Termux → 电池
- 选择「不优化」
- 关闭「异常耗电自动清理」
- 网络永久连接
- 设置 → 电池 → 更多电池设置
- 开启「休眠时始终保持网络连接」
- WLAN 高级设置 → 「休眠状态下保持 WLAN 连接」设为「始终」
小米 MIUI:
- 设置 → 应用设置 → 应用管理 → Termux
- 省电策略 → 无限制
- 自启动 → 允许
- 权限管理 → 后台弹出界面 → 允许
OPPO ColorOS / vivo OriginOS:
- 设置 → 电池 → 应用耗电管理 → Termux
- 允许完全后台行为 + 允许自启动
7.6 ADB 命令彻底解决熄屏中断(无需 Root)
针对 Android 12+ 系统的「幻影进程查杀」机制,执行以下 ADB 命令:
# 在电脑上执行(手机需开启 USB 调试)
adb shell settings put global settings_enable_phantom_process_killer false
adb shell device_config put activity_manager max_phantom_processes 2147483647
执行后重启手机生效。配合前台服务 + 唤醒锁,可实现熄屏后进程持续运行。
7.7 使用 screen/tmux 会话管理
安装 screen:
pkg install -y screen
使用 screen:
# 创建新会话
screen -S hermes
# 在会话中运行
hermes
# 按 Ctrl+A 然后按 D 分离会话
# 重新连接会话
screen -r hermes
安装 tmux(更现代):
pkg install -y tmux
# 创建新会话
tmux new -s hermes
# 运行程序
hermes
# 按 Ctrl+B 然后按 D 分离
# 重新连接
tmux attach -t hermes
7.8 进程监控脚本
# 创建监控脚本
cat > ~/monitor_hermes.sh << 'EOF'
#!/bin/bash
# Hermes Agent 进程监控脚本
PROCESS_NAME="hermes"
LOG_FILE="~/hermes_monitor.log"
while true; do
if ! pgrep -f "$PROCESS_NAME" > /dev/null; then
echo "[$(date)] Hermes not running, restarting..." >> "$LOG_FILE"
hermes >> ~/hermes.log 2>&1 &
fi
# 每 60 秒检查一次
sleep 60
done
EOF
chmod +x ~/monitor_hermes.sh
8. 远程访问配置
8.1 配置 SSH 服务器
# 安装 OpenSSH
pkg install -y openssh
# 设置密码(用于 SSH 登录)
passwd
# 启动 SSH 服务
sshd
# 查看 IP 地址
ifconfig
# 获取监听端口(默认 8022)
netstat -tlnp | grep sshd
8.2 从电脑远程连接
# 从电脑连接(替换为手机 IP)
ssh -p 8022 u0_a123@192.168.1.100
# 其中 u0_a123 是 Termux 用户名,可以在手机执行 whoami 查看
8.3 配置 SSH 密钥(更安全)
# 在手机上生成密钥
ssh-keygen -t ed25519 -C "termux@android"
# 在电脑上执行,将公钥复制到手机
ssh-copy-id -p 8022 u0_a123@192.168.1.100
9. 局限性与注意事项
9.1 功能限制
| 功能 | 支持状态 | 说明 |
|---|---|---|
| Hermes CLI 核心对话 | ✅ 支持 | 完整功能可用 |
| cron 定时任务 | ✅ 支持 | 可正常使用 |
| 终端后台运行 | ✅ 支持 | 需配置保活 |
| MCP 模型上下文协议 | ✅ 支持 | 可正常使用 |
| Honcho AI 记忆功能 | ✅ 支持 | 可正常使用 |
| ACP 编辑器集成 | ✅ 支持 | 可正常使用 |
| .[all] 全量依赖包 | ❌ 不支持 | 部分依赖 Android 不兼容 |
| 本地语音输入/输出 | ❌ 不支持 | faster-whisper 无法在 Android 运行 |
| 浏览器自动化/Playwright | ❌ 不支持 | 无 Chrome/Chromium 支持 |
| Docker 容器隔离 | ❌ 不支持 | Termux 无 Docker 支持 |
| WhatsApp 桥接 | ❌ 不支持 | 需原生 Android 服务 |
9.2 性能限制
| 限制项 | 具体说明 | 影响 |
|---|---|---|
| CPU 性能 | 手机 SoC 持续性能约为桌面 CPU 的 20-40% | 大模型推理慢,响应延迟高 |
| 内存限制 | 一般手机 8-12GB,Termux 可用约 2-4GB | 无法加载大参数模型 |
| 存储速度 | UFS 3.1 持续读写约 1000MB/s | 模型加载较慢 |
| 散热限制 | 持续高负载会触发降频 | 长时间运行性能下降 |
| 电池消耗 | 持续运行每小时约 10-20% 电量 | 需要经常充电 |
9.3 系统限制
| 限制项 | 具体说明 | 解决方案 |
|---|---|---|
| 后台杀死 | Android 系统会杀死后台进程 | 前台服务 + 唤醒锁 + 系统设置 |
| Doze 模式 | 熄屏后网络受限 | 关闭电池优化 + 保持网络连接 |
| 内存回收 | 低内存时优先杀后台 | 锁定任务 + 关闭其他应用 |
| 权限限制 | 无法访问某些系统功能 | 使用 Termux:API 扩展 |
9.4 Python 生态限制
| 限制项 | 具体说明 | 解决方案 |
|---|---|---|
| 缺少 wheel | 很多包没有 Android 预编译包 | 从源码编译,耗时较长 |
| C 扩展编译 | 需要 clang/make 等工具链 | 安装 build-essential |
| Rust 依赖 | 部分包需要 Rust 编译器 | 安装 rust 包 |
| GLIBC 差异 | Android Bionic 与 Linux glibc 不同 | 使用 proot 运行完整 Linux |
10. 进阶配置
10.1 后续更新
cd ~/projects/hermes-agent
git pull
git submodule update --init --recursive
source venv/bin/activate
python -m pip install -e '.[termux]' -c constraints-termux.txt
10.2 配置消息网关
# 配置微信、Telegram 等平台接入
hermes gateway setup
10.3 工具配置
# 启用/禁用对应工具能力
hermes tools
10.4 使用 Proot 运行完整 Linux
如果需要更完整的环境:
# 安装 proot-distro
pkg install -y proot-distro
# 安装 Ubuntu
proot-distro install ubuntu
# 登录 Ubuntu
proot-distro login ubuntu
# 在 Ubuntu 中安装 Python 和 Hermes
apt update
apt install -y python3 python3-pip git
# ... 继续部署
10.5 与 Tasker 集成
安装 Termux:Tasker 插件后,可以在 Tasker 中调用:
Tasker 操作 → 插件 → Termux
→ 配置: /data/data/com.termux/files/usr/bin/bash
→ 参数: hermes
10.6 创建快捷方式
使用 Termux:Widget 创建桌面小部件:
# 创建快捷方式脚本
mkdir -p ~/.shortcuts
cat > ~/.shortcuts/Hermes << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
hermes
EOF
chmod +x ~/.shortcuts/Hermes
然后在桌面添加 Termux Widget,选择 Hermes 快捷方式。
11. 故障排除
11.1 一键安装脚本链接超时 / 无法访问
解决方案:
- 切换国内镜像脚本
- 或确认手机科学上网环境正常,重新执行命令
11.2 安装 Python 包时构建失败 / 报错
解决方案:
# 确保构建工具链完整
pkg install clang rust make pkg-config libffi openssl -y
11.3 jiter / maturin 包报错 ANDROID_API_LEVEL
解决方案:
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install -e '.[termux]' -c constraints-termux.txt
11.4 hermes: command not found
解决方案:
# 重新执行软链接命令
ln -sf "$PWD/venv/bin/hermes" "$PREFIX/bin/hermes"
# 手动安装用户需确保已激活虚拟环境
source venv/bin/activate
11.5 hermes doctor 提示 ripgrep/nodejs 缺失
解决方案:
pkg install ripgrep nodejs -y
11.6 找不到「RUN IN FOREGROUND」选项
核心原因:
- 通知权限未开启 (80% 用户的问题)
- 安卓系统硬性要求:申请前台服务的应用必须开启通知权限
- 否则选项会直接隐藏,完全不显示
- Termux 版本不匹配
- 「RUN IN FOREGROUND」仅在 F-Droid 分发的官方 Termux 0.117+ 提供
- 华为/荣耀应用商店、第三方平台的旧版/修改版均无此功能
- 全面屏手势拦截 (荣耀/华为)
- 侧边返回手势会拦截 Termux 侧边栏调出
- 解决:设置 → 系统和更新 → 系统导航方式 → 切换为「屏幕内三键导航」
解决方案: 使用第 7.2 节的一键命令行方案,无需找界面
12. 附录
12.1 常用命令速查
# Termux 基础
pkg update # 更新软件包列表
pkg upgrade # 升级软件包
pkg install <package> # 安装软件包
pkg uninstall <package> # 卸载软件包
pkg search <keyword> # 搜索软件包
# Hermes 命令
hermes # 启动 Hermes Agent
hermes version # 查看版本
hermes doctor # 系统诊断
hermes model # 模型配置
hermes setup # 完整配置向导
hermes gateway setup # 消息网关配置
hermes tools # 工具配置
# Python 虚拟环境
python -m venv venv # 创建虚拟环境
source venv/bin/activate # 激活虚拟环境
deactivate # 退出虚拟环境
# 进程管理
ps aux # 查看所有进程
kill <pid> # 结束进程
pkill <name> # 按名称结束进程
# 文件操作
ls -la # 列出文件
cd <dir> # 切换目录
mkdir <dir> # 创建目录
rm -rf <dir> # 删除目录(谨慎!)
