
1. 为什么 Hermes Agent 安装总卡在 Python 和依赖上Hermes Agent 是 Nous Research 做的自改进型 AI 智能体能跑 CLI 终端也能接消息网关还带技能自学习和持久化记忆。它适合想在自己机器上长期养一个 Agent、又不想被单一模型厂商锁死的人。但很多人第一次装它卡住的地方往往不是 Agent 本身而是 Python 版本、uv 包管理器、虚拟环境这三件套。我见过最多的报错是Python 3.11 not found和No module named hermes。前者是因为系统自带 Python 太老后者是因为虚拟环境没激活或者 PATH 没配好。Hermes Agent 硬性要求 Python 3.11而 uv 恰好能无 sudo 帮你把 Python 3.11 拉下来这就是为什么官方安装脚本把 uv 放在很靠前的位置。另一个容易被忽略的点是模型通道。Hermes Agent 支持 Nous Portal、OpenRouter、z.ai/GLM、Kimi、MiniMax、OpenAI 等多种 LLM但如果你每个模型都单独配一套 Key管理起来会很乱。TaoToken 的统一 Key 通道可以让你用一个 Key 走多个模型配置上只需要改 Base URL 和 Model ID。这篇就把从零安装到用 TaoToken 打通模型通道的完整链路走一遍每一步都给可复制的命令和配置片段。安装前先确认你的环境Linux、macOS、WSL2 都完全支持Windows 原生不支持需要先装 WSL2。内存建议 2GB 以上如果要跑浏览器自动化资源要再宽裕一些。Git 任意版本即可Node.js v22 LTS 是可选的只有用浏览器工具时才需要。ripgrep 和 ffmpeg 也是可选前者加速文件搜索后者用于 TTS 语音消息。2. 用 uv 准备 Python 环境与 Hermes Agent 安装前置uv 是 Astral 做的 Python 包管理器速度比 pip 快 10 到 100 倍而且能自己管理 Python 版本不需要 sudo。Hermes Agent 的安装脚本会优先检测 uv找不到就自动装。但如果你想手动控制每一步可以自己先装 uv。在 Linux 或 macOS 上执行curl -LsSf https://astral.sh/uv/install.sh | sh装完后 uv 通常在~/.local/bin/uv或~/.cargo/bin/uv。如果uv --version提示找不到命令把对应目录加到 PATHexport PATH$HOME/.local/bin:$PATH echo export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrc接下来用 uv 装 Python 3.11。这一步不需要 sudouv 会把 Python 下载到自己的目录里uv python install 3.11 uv python find 3.11第二条命令会输出 Python 3.11 的实际路径记下来后面创建虚拟环境时要用。如果你系统里已经有 3.11uv python find也能找到它。然后是克隆仓库。Hermes Agent 的源码在 GitHub 上支持 SSH 和 HTTPS 两种方式。没有配 SSH key 的话直接用 HTTPSgit clone https://github.com/NousResearch/hermes-agent.git ~/.hermes/hermes-agent cd ~/.hermes/hermes-agent如果你之前已经装过目录已存在安装脚本会自动 stash 本地修改再 pull。手动更新的话cd ~/.hermes/hermes-agent git stash push --include-untracked -m hermes-update-autostash git pull --ff-only origin main创建虚拟环境。桌面和服务器环境用 uv venvTermux 因为 Android 兼容性限制要用标准 venvuv venv venv --python 3.11这会在当前目录生成venv/文件夹。注意不需要source venv/bin/activateuv 支持直接通过VIRTUAL_ENV环境变量操作export VIRTUAL_ENV$PWD/venv uv pip install -e .[all].[all]会安装全部可选依赖组包括消息平台、定时任务、本地语音识别、MCP 协议客户端等。如果你只要核心功能可以只装-e .。依赖里包含 openai、anthropic、python-dotenv、fire、httpx、rich、prompt_toolkit、pyyaml、pydantic以及 exa-py、firecrawl-py、edge-tts 这些工具相关包。装完后把 hermes 命令链接到~/.local/binmkdir -p $HOME/.local/bin ln -sf $PWD/venv/bin/hermes $HOME/.local/bin/hermes到这里Python 环境和 Hermes Agent 本体就准备好了。接下来是配置文件和 TaoToken 通道接入。3. 配置 TaoToken 统一 Key 通道与 CLI 初始化Hermes Agent 的配置文件在~/.hermes/目录下主配置是config.yamlAPI 密钥放在.env。安装脚本会从模板复制一份如果没有自动生成手动创建mkdir -p ~/.hermes/{cron,sessions,logs,pairing,hooks,image_cache,audio_cache,memories,skills} touch ~/.hermes/config.yaml ~/.hermes/.env先配.env。TaoToken 的统一 Key 通道只需要一个 KeyBase URL 指向https://taotoken.net/api。在.env里写入# ~/.hermes/.env OPENAI_API_KEY你的TaoTokenKey OPENAI_BASE_URLhttps://taotoken.net/api注意这里用的是 OpenAI 兼容协议Hermes Agent 的 openai 客户端会读取这两个变量。如果你同时想保留其他提供商的 Key可以都写进去Hermes Agent 会根据config.yaml里的模型配置选择对应的环境变量。然后是config.yaml。Hermes Agent 的模型配置支持指定 provider、model 和 base_url。用 TaoToken 通道时provider 填 openaimodel 填你要用的模型 IDbase_url 指向 TaoToken 的 API 地址# ~/.hermes/config.yaml model: provider: openai name: gpt-4o-mini base_url: https://taotoken.net/api api_key_env: OPENAI_API_KEY tools: enabled: - shell - file - search display: theme: dark show_tokens: true这里的name字段就是 Model ID你可以换成 TaoToken 支持的任意模型。api_key_env告诉 Hermes Agent 从哪个环境变量读 Key这样 Key 不会出现在配置文件里更安全。如果你要用 Claude 系列模型provider 可以填 anthropic但 Base URL 仍然走 TaoToken 的兼容通道。Hermes Agent 的 anthropic 客户端也支持自定义 base_urlmodel: provider: anthropic name: claude-3-5-sonnet-20241022 base_url: https://taotoken.net/api api_key_env: OPENAI_API_KEY配置写完后运行一次设置向导确认hermes setup向导会检查 Python 版本、依赖完整性、配置文件格式和 API 连通性。如果它提示模型连接失败先别急下一节我们用命令行单独验证。CLI 初始化还有一个关键动作是配置 PATH。安装脚本会往~/.bashrc和~/.zshrc里追加export PATH$HOME/.local/bin:$PATH但如果你用的是 fish 或其他 shell需要手动加。验证which hermes hermes --version两条命令都有输出说明 CLI 入口没问题。4. 验证请求与最小任务运行配置写好了不代表通道通了得实际发一次请求。Hermes Agent 提供了hermes doctor做诊断它会检查环境变量、配置文件、Python 依赖和模型连通性hermes doctor输出里会逐项列出检查结果。如果看到Model connectivity: OK说明 TaoToken 通道已经通了。如果显示Model connectivity: FAILED往下看报错信息通常是 Key 写错或者 Base URL 多了斜杠。更直接的验证方式是用 curl 打一次 TaoToken 的 APIcurl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $OPENAI_API_KEY \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: reply with ok}], max_tokens: 10 }返回 JSON 里有choices字段且内容正常说明 Key 和通道都没问题。如果返回 401检查 Key 是否复制完整如果返回 404检查 Base URL 是不是写成了https://taotoken.net/api/v1而代码里又拼了一次/v1。通道验证通过后跑一个最小任务。启动交互式 CLIhermes在提示符里输入一个简单指令比如让它列一下当前目录的文件列出当前目录下的文件按大小排序Hermes Agent 会调用 shell 工具执行ls然后把结果整理给你。如果它成功返回了文件列表说明从安装到模型通道到工具调用整条链路都通了。也可以直接用非交互模式跑一次性任务hermes run 用一句话解释什么是 AI Agent这条命令会直接输出模型回复适合写进脚本做冒烟测试。如果输出正常你的 Hermes Agent 就已经可用了。再验证一下模型切换。改config.yaml里的name字段为另一个模型 ID重新跑hermes run确认 TaoToken 通道能路由到不同模型。这样你就有了一个统一 Key 走多模型的 Agent 环境。5. 安装与接入常见报错排查报错一Python 3.11 not found这是最常见的。系统自带 Python 可能是 3.8 或 3.10Hermes Agent 硬性要求 3.11。解决uv python install 3.11 uv python find 3.11然后用找到的路径重建虚拟环境rm -rf venv uv venv venv --python 3.11 export VIRTUAL_ENV$PWD/venv uv pip install -e .[all]报错二hermes: command not found~/.local/bin不在 PATH 里。检查echo $PATH | grep -o $HOME/.local/bin没有输出就手动加export PATH$HOME/.local/bin:$PATH echo export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrc报错三401 Unauthorized或invalid api keyKey 没读到或者写错了。先确认环境变量echo $OPENAI_API_KEY如果为空说明.env没被加载。Hermes Agent 用 python-dotenv 读.env但要求文件在~/.hermes/下。检查路径和文件名注意是.env不是.env.txt。另外确认config.yaml里的api_key_env写的是OPENAI_API_KEY和.env里的变量名一致。报错四local proxy failed或连接超时Base URL 写错了。TaoToken 的 API 地址是https://taotoken.net/api不要写成https://taotoken.net/api/v1因为 openai 客户端会自动拼/v1/chat/completions。如果你在config.yaml里写了/v1最终请求会变成/api/v1/v1/chat/completions直接 404。报错五reading choices: unexpected end of JSON input这种通常是响应体为空或者被截断。先确认 curl 能拿到完整 JSON再检查是不是网络中间层改了响应。如果 curl 正常但 Hermes Agent 报这个错检查config.yaml里有没有多余的stream: true配置某些兼容通道对流式支持不完整关掉流式再试。报错六OAuth相关错误如果你之前配过其他提供商的 OAuth环境变量可能冲突。检查.env里有没有残留的ANTHROPIC_API_KEY或OPENAI_ORG_ID清掉不需要的。Hermes Agent 会按 provider 优先级读环境变量残留变量可能导致它走了错误的鉴权路径。报错七Playwright 依赖缺失只有用浏览器工具时才会遇到。Ubuntu/Debian 上sudo apt install libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2 npx playwright install chromiumArch 和 Fedora 的包名不同按官方文档对应安装即可。如果不用浏览器工具这步可以跳过。6. 把统一 Key 通道用起来装好之后日常用 Hermes Agent 最频繁的动作就是切模型和跑任务。TaoToken 统一 Key 通道的好处是你不需要为每个模型单独申请 Key、单独配环境变量。改config.yaml里的name字段就能切换Key 始终是同一个。如果你要长期跑编码类任务或者 Agent 工作流可以看看 Coding Plan它针对高频调用做了优化。想先试试模型对话效果可以直接在模型对话页面验证通道。需要管理多个 Key 或者查看用量去 API Keys 页面。接入文档里有更完整的参数说明和示例。我自己的习惯是装完 Hermes Agent 后先跑hermes doctor再跑一次hermes run做冒烟测试两个都过了才把它放进日常工具链。这样即使后面换模型或者换通道也能快速定位是配置问题还是通道问题。