Hermes Agent缓存优化需分五步:一查缓存状态与权限;二启会话缓存并设TTL;三预热高频技能缓存;四配动态TTL防膨胀;五按需绕过缓存强制重算。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 Hermes Agent 过程中发现相同任务反复触发高 Token 消耗或重复 API 调用,则很可能是会话缓存未被有效利用或配置不当。以下是针对 Hermes Agent 缓存机制的深度解析与实操优化路径:
一、理解 Hermes Agent 的会话缓存层级结构
Hermes Agent 并非依赖单一缓存策略,而是构建了嵌套式会话缓存体系,覆盖从短期上下文到长期技能复用的全链路。其核心在于将高频操作结果固化为可索引、可验证、可压缩的本地缓存单元,避免每次任务都重新生成完整推理链。
1、识别当前会话缓存激活状态:检查 ~/.hermes/cache/ 目录下是否存在 session_*.json 文件及对应时间戳。
2、确认缓存写入权限:运行 ls -ld ~/.hermes/cache,确保当前用户对该目录具有读写执行权限。
3、验证缓存内容有效性:使用 jq '.cache_key, .timestamp, .hit_count' ~/.hermes/cache/session_*.json 查看缓存键、生成时间与命中次数。
二、启用并强制刷新会话缓存
默认情况下,Hermes Agent 仅对满足特定条件的会话自动启用缓存(如工具调用≥3次、响应长度>128 tokens)。手动干预可扩展缓存覆盖范围,尤其适用于结构化、低变异性任务。
1、编辑 ~/.hermes/config.yaml,将 session_cache.enabled 设置为 true。
2、在任务提示词末尾追加显式缓存指令:[CACHE:ENABLED; TTL=3600]。
3、执行一次测试请求后,立即运行 hermes-cli cache flush --scope=session 清除旧缓存并触发新会话缓存重建。
三、基于技能路径的缓存预热
技能文件(~/.hermes/skills/*.md)本身即为一种持久化缓存载体。通过预加载高频技能对应的会话缓存快照,可在首次调用前完成上下文初始化,跳过冗余推理步骤。
1、列出高频技能:运行 ls -t ~/.hermes/skills/ | head -n 5 获取最近更新的5个技能文件。
2、为每个技能生成缓存种子:执行 hermes-cli skill warmup --skill-path ~/.hermes/skills/deploy_vercel.md。
3、确认预热完成:检查 ~/.hermes/cache/warmup/ 下是否生成对应 skill_id 的 .cache.bin 文件,且文件大小不为零。
四、限制缓存膨胀并设置动态 TTL
无节制缓存会导致磁盘占用激增与检索延迟上升。Hermes Agent 支持按访问频率自动调整缓存生命周期,确保资源高效复用而非堆积。
1、在 ~/.hermes/config.yaml 中配置 cache.ttl_policy: dynamic。
2、设定基础 TTL 阈值:cache.default_ttl: 1800(30分钟)。
3、为高价值缓存添加标签:在调用时传入 --cache-tag=financial_report_v2,后续可通过 hermes-cli cache list --tag=financial_report_v2 单独管理。
五、绕过缓存强制重计算
当底层工具逻辑变更、模型版本升级或用户明确要求最新结果时,需临时禁用缓存以保障响应准确性。该操作不影响历史缓存文件,仅跳过本次检索。
1、在 CLI 调用中加入参数:--no-cache。
2、若通过 MCP 协议接入,于 request payload 中设置 "cache_control": {"skip": true}。
3、验证跳过效果:观察响应头中是否包含 X-Cache-Status: BYPASSED 字段。


















