1. 为什么你的 Hermes Agent 用了一周还是“陌生人”Hermes Agent 是少数自带学习闭环的开源 Agent 框架它能从每次任务里提炼 Skills程序性记忆也能把关于你和环境的事实写进 Memory声明性记忆。但很多人装完就发现它并没有变聪明甚至每次都在重复问“你用 npm 还是 pnpm”。问题不在模型而在自进化链路没有真正跑通——Skills 目录没挂对、Memory 写入被静默跳过、Honcho 的 peer 配置和 profile 对不上后台审查代理自然学不到东西。这篇是系列第三篇聚焦落地配置。我会把config.toml和settings.json的骨架直接给你然后完整演示一次“技能注册 → 记忆写入 → 行为验证”的动作让你能亲眼看到 Agent 从“失忆”变成“记得你”的过程。适合已经跑通 Hermes 基础对话、想进一步把它养成专属帕鲁的开发者。全程只需要一个可用的模型接入点我用 TaoToken 做演示因为它的 API 兼容 OpenAI 格式接 Hermes 的config.toml很省事。先明确三个概念后面配置才不会晕Skills 是“怎么做”的方法论存在~/.hermes/skills/下每个技能一个目录带SKILL.mdMemory 是“是什么”的事实库分MEMORY.md环境和USER.md用户偏好Honcho 是跨会话用户建模层让多个 profile 共享对你的认知但各自发展人格。三者串起来才叫自进化闭环。2. 前置TaoToken 接入点与 Hermes 环境准备Hermes 的模型调用走标准 OpenAI 兼容接口所以接入点只需要 base_url 和 api_key。TaoToken 的 API 地址是https://taotoken.net/api注意这个地址不带任何查询参数直接填进配置即可。如果你还没有 key去控制台创建一个https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 创建后在 API Keys 页面复制https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。环境侧确认三件事Hermes 版本 ≥ 0.8hermes --versionPython 虚拟环境已激活~/.hermes/目录存在。如果目录不存在先跑一次hermes init让它生成默认结构。我试过在干净的 Ubuntu 22.04 上从零配最容易踩的坑是~/.hermes/skills/权限不对导致后台审查写入失败建议先chmod 755 ~/.hermes再继续。模型选择上后台审查代理会额外消耗 token因为它要跑最多 8 次迭代来判断“值不值得学”。所以别用最贵的模型做审查用中等能力的就够。TaoToken 的模型列表里挑一个性价比合适的填进config.toml的model字段。如果你还想在配置前先验证模型对话是否正常可以用模型对话页快速测一句https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。3. 可复制配置config.toml 与 settings.json 骨架Hermes 的主配置在~/.hermes/config.tomlHoncho 和部分运行时开关在settings.json。下面这份骨架可以直接抄改掉 api_key 和 peerName 就能用。# ~/.hermes/config.toml [model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model 你的模型名 max_tokens 4096 temperature 0.3 [agent] max_iterations 30 quiet_mode false [learning] # 技能学习触发间隔每 N 次工具调用后触发后台审查 skill_nudge_interval 10 # 记忆学习触发间隔秒 memory_nudge_interval 300 # 后台审查代理最大迭代次数 review_max_iterations 8 # 是否允许 Agent 自动创建/更新技能 auto_skill_manage true [skills] # 内置技能目录 builtin_dir ~/.hermes/skills # 外部技能目录可挂多个 external_dirs [ ~/my-skills, ~/shared-skills ] [memory] # 记忆存储目录 store_dir ~/.hermes/memories # 会话开始时冻结快照防止中途注入 freeze_snapshot true # 写入前安全扫描 security_scan true [honcho] enabled true # Honcho 服务地址本地部署填 localhost endpoint http://localhost:8000 workspace zhang-sansettings.json负责 profile 与 peer 的映射放在~/.hermes/settings.json{ defaultProfile: default, hosts: { hermes.default: { aiPeer: default, peerName: 你的名字, workspace: zhang-san, observation: { user: { observeMe: true, observeOthers: true }, ai: { observeMe: true, observeOthers: true } } }, hermes.work: { aiPeer: work, peerName: 你的名字工作, workspace: zhang-san, observation: { user: { observeMe: true, observeOthers: false }, ai: { observeMe: true, observeOthers: false } } } } }两个文件的关系要理清config.toml管“怎么学”settings.json管“谁在学、学到的归谁”。workspace相同意味着多个 profile 共享对你的认知aiPeer不同意味着它们各自发展独立人格。工作 profile 把observeOthers关掉避免把生活场景的偏好带进工作上下文。注意base_url结尾不要加/v1Hermes 会自己拼路径。加了会变成/v1/v1/chat/completions直接 404。4. 完整动作演示技能注册 → 记忆写入 → 行为验证配置改完先重启 Hermes 让config.toml生效。然后我们走一遍完整链路每一步都有可观察的结果。4.1 技能注册手动创建一个可被加载的技能先手动建一个技能确认目录结构和加载机制正常。创建~/.hermes/skills/taotoken-api-check/SKILL.md--- name: taotoken-api-check description: 验证 TaoToken 接入点是否可用检查 base_url 与密钥配置 category: devops --- ## 触发条件 当用户怀疑模型接入点配置错误或需要验证 API 连通性时。 ## 执行步骤 1. 读取 ~/.hermes/config.toml 中的 base_url 和 model 字段 2. 用 curl 发送一次最小对话请求 curl -s https://taotoken.net/api/chat/completions \ -H Authorization: Bearer $TAOTOKEN_KEY \ -H Content-Type: application/json \ -d {model:你的模型名,messages:[{role:user,content:ping}]} 3. 检查返回 JSON 是否包含 choices 字段 4. 如果返回 401提示用户检查 api_key 5. 如果返回 404提示用户检查 base_url 是否误加了 /v1 ## 已知问题 - base_url 结尾加 /v1 会导致 404 - 密钥过期会返回 401需重新生成 ## 验证方法 返回 JSON 中有 choices[0].message.content 即视为成功。保存后跑hermes skills list应该能看到taotoken-api-check出现在列表里。如果没出现检查config.toml的builtin_dir路径是否指向了正确目录以及SKILL.md的 frontmatter 是否有语法错误YAML 对缩进敏感。4.2 记忆写入让 Agent 记住一条偏好启动 Hermes 对话直接告诉它一条关于你的偏好记住我所有的 API 密钥都放在 ~/.hermes/.env 里不要建议我把密钥写进代码或配置文件。Hermes 会调用 memory 工具写入。写入后检查~/.hermes/memories/USER.md应该能看到类似内容§ 用户的 API 密钥统一存放在 ~/.hermes/.env不要建议将密钥硬编码进代码或配置文件如果没写进去看两个地方一是config.toml里security_scan是否把这条内容误判拦截了密钥相关词汇容易触发扫描二是后台审查是否还在跑memory_nudge_interval默认 300 秒可以临时调小到 30 秒方便调试。4.3 行为验证确认记忆真的生效这一步最关键。退出当前会话重新启动 Hermes然后问一个会触发记忆的问题我要调用一个外部 API密钥应该放哪里如果记忆生效Hermes 会直接回答“放在~/.hermes/.env”而不是泛泛地说“用环境变量”。这就是冻结快照注入的效果——会话一开始USER.md的内容就被拼进系统提示Agent 不需要你重复交代。再验证技能新开会话输入“帮我检查一下 TaoToken 接入点是否正常”。Hermes 应该加载taotoken-api-check技能并按步骤执行而不是从零开始摸索。如果它没加载技能检查SKILL.md的description是否足够明确——触发匹配靠的是语义相似度描述太模糊会匹配不上。4.4 观察后台审查让 Agent 自己进化上面三步是手动验证。真正体现自进化的是后台审查。做一次稍微复杂的任务比如“帮我把这个项目部署到 Vercel”过程中会有多次工具调用。任务完成后等 10 次工具调用的阈值触发后台审查代理会静默启动。观察方法看~/.hermes/skills/下是否多出了新目录或者已有技能的SKILL.md是否被 patch 过。也可以临时把quiet_mode设为false审查代理的输出会打到终端。审查代理的判断逻辑是如果这次任务有试错、有非平凡方法、用户表达了不同期望就创建或更新技能否则输出 “Nothing to save.” 然后停止。它不会为了学习而学习这点设计很克制。5. 本篇常见错排查配置跑不通九成是下面几个问题。逐个对照。报错401 Unauthorizedapi_key 填错或过期。去 API Keys 页面重新生成https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。注意config.toml里密钥不要加引号以外的空格。报错404 Not Foundbase_url 写成了https://taotoken.net/api/v1。改成https://taotoken.net/apiHermes 自己会拼/chat/completions。技能不加载SKILL.md的 frontmatter 缺name或description或者 YAML 缩进用了 Tab。YAML 只认空格。另外确认external_dirs里的路径是绝对路径或~开头相对路径不认。记忆写不进去security_scan拦截。密钥、token、authorized_keys 这类词容易触发。调试时可以先在config.toml里把security_scan设为false确认链路通了再打开。Honcho 连接失败endpoint填错或者 Honcho 服务没启动。本地部署的话先确认http://localhost:8000/health能返回 200。如果不用 Honcho把enabled设为false不影响 Skills 和 Memory 的核心功能。后台审查不触发skill_nudge_interval设太大或者任务工具调用次数没到阈值。调小到 5 方便观察。另外确认auto_skill_manage是true。多 profile 记忆串了settings.json里两个 profile 的workspace相同但aiPeer也相同导致人格没隔离。检查aiPeer字段是否各自唯一。6. 把闭环跑顺之后Skills、Memory、Honcho 三件套配好之后Hermes 的行为会明显不一样它开始记得你的工具偏好开始复用解决过的问题开始在不同 profile 之间保持一致的“对你的认知”但发展出各自的专长。这套闭环的价值不在于某一次对话变聪明而在于用得越久、积累越厚。如果你打算长期跑编码类任务或 Agent 工作流可以考虑 Coding Plan后台审查和技能维护会持续消耗 token包月比按量更可控https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入文档里有完整的参数说明和更多配置示例https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你用 Claude Code 做主力编码工具Anthropic 兼容接入的配置也在文档里https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite 。最后给一个实用技巧定期跑hermes skills list和cat ~/.hermes/memories/USER.md看看 Agent 都学了什么。发现过时的技能就hermes skills disable发现记错的偏好就手动改USER.md。自进化不等于放任自流你仍然是这只帕鲁的训练师。