应启用并配置提示词缓存、模型元数据缓存、技能索引SSD缓存、工具调用LRU缓存及上下文相关性压缩缓存:1. 启用prompt_caching.py中PROMPT_CACHING_ENABLED=True,设CACHE_TTL为"5m"或"1h",max_cache_breakpoints=4;2. 确保model_metadata.py中_MODEL_CACHE_TTL=3600且get_model_metadata优先返回缓存;3. 将skills/index-cache迁至SSD并建立符号链接;4. 对确定性工具函数添加@lru_cache(maxsize=128)装饰器;5. 在default.yaml中配置context_compression: {enabled: true, strategy: "relevance_based", min_keep_tokens: 800}。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您正在使用Hermes Agent并发现响应延迟高、API调用频繁或内存占用异常上升,则很可能是缓存策略未合理配置所致。以下是针对不同缓存类型的具体优化方法:
一、启用并配置提示词缓存
提示词缓存通过在对话消息中注入Anthropic规范的cache_control标记,使模型服务识别可复用的历史推理路径,显著减少重复计算与API请求。该机制默认关闭,需手动激活并设定时效性。
1、打开agent/prompt_caching.py文件,将PROMPT_CACHING_ENABLED设为True。
2、设置CACHE_TTL = "5m"(短期会话)或"1h"(长期运行任务),确保缓存有效期匹配业务场景。
3、确认max_cache_breakpoints值为4,即系统提示 + 最近3条非系统消息,避免断点过多导致缓存命中率下降。
二、调整模型元数据缓存行为
模型元数据(如能力描述、token限制、响应格式等)从OpenRouter等外部服务获取成本高,且变更频率低。本地内存缓存可规避重复网络请求,提升模型选择与初始化速度。
1、定位agent/model_metadata.py中的_MODEL_CACHE_TTL常量,确认其值为3600(即1小时)。
2、检查get_model_metadata()函数逻辑,确保force_refresh=False时优先返回缓存结果。
3、如需强制刷新缓存,调用时传入force_refresh=True参数,适用于模型服务升级后立即同步元信息。
三、迁移技能索引至SSD缓存目录
技能中心(skills_hub.py)依赖文件系统缓存存储技能索引,原始路径若位于HDD会导致随机读取延迟升高。将缓存目录迁移到SSD可提升3–5倍搜索吞吐量,尤其在高频技能检索场景下效果明显。
1、创建SSD缓存根目录:mkdir -p /ssd/hermes/index-cache。
2、迁移现有缓存数据:cp -r skills/index-cache/* /ssd/hermes/index-cache/。
3、建立符号链接覆盖原路径:ln -sf /ssd/hermes/index-cache skills/index-cache。
四、配置工具调用结果缓存
对确定性高、输入参数组合有限的工具(如时间查询、单位换算、基础API封装),启用LRU结果缓存可跳过执行阶段,直接返回历史输出,降低CPU与IO负载。
1、在对应工具函数定义前添加装饰器:@lru_cache(maxsize=128)。
2、确保工具函数参数均为不可变类型(如str、int、tuple),否则缓存键生成失败。
3、若工具涉及外部状态变更(如数据库写入),禁止启用此缓存,防止结果陈旧引发逻辑错误。
五、启用上下文相关性压缩缓存
长对话中累积的冗余上下文会持续增加token负载,导致模型加载慢、显存占用高。基于相关性的上下文压缩策略可在保留关键指令前提下动态剔除低价值片段,并将压缩结果缓存复用。
1、在配置文件(如environments/default.yaml)中启用context_compression模块。
2、设置enabled: true,strategy: "relevance_based"。
3、指定min_keep_tokens: 800,保障核心系统提示与最近有效交互不被截断。











