
1. 从 OpenClaw 到 Hermes为什么我不想再手写 skill 了如果你在 Termux 里折腾过 OpenClaw大概率经历过这个循环跑完一轮任务觉得流程不错于是手动把步骤整理成 skill 文件下次任务变了再回去改 skill改完发现路径又不对再改。skill 是死的人是累的。Hermes agent 换了个思路。它不要求你提前把 skill 写好而是在每次任务完成后自己检查这次有没有值得沉淀的路径如果有它直接生成 skill 文件后续执行中发现更优解它会回头修改那个文件。换句话说OpenClaw 的 skill 由人维护Hermes 的 skill 由它自己维护。这就是标题里说的“主动蒸馏”——它把你的操作轨迹、上下文、经验压缩成可复用的技能而不是等你来总结。这篇文章面向三类人在 Termux 里跑过 OpenClaw 想迁移的、想用统一 Key 管理多家模型的、以及想把 Hermes 注册成常驻服务让它长期在线的。核心交付物是一份可复制的settings.json配置骨架加上 TaoToken 统一 Key 的接入步骤最后给出hermes gateway install之后的验证动作。全程在 Android Termux 环境下可跟做。先说清楚 Hermes 和 OpenClaw 在 skill 机制上的差异这决定了你配置时要想清楚什么维度OpenClawHermes agentskill 来源人工编写、手动打包任务完成后自动检查并生成skill 更新人工修改执行中发现更优路径自行修改学习闭环依赖人总结经验→技能→轨迹→上下文压缩迁移方式无hermes claw migrate一键导入常驻方式手动保活hermes gateway install注册系统服务我试过在 Termux 里把两者并行跑了一段时间最直观的感受是OpenClaw 更像一个需要你喂 skill 的执行器Hermes 更像一个会自己记笔记的助手。它不一定原封不动记住你们聊过的每句话但能把旧信息捞出来压缩成当前任务能用的上下文。这个“压缩”动作就是它主动蒸馏你的地方。2. TaoToken 前置统一 Key 解决多模型切换的麻烦Hermes 本身支持接多家模型但如果你每个模型都单独配一个 Key、单独改一次配置迁移和排障会非常痛苦。TaoToken 的作用是把这些 Key 统一成一个入口你只需要在settings.json里维护一份 base_url 和 api_key切换模型时改模型名就行。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 这个不加 UTM直接填进配置。你需要提前准备的东西不多一个 TaoToken 账号在控制台里创建一个 API KeyTermux 环境建议用较新的版本pkg update能正常跑Hermes agent 已经装好hermes --version能输出版本号如果是从 OpenClaw 迁移先确认原配置目录还在创建 Key 的路径是控制台里的 API Keys 页面生成后复制那串以sk-开头的字符串。注意这个 Key 只在创建时完整显示一次建议先存到 Termux 的临时文件里再往配置里填避免来回翻页面。提示TaoToken 的 API 地址填https://taotoken.net/api不要带任何查询参数。base_url 和 api_key 是配对使用的填错一个就会在验证请求时报 401。如果你还没决定用哪个模型可以先在模型对话页面里试跑几句确认响应正常再写进配置。模型对话入口https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。长期编码或跑 Agent 任务的话Coding Plan 更划算入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。3. 可复制的 settings.json 配置骨架Hermes 的配置文件默认在~/.hermes/settings.jsonTermux 下就是/data/data/com.termux/files/home/.hermes/settings.json。如果目录不存在先手动建一下mkdir -p ~/.hermes touch ~/.hermes/settings.json下面这份骨架是我实测能跑通的版本字段含义我写在注释里但 JSON 本身不支持注释所以你复制时把//开头的行删掉或者直接用下面这份纯净版{ provider: { name: taotoken, base_url: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model: claude-sonnet-4-20250514, timeout: 120, max_retries: 3 }, agent: { name: hermes, workspace: ~/.hermes/workspace, auto_skill: true, skill_review_interval: 5, context_compress: true, compress_threshold: 8000 }, gateway: { enabled: true, port: 8787, host: 127.0.0.1, log_level: info }, memory: { path: ~/.hermes/memory, max_entries: 500, auto_prune: true } }几个关键字段单独说一下。auto_skill设为true是开启主动蒸馏的核心开关关掉它就退回成 OpenClaw 那种手动模式了。skill_review_interval表示每完成 5 个任务检查一次是否要生成或更新 skill数值越小越频繁但也会增加模型调用次数。context_compress和compress_threshold控制上下文压缩超过 8000 token 就触发压缩把旧信息捞出来重新组织。model字段填你实际要用的模型名TaoToken 支持的模型列表在文档里能查到。如果你不确定填哪个先用模型对话页面确认一下模型标识符的准确写法大小写和连字符都要对上。配置写完后用 Python 校验一下 JSON 格式避免因为少个逗号导致启动失败python -c import json; json.load(open(/data/data/com.termux/files/home/.hermes/settings.json)); print(JSON OK)输出JSON OK就说明格式没问题。这一步看着简单但我踩过的坑里有一半是 JSON 格式错误导致的尤其是从网页复制配置时带进了不可见字符。4. 验证请求与 hermes gateway install 后的动作配置写好后先别急着装 gateway用一次最小请求验证 Key 和 base_url 是否通。Hermes 提供了直接调用 provider 的命令hermes provider test --config ~/.hermes/settings.json如果返回类似下面的结构说明 TaoToken 接入成功{ status: ok, provider: taotoken, model: claude-sonnet-4-20250514, latency_ms: 842, response_preview: Hello, I am ready. }status是ok、latency_ms在合理范围内就说明链路通了。如果返回 401检查 api_key 是否复制完整返回 404检查 base_url 是不是多写了斜杠或路径。接下来注册系统服务让 Hermes 长期在线hermes gateway install这条命令会把 Hermes 注册成 Termux 下的常驻服务。执行后你会看到类似输出[hermes] gateway service installed [hermes] config: ~/.hermes/settings.json [hermes] port: 8787 [hermes] start with: hermes gateway start然后启动并检查状态hermes gateway start hermes gateway statusstatus返回running且端口是 8787就说明服务起来了。这时候你可以用 curl 打一下本地端口确认 gateway 真的在监听curl -s http://127.0.0.1:8787/health正常会返回{status:healthy,agent:hermes}。到这一步主动蒸馏的闭环就跑通了Hermes 在后台接任务、完成任务、检查 skill、压缩上下文你不需要手动干预。如果你是从 OpenClaw 迁移过来的在装 gateway 之前先跑一次迁移命令把原有设置、记忆和技能导进来hermes claw migrate --source ~/.openclaw --target ~/.hermes迁移完成后原来的 skill 会出现在~/.hermes/workspace/skills下Hermes 会在后续任务中接管它们的维护。5. 本篇常见错排查报错一hermes: command not foundTermux 里装完 Hermes 后命令不在 PATH 里。检查~/.bashrc或~/.zshrc有没有把 Hermes 的 bin 目录加进去没有的话手动加echo export PATH$PATH:$HOME/.hermes/bin ~/.bashrc source ~/.bashrc报错二401 Unauthorizedapi_key 填错或过期。去控制台的 API Keys 页面重新生成一个注意复制时不要带空格。另外确认 base_url 是https://taotoken.net/api不是首页地址。报错三gateway install后 status 显示stopped端口被占用或者配置里gateway.enabled是false。先查端口netstat -tlnp | grep 8787如果被占用改settings.json里的gateway.port为其他值比如 8788然后重新hermes gateway install。报错四skill 没有自动生成检查auto_skill是否为true以及skill_review_interval是不是设得太大。另外如果任务本身太简单、没有可复用的路径Hermes 不会强行生成 skill这是正常行为不是 bug。报错五上下文压缩后回答变差compress_threshold设得太低导致有用信息被过早压缩。调到 12000 或更高试试或者把context_compress暂时关掉对比一下效果。报错六迁移后 skill 不生效hermes claw migrate导入的 skill 可能需要重新索引。跑一次hermes skill reindex --path ~/.hermes/workspace/skills6. 把 Key 和 gateway 管好剩下的交给它自己整套流程跑下来最省心的地方在于你只需要维护一份settings.json和一个 TaoToken Key模型切换、skill 生成、上下文压缩都由 Hermes 在后台处理。hermes gateway install之后它就是一个常驻服务你关掉 Termux 窗口它也在跑。如果你还没创建 Key去控制台的 API Keys 页面生成一个https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入文档里有更细的字段说明和模型列表https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。长期跑编码或 Agent 任务的话Coding Plan 比按量计费更稳https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后留一个实用技巧把~/.hermes/settings.json和~/.hermes/memory目录定期备份到 Termux 外部存储迁移或重装时直接拷回来skill 和记忆都不会丢。Hermes 的主动蒸馏能力本质上是在帮你积累这些文件别让它们只存在一个地方。