1. 为什么要在 Mac mini 上给 Hermes Agent 单独开一个用户
Mac mini 作为一台常驻桌面、功耗不高的小主机,很适合跑 Hermes Agent 这类需要长期在线的智能体服务。但如果你之前已经在主力账户里装过 OpenClaw、Node、Python 虚拟环境或者一堆全局 npm 包,直接在同一账户里再装 Hermes,很容易出现依赖版本打架、PATH 被覆盖、配置文件互相污染的问题。我试过把两个 Agent 塞进同一个用户目录,结果一个升级了 Python 依赖,另一个的定时任务直接报模块找不到。
所以这篇的做法是:在 Mac mini 上新建一个专用的隔离用户,Hermes Agent 的全部依赖、配置、日志、缓存都只属于这个用户。它和你原来的账户在文件系统层面就是两套 home 目录,互不读取、互不干扰。哪怕你把这个 Hermes 用户整个删掉,也不会影响主力账户里的任何东西。
适合谁看:手里有一台 Mac mini(Intel 或 Apple Silicon 都行),想跑一个长期在线的 Hermes Agent,并且希望它和现有环境彻底隔离的人。整篇流程从系统设置里点“添加账户”开始,到终端里hermes gateway start输出成功提示结束,命令都可以直接复制。中间会接入 DeepSeek 模型,并通过 TaoToken 的统一 Key 通道来管理模型调用,这样你以后换模型、加模型都不用改 Agent 本身的配置。
需要提前说明的是,Hermes Agent 的安装脚本会从 GitHub 拉取内容,Homebrew 安装也需要能正常访问软件源。如果你的网络环境本身能正常访问这些开发资源,那按下面步骤走就行。整篇不涉及任何网络工具,纯粹是本地用户隔离 + 包管理 + 配置文件的活。
2. 前置准备:TaoToken 统一 Key 通道与 DeepSeek 模型
在动手装 Hermes 之前,先把模型这一侧的通道准备好。Hermes Agent 本身不绑定某一家模型,它通过 OpenAI 兼容接口去调用。你可以直接填 DeepSeek 官方的https://api.deepseek.com/v1,也可以走 TaoToken 的统一通道。走统一通道的好处是:以后你想在 Hermes 里换模型、加一个备用模型,只需要在 TaoToken 这边调整,Agent 的config.toml基本不用动。
TaoToken 的定位是一个模型调用的统一入口,把不同厂商的 Key 收敛成一套通道来管理。对 Hermes 这种要长期跑的 Agent 来说,统一通道意味着你可以在控制台里看到调用量、随时轮换 Key,而不用去每个厂商后台分别折腾。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。
你需要做两件事:
第一,在 TaoToken 控制台创建一个 API Key。打开 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,登录后进入 API Keys 页面,新建一个 Key 并复制保存。这个 Key 就是后面填进 Hermes 配置里的凭证。具体创建入口在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。
第二,确认你要用的模型名。Hermes 配置里需要填一个 Model Name,比如deepseek-chat或deepseek-reasoner。如果你不确定当前通道支持哪些模型名,可以打开模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite 实际发一条消息验证一下,能正常返回就说明这个模型名和 Key 都是通的。
注意:API Key 只显示一次,复制后先存到密码管理器或临时文本里。后面配置
config.toml时直接粘贴,不要手打,避免大小写或空格出错。
如果你打算长期用 Hermes 跑编码类任务或者做 Agent 自动化,可以顺带了解一下 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它和单次 API 调用是两种用法,按你的实际频率选就行。
3. 新建隔离用户并安装 Homebrew 依赖
3.1 在系统设置里创建 Hermes 专用账户
点屏幕左上角苹果图标,进入“系统设置”,左侧往下找到“用户与群组”。点左下角小锁,输入你当前开机密码解锁。然后点“添加账户”,按下面填:
账户类型选“管理员”,全名填Hermes,账户名系统会自动生成,不用改。密码自己设一个并记牢,密码提示随便填。点“创建用户”。
创建完成后,点右上角当前用户名,切换到 Hermes 用户登录。进去之后你会看到一个全新的桌面,home 目录是/Users/hermes(账户名以系统生成为准,下面命令里用~代替)。这个环境和你原来的账户完全隔离。
3.2 打开终端并安装 Homebrew
在程序坞里找“终端”(Terminal),找不到就按Command + 空格搜索“终端”。打开后逐行执行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"中间会提示按回车、输入密码。密码输入时屏幕不显示任何字符,输完直接回车。Apple Silicon 机器安装完后,Homebrew 会提示你把brew加到 PATH,按它给的提示执行那两行echo和eval命令即可。
装完验证一下:
brew --version能输出版本号就说明 Homebrew 就绪。接着装基础依赖:
brew install git curl wget这三个是后面拉取安装脚本、下载依赖时要用到的。git用来克隆仓库,curl用来请求安装脚本,wget作为备用下载工具。
3.3 安装 Hermes Agent
在同一个终端里执行官方安装脚本:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash脚本跑完后,让环境变量生效:
source ~/.zshrc然后检查版本:
hermes --version能输出版本号,说明 Hermes 已经装进这个隔离用户的环境里了。这一步如果报command not found,先确认你执行过source ~/.zshrc,再确认当前终端确实是 Hermes 用户打开的,而不是原来的账户。
4. 配置 config.toml 接入 TaoToken 与 DeepSeek
4.1 用 hermes setup 走一遍初始化
执行:
hermes setup终端会依次问你 LLM Provider、API Base URL、API Key、Model Name。如果你走 TaoToken 统一通道,Provider 选Custom / OpenAI Compatible,Base URL 填 TaoToken 的 API 地址,Key 填你在控制台创建的那把,Model Name 填deepseek-chat。
如果你直接用 DeepSeek 官方,Base URL 填https://api.deepseek.com/v1,Key 填 DeepSeek 后台申请的,Model Name 同样是deepseek-chat。两种方式在 Hermes 这边只是 Base URL 和 Key 不同,配置结构完全一样。
4.2 config.toml 骨架
hermes setup会生成一份配置文件,通常在~/.config/hermes/config.toml。你也可以手动编辑,骨架如下:
[llm] provider = "openai-compatible" base_url = "https://taotoken.net/api/v1" api_key = "sk-你的TaoTokenKey" model = "deepseek-chat" temperature = 0.7 max_tokens = 4096 [agent] name = "hermes" workspace = "~/.hermes/workspace" log_level = "info" [gateway] enabled = true port = 8787几个关键点说明一下。base_url走 TaoToken 时填https://taotoken.net/api/v1,注意结尾的/v1不要漏,Hermes 是按 OpenAI 兼容格式拼接/chat/completions的。api_key就是控制台里那把。model填deepseek-chat,想要推理能力就换deepseek-reasoner。temperature和max_tokens按你的任务调,做代码生成时温度可以降到 0.2 左右。
注意:
config.toml里不要出现中文引号,所有字符串用英文双引号。TOML 对格式敏感,多一个空格或少一个引号都会导致解析失败。
4.3 接入飞书并设置 Home Chat
hermes setup过程中如果提示选择平台,选Feishu,登录方式选Scan Code。终端会显示一个二维码,用手机飞书 App 扫一扫并确认授权。
接入完成后,在你想接收通知的飞书群或私聊窗口里发送:
/sethome这条命令的作用是把当前聊天窗口设为 Hermes 的默认推送目标。以后定时任务的结果、跨平台消息都会发到这里。设置完可以发一条测试消息确认机器人有响应。
5. 启动 Gateway 并验证 Agent 正常调用
5.1 安装并启动 Gateway
hermes gateway install hermes gateway start看到终端输出服务运行成功的提示后,Hermes Agent 就已经在隔离用户下跑起来了。你可以用下面的命令确认进程状态:
hermes gateway status正常会显示 running。如果显示 stopped,先看日志:
tail -n 50 ~/.hermes/logs/gateway.log日志里最常见的两类问题是:config.toml解析失败,或者 API Key 鉴权失败。前者检查 TOML 格式,后者检查 Key 是否复制完整、Base URL 是否带了/v1。
5.2 验证模型调用是否走通
最直接的验证方式是在终端里让 Hermes 发一次请求:
hermes chat "用一句话说明你现在用的是哪个模型"如果返回内容里能正常给出模型名,说明从 Hermes 到 TaoToken 再到 DeepSeek 的整条链路是通的。你也可以打开 TaoToken 的模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite 对照一下,确认调用量有增长。
再验证一下飞书侧:
hermes notify "Hermes 隔离环境测试消息"飞书里/sethome设置的那个窗口应该收到这条消息。收到就说明 Gateway、模型、消息通道三者都正常。
5.3 参数对照表
| 配置项 | 走 TaoToken | 走 DeepSeek 官方 |
|---|---|---|
| provider | openai-compatible | openai-compatible |
| base_url | https://taotoken.net/api/v1 | https://api.deepseek.com/v1 |
| api_key | TaoToken 控制台创建 | DeepSeek 后台申请 |
| model | deepseek-chat | deepseek-chat |
| 换模型方式 | 控制台调整,Agent 少改 | 需改 config.toml |
6. 本篇常见错误排查
6.1 hermes: command not found
这是最高频的问题。原因通常是安装脚本跑完后没有重新加载 shell 配置,或者你切换回了原来的用户。先确认终端提示符前面的用户名是 Hermes,然后执行source ~/.zshrc。如果还不行,检查~/.zshrc里有没有 Hermes 写入的 PATH 行,没有就手动加:
export PATH="$HOME/.hermes/bin:$PATH"再source ~/.zshrc。
6.2 config.toml 解析报错
TOML 对格式很严格。常见错误包括:用了中文引号、字符串没闭合、base_url结尾多了斜杠导致拼接出//v1。建议用cat ~/.config/hermes/config.toml把内容打出来逐行看。改完后重启 Gateway:
hermes gateway restart6.3 401 鉴权失败
如果日志里出现 401,先确认api_key是不是完整复制。TaoToken 的 Key 一般以sk-开头,复制时不要带前后空格。再确认base_url是https://taotoken.net/api/v1,不是https://taotoken.net/api。少写/v1会导致请求路径不对,返回 404 或 401。
6.4 飞书二维码扫了没反应
先确认手机飞书 App 是最新版本,扫码后要在手机上点确认授权。如果终端二维码显示不全,把终端窗口拉大一点再重新执行hermes setup里的飞书接入步骤。授权成功后终端会提示登录完成,这时再去发/sethome。
6.5 Gateway 启动后马上退出
看日志~/.hermes/logs/gateway.log。如果是端口被占用,改config.toml里的port,比如从 8787 改成 8788,然后hermes gateway restart。如果是权限问题,确认当前是 Hermes 用户,且~/.hermes目录归这个用户所有。
7. 后续怎么用:统一 Key 通道与长期运行
隔离用户跑通之后,日常维护其实很轻。Hermes 的所有文件都在/Users/hermes下面,你原来的账户完全不受影响。要升级 Hermes,切到 Hermes 用户执行安装脚本或hermes update即可。要换模型,优先在 TaoToken 控制台调整通道,Hermes 这边的config.toml只在换 Base URL 或换 Key 时才动。
如果你后面要接 Claude Code 这类编码工具,TaoToken 也有对应的接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,以及 ClaudeCode Anthropic 的说明页 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite 。思路和这篇一样:统一 Key 通道 + 独立环境,避免多个工具互相踩依赖。
最后留一个实用习惯:每次改完config.toml,先hermes gateway restart,再用hermes chat "test"发一条最短请求验证链路。确认通了再去跑正式任务,比事后翻日志省时间。