在API密钥管理中,最令人头疼的问题莫过于密钥泄露——将明文密钥硬编码在.env或配置文件中,截图、日志、误提交,任何一个环节都可能引发灾难性后果。Hermes Agent现在可以借助Bitwarden CLI安全拉取OpenRouter API密钥,完美规避明文存储的隐患。实现过程虽然不复杂,但有若干关键步骤必须准确把握,下面将逐一详细拆解。

准备Bitwarden CLI并登录本地账户
前提条件非常明确:系统中必须已安装Bitwarden CLI(v2025.12或更高版本),并且已完成登录并解锁了保险库。如果尚未登录,后续命令会直接返回“not logged in”错误,没有任何回旋余地。
首先执行bw login完成首次登录;如果已登录但保险库处于锁定状态,记得运行bw unlock并输入主密码。验证当前会话是否有效:执行bw list items --search "hermes-openrouter",若返回一条匹配条目,说明身份验证环节已通过。如果一条都没有,请先在Bitwarden Web或桌面端创建该条目,不要急于进行下一步。
在Bitwarden中创建专用密钥条目
打开Bitwarden Web或桌面应用,新建一个“Login”类型的条目。标题填写Hermes-OpenRouter-API-Key,用户名字段留空,密码字段粘贴你的真实API密钥(例如sk-or-v1-xxxxxxxx...格式)。
这里有一个硬性要求,也是最容易出错的关键:条目路径必须设置为hermes/api/openrouter。Bitwarden CLI依赖该路径来定位条目,Hermes默认只认此路径下的password字段。如果路径填写错误,启动时密钥加载结果将为空值——届时排查起来会非常棘手。
保存后,别忘了在终端中测试一下:bw get password hermes/api/openrouter,如果能直接输出明文密钥值,说明路径和权限都已正确配置。
配置Hermes Agent启用Bitwarden密钥集成
以下两种方法任选其一,按个人偏好决定。
方法一:一键初始化命令
进入Hermes Agent项目根目录,执行hermes securities bitwarden setup。该命令会自动检测bw CLI是否可用、检查路径权限、生成适配的config.yaml片段,最后会提示是否覆盖现有配置。适合希望避免手动操作的用户。
方法二:手动编辑config.yaml
打开config.yaml,定位到summarization:节点下,添加以下两行内容:
api_key.cmd: "bw get password hermes/api/openrouter"
api_key_env: null
注意:api_key_env必须显式设置为null,否则系统会优先读取环境变量,直接绕过Bitwarden路径——那样之前的配置就白费了。
验证密钥加载与服务启动
配置完成后不要急于庆祝,需要依次完成三步验证,确保整个链路畅通无误。
第一步:检查配置文件语法是否合法。运行hermes config validate,如果输出✓ Config is valid,说明格式正确。若报错“command not found”,请检查bw是否已添加到PATH环境变量中,或权限是否充足。
第二步:触发一次密钥读取测试。执行hermes securities bitwarden test,终端会显示解密后的密钥前8位及长度(例如sk-or-v1-xxxx [64 chars]),不会打印完整密钥——从安全角度考虑相当周全。
第三步:启动Agent并观察初始化日志。运行python main.py,在启动日志中查找一行:[SECURITY] Loaded API key via Bitwarden (path: hermes/api/openrouter)。看到此行,说明集成成功,密钥已安全就位,后续对话可放心进行。
