Skip to content

Android 设备通过 Termux 运行 Hermes

这是在 Android 手机上通过 Termux 直接运行 Hermes Agent 的经过测试的路径。

它能为你提供手机端可用的本地 CLI,以及目前已知可以清爽安装在 Android 上的核心扩展功能。

经过测试的路径支持哪些功能?

Section titled “经过测试的路径支持哪些功能?”

经过测试的 Termux 软件包会安装:

  • Hermes CLI
  • Cron 支持
  • PTY/后台终端支持
  • Telegram 网关支持(手动运行 / 尽力而为的后台运行)
  • MCP 支持
  • Honcho 记忆支持
  • ACP 支持

具体而言,它对应以下安装命令:

python -m pip install -e '.[termux]' -c constraints-termux.txt

由于部分功能仍需要尚未发布 Android 版本或尚未在手机端验证的桌面/服务器级依赖项,因此:

  • 目前 Android 不支持 .[all] 全量安装。
  • voice 扩展被 faster-whisper -> ctranslate2 阻断,因为 ctranslate2 不提供 Android 的 wheel 包。
  • Termux 安装程序会跳过 自动浏览器 / Playwright 引导程序
  • Termux 内部无法使用 基于 Docker 的终端隔离
  • Android 系统仍可能会挂起 Termux 后台任务,因此网关的持续运行属于 “尽力而为”,而非标准的受管服务。

这并不妨碍 Hermes 作为一个优秀的手机原生 CLI 智能体运行 —— 这仅意味着推荐的移动端安装包在设计上比桌面/服务器版更为精简。

Hermes 现在提供支持 Termux 的安装路径:

Terminal window
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

在 Termux 上,安装程序会自动:

  • 使用 pkg 管理系统软件包。
  • 使用 python -m venv 创建虚拟环境 (venv)。
  • 优先尝试安装较全的 .[termux-all] 扩展包;如果失败则回退到较小的 .[termux](最后是基础安装) —— curl 安装程序会自动遵循此顺序。
  • hermes 链接到 $PREFIX/bin,使其保留在你的 Termux PATH 中。
  • 跳过未经测试的浏览器 / WhatsApp 引导程序。

如果你需要明确的命令或需要排查安装失败的问题,请使用下方的手动路径。

Terminal window
pkg update
pkg install -y git python clang rust make pkg-config libffi openssl nodejs ripgrep ffmpeg

为什么需要这些包?

  • python —— 运行时 + venv 支持。
  • git —— 克隆/更新仓库。
  • clang, rust, make, pkg-config, libffi, openssl —— 在 Android 上构建部分 Python 依赖项所需。
  • nodejs —— 可选的 Node 运行时,用于测试路径之外的实验。
  • ripgrep —— 极速文件搜索。
  • ffmpeg —— 媒体 / TTS 转换。
Terminal window
git clone --recurse-submodules https://github.com/NousResearch/hermes-agent.git
cd hermes-agent

如果你之前克隆时未包含子模块,请运行:

git submodule update --init --recursive
Terminal window
python -m venv venv
source venv/bin/activate
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install --upgrade pip setuptools wheel

ANDROID_API_LEVEL 对于构建基于 Rust / maturin 的包(如 jiter)至关重要。

Terminal window
python -m pip install -e '.[termux]' -c constraints-termux.txt

如果你只需要最小化的核心智能体,以下命令也有效:

python -m pip install -e '.' -c constraints-termux.txt
Terminal window
ln -sf "$PWD/venv/bin/hermes" "$PREFIX/bin/hermes"

$PREFIX/bin 已在 Termux 的 PATH 中,因此这可以使 hermes 命令在新的 Shell 中持续有效,而无需每次都手动激活 venv。

Terminal window
hermes version
hermes doctor
Terminal window
hermes
Terminal window
hermes model

或者直接在 ~/.hermes/.env 中设置密钥。

稍后重新运行完整的交互式设置向导

Section titled “稍后重新运行完整的交互式设置向导”
Terminal window
hermes setup

经过测试的 Termux 路径会有意跳过 Node/浏览器引导程序。如果你稍后想尝试浏览器工具:

Terminal window
pkg install nodejs-lts
npm install

浏览器工具会自动将 Termux 目录(/data/data/com.termux/files/usr/bin)包含在其 PATH 搜索中,因此无需额外配置 PATH 即可发现 agent-browsernpx

在另有说明之前,请将 Android 上的浏览器 / WhatsApp 工具视为实验性功能。

请改用经过测试的 Termux 软件包:

python -m pip install -e '.[termux]' -c constraints-termux.txt

目前的阻碍在于 voice 扩展包:

  • voice 会拉取 faster-whisper
  • faster-whisper 依赖 ctranslate2
  • ctranslate2 未发布 Android 平台的 wheel 包

请改用包含标准库 venv + pip 的 Termux 路径:

Terminal window
python -m venv venv
source venv/bin/activate
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e '.[termux]' -c constraints-termux.txt

jiter / maturin 提示 ANDROID_API_LEVEL 相关错误

Section titled “jiter / maturin 提示 ANDROID_API_LEVEL 相关错误”

在安装前显式设置 API 级别:

Terminal window
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install -e '.[termux]' -c constraints-termux.txt

hermes doctor 显示缺失 ripgrep 或 Node

Section titled “hermes doctor 显示缺失 ripgrep 或 Node”

使用 Termux 软件包安装它们:

pkg install ripgrep nodejs

确保已安装构建工具链:

pkg install clang rust make pkg-config libffi openssl

然后重试:

python -m pip install -e '.[termux]' -c constraints-termux.txt
  • Docker 后端 不可用。
  • 在测试路径中,通过 faster-whisper 实现的 本地语音转写 不可用。
  • 安装程序有意跳过了 浏览器自动化 的设置。
  • 虽然某些可选扩展可能有效,但目前仅 .[termux].[termux-all] 被记录为经过测试的 Android 软件包。

如果你遇到了新的 Android 特定问题,请在 GitHub 上提交 Issue 并包含以下信息:

  • 你的 Android 版本
  • termux-info 的输出
  • python --version
  • hermes doctor 的输出
  • 具体的安装命令及完整的错误输出内容
-
0:000:00