
1. 为什么要在 Linux 上折腾 Hermes Agent 自进化 AI 助手Hermes Agent 是 Nous Research 开源的一套自进化 AI Agent 框架简单说它不只是一个聊天窗口而是能自己总结使用习惯、把重复操作沉淀成 Skill 的助手。你让它查资料、跑命令、改文件它做完之后会把过程记下来下次遇到类似任务直接调用已有技能。对经常在 Linux 服务器上做运维、写脚本、整理文档的人来说这种越用越顺手的特性比单纯的对话模型实用得多。我这次部署的目标很明确在一台 Ubuntu 服务器上用非 root 用户跑起 Hermes Agent模型侧用 Ollama 本地部署同时保留一条统一的 API 通道方便后续切换到云端模型或做多模型对比。这样既能保证数据不出本机又不会把自己锁死在单一模型上。适合跟做的读者有基本 Linux 命令行经验能 SSH 登录服务器知道sudo和用户目录的区别但没接触过 Agent 框架。整个过程我会把每一步的命令、配置、预期输出都写清楚遇到报错也有对照表。需要提前说明的是Hermes Agent 的安装脚本会往用户目录写文件默认路径是/home/你的用户名/.hermes/不会污染系统目录也不会影响同服务器上的其他用户。这一点对多人共用的服务器很关键。模型服务这块我一开始试过用 LLaMA-Factory 配合 HuggingFace 后端启动结果在流式处理带tools参数的请求时频繁冲突报错一堆。后来换成 Ollama问题基本消失。所以下面的流程以 Ollama 为主TaoToken 作为统一 Key/API 通道的补充方案两者可以并存。2. 环境依赖清单与 TaoToken 统一通道准备先把环境底子打好不然后面装到一半缺库会很烦。Ubuntu 20.04 及以上都行我用的是 22.04。确认几件事当前用户不是 root有sudo权限只在装系统库时用磁盘至少留 20GB 给模型文件。基础依赖一条命令装完sudo apt update sudo apt install -y curl git python3 python3-pip python3-venv build-essential libasound2libasound2这个包单独拎出来说因为后面 Hermes 调用浏览器工具时会依赖libasound.so.2缺了它浏览器自动化会直接失败。我踩过这个坑日志里报error while loading shared libraries: libasound.so.2装上就好。Python 版本建议 3.10 以上Hermes 的安装脚本会自己管理虚拟环境但系统 Python 太老会卡住。用python3 --version确认一下。接下来是模型通道。Ollama 负责本地模型TaoToken 负责统一 Key 和 API 入口。TaoToken 的价值在于你不需要为每个模型供应商单独记一套 Key 和 Base URL它提供一个兼容 OpenAI 协议的端点模型 ID 换一下就能切换后端。对于 Agent 这种需要频繁试不同模型的场景省事很多。先去控制台拿 Key地址是 https://taotoken.net/api-keys 登录后创建一个新 Key复制保存。注意 Key 只在创建时完整显示一次。拿到 Key 之后记下两个地址用途地址API 端点https://taotoken.net/api控制台https://taotoken.net/console接入文档https://taotoken.net/doc如果你打算长期跑编码类 Agent 任务可以了解下 Coding Plan地址是 https://taotoken.net/coding-plan 它针对高频调用做了额度优化。模型对话调试入口在 https://taotoken.net/chat 用来快速验证 Key 是否可用。环境变量先写进~/.bashrc避免每次开终端重设echo export TAOTOKEN_API_KEY你的Key ~/.bashrc echo export TAOTOKEN_BASE_URLhttps://taotoken.net/api ~/.bashrc source ~/.bashrc验证一下变量生效echo $TAOTOKEN_BASE_URL输出应该是https://taotoken.net/api。这一步看着简单但后面 Hermes 配置里会引用这些值写错了排查起来很绕。3. 安装 Hermes Agent 与可复制配置文件安装走官方脚本用户级安装不需要 root。先设国内镜像源加速依赖下载export UV_INDEX_URLhttps://mirrors.aliyun.com/pypi/simple/然后执行安装curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash如果官方源下载慢换 GitHub 加速地址curl -fsSL https://ghproxy.net/https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash安装过程中会弹两个可选包ripgrep文件搜索加速和ffmpeg语音转文字。这两个不影响核心功能需要sudo权限。我当时的做法是先选n跳过避免中途要输密码打断流程后面真需要再单独装。装完首次启动会进配置向导三个模式Quick Setup用 Hermes 订阅OAuth 登录不用自己配 KeyFull setup手动配每个供应商、工具和选项Blank Slate空白模式核心功能默认关闭我选 Full setup因为要用本地模型加自定义端点。供应商列表里选Custom endpoint (enter URL manually)然后填API base URL: http://127.0.0.1:11434/v1 API key: 留空本地服务不校验 API mode: 2. Chat CompletionsAPI 兼容模式选 2 号 Chat Completions因为 Ollama 和大多数 OpenAI 兼容服务都用/chat/completions。选 1 号 Auto-detect 有时会误判成 Responses 模式导致工具调用异常。模型名填你在 Ollama 里拉取的模型比如qwen2.5:7b。上下文长度留空自动检测显示名用默认即可。运行模式选Local - run directly on this machine。消息网关那一堆Telegram、微信、飞书等先全部 CtrlC 跳过后续需要再接。工具集按需勾选建议保留 Web Search、Terminal、File Operations、Code Execution、Memory、Skills 这几项视频生成、X 搜索这类用不到的先关掉减少干扰。搜索提供商第一次直接选Skip后面再配 Brave 免费版。配置完成后Hermes 会把设置写到~/.hermes/config.json。如果你想直接手改配置可以参考这个结构路径和字段名以你实际安装版本为准{ model: { provider: custom, base_url: http://127.0.0.1:11434/v1, api_key: , api_mode: chat_completions, model_name: qwen2.5:7b, display_name: Local Qwen }, runtime: { mode: local }, tools: { web_search: true, terminal: true, file_operations: true, code_execution: true, memory: true, skills: true } }如果你想把模型通道切到 TaoToken把base_url改成https://taotoken.net/apiapi_key填你的 Keymodel_name填 TaoToken 支持的模型 ID 即可。这样本地模型和云端模型可以随时切换配置文件改一行的事。4. 启动 Ollama 并验证请求链路Ollama 的安装参考官方 Linux 手动安装文档非 root 权限下也能装到用户目录。装完后启动服务ollama serve这个命令会占住当前终端建议开一个新终端窗口做后续操作。服务默认监听127.0.0.1:11434。拉取模型7B 量级对显存要求不高适合先跑通流程ollama pull qwen2.5:7b拉取完成后确认模型在列表里ollama list输出应该能看到qwen2.5:7b及其大小。然后用 curl 直接测一下 OpenAI 兼容端点是否正常curl http://127.0.0.1:11434/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen2.5:7b, messages: [{role: user, content: 用一句话说明你是什么模型}] }如果返回 JSON 里choices[0].message.content有内容说明模型服务通了。这一步很关键因为 Hermes 报错时你分不清是模型服务的问题还是 Agent 配置的问题先单独验证模型端点能省很多时间。回到 Hermes 这边让环境变量生效source ~/.bashrc验证安装hermes version参考输出类似Hermes Agent v0.18.2 Install directory: /home/yourname/.hermes/hermes-agent Install method: git Python: 3.11.15 Up to date然后进入模型配置界面重新确认连接hermes model选Custom endpoint填http://127.0.0.1:11434/v1API key 留空模式选 Chat Completions。Hermes 会自动探测 Ollama 上已拉取的模型列表选中qwen2.5:7b即可。启动对话hermes chat如果模型不支持思考模式thinking会报错。解决办法是在 chat 界面里输入/reasoning none之后就能正常对话了。Qwen 系列部分版本默认不开思考模式遇到报错先试这个命令。5. 常见报错排查对照表部署过程中我遇到的报错基本集中在下面几类对照着查能快速定位。报错信息原因解决方案error while loading shared libraries: libasound.so.2系统缺音频库浏览器工具启动失败sudo apt install libasound2does not support thinking当前模型不支持思考模式chat 中输入/reasoning none401 UnauthorizedAPI Key 错误或未设置检查TAOTOKEN_API_KEY环境变量或确认本地服务是否留空 Keylocal proxy failed本地端点地址写错或 Ollama 未启动确认ollama serve在跑地址为http://127.0.0.1:11434/v1reading choices: unexpected end of JSON input模型返回空响应或流式解析冲突换 Ollama 作为模型服务避免 HuggingFace 流式 tools 冲突OAuth相关报错选了需要 OAuth 的供应商但未登录改用 Custom endpoint或先完成对应供应商的 OAuth 流程安装脚本卡在下载依赖海外源慢设UV_INDEX_URL为阿里云镜像或用 ghproxy 加速重点说两个。第一个是reading choices这类 JSON 解析错误我最初用 LLaMA-Factory HuggingFace 后端时频繁出现根因是流式处理时同时带tools参数导致响应格式冲突。换成 Ollama 后没再复现。如果你也遇到别在 HuggingFace 那边死磕直接换 Ollama。第二个是local proxy failed这个报错容易误导人以为要配代理。实际上它只是说 Hermes 连不上你填的本地端点。检查三件事Ollama 是否在运行、端口是不是 11434、URL 结尾有没有/v1。我见过有人填http://127.0.0.1:11434漏了/v1一样报这个错。如果你用的是 TaoToken 通道出现 401 先确认 Key 有没有复制完整再确认 Base URL 是https://taotoken.net/api而不是带其他路径。模型 ID 写错也会返回类似未授权的错误因为服务端找不到对应模型。排查顺序建议先 curl 测模型端点再hermes model测配置最后hermes chat测对话。逐层验证别一上来就怀疑 Agent 本身。6. 一次完整对话验证与后续接入建议配置都通了之后做一次带工具调用的完整验证确认 Agent 不只是能聊天还能真正干活。启动hermes chat输入一个需要联网和文件操作的请求比如帮我分析一下 https://docs.ollama.com/linux 这个页面讲了什么总结成三点预期行为Hermes 先尝试用浏览器工具访问如果浏览器因缺库失败它会自动降级到 Terminal curl 抓取页面内容然后总结。这个降级过程本身就是自进化 Agent 的一个体现——一个工具失败时换另一个方式完成任务。我实测时浏览器工具确实因为libasound.so.2报错但 Hermes 没卡住自动切到 curl 拿到了内容。日志里能看到工具切换的记录。如果你装好了libasound2浏览器路径应该能直接走通。验证成功的标志有三个对话有正常回复、日志里能看到工具调用记录、~/.hermes/目录下生成了会话和 Skill 相关文件。可以查看ls -la ~/.hermes/看到sessions、skills之类的目录就说明数据在正常落盘。后续想扩展的话几个方向把搜索提供商配上Brave Search 免费版每月 2000 次查询够个人用。在hermes model或配置向导里选 Brave填 API Key 即可。接入消息网关比如飞书或 Telegram让 Agent 能在聊天窗口里接收任务。这部分在首次配置时跳过了后续可以重新进配置向导补上。如果你想让 Agent 在云端模型和本地模型之间切换把 TaoToken 的配置写进~/.hermes/config.json的 model 段改base_url和api_key就行。需要看模型列表和调试对话用 https://taotoken.net/chat 需要管理 Key 和额度用 https://taotoken.net/console 接入细节查 https://taotoken.net/doc 。长期跑编码类任务的话Coding Plan 的额度模型更适合高频调用场景。最后提醒一句Hermes 的 Skill 是自动沉淀的你用得越多它越懂你的习惯。但也别让它无限制地跑终端命令工具集里 Terminal 和 Code Execution 权限较大生产服务器上建议先在测试环境跑顺确认行为符合预期再放到正式机器。