应启用系统提示词缓存、配置模型元数据ttl、激活对话历史lru缓存、部署闲置休眠与冷启动唤醒、分阶段启用轨迹压缩缓存,以降低token消耗、减少api调用、缓解响应延迟。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 Hermes Agent 执行连续任务时发现 Token 消耗高、API 调用频繁、响应延迟上升,则很可能是模型缓存未被有效激活或配置不当。以下是实现低成本连续任务执行的具体操作路径:
一、启用系统提示词缓存
系统提示词(System Prompt)在每次推理请求中均被重复传输,若内容固定且高频复用,启用缓存可避免重复序列化与传输开销,直接降低输入 Token 总量。
1、定位到 agent/prompt_caching.py 文件。
2、确认 apply_anthropic_cache_control_markers 函数已被调用,并传入当前 message history。
3、在初始化 Agent 实例时,设置 cache_system_prompt=True 参数。
4、验证缓存命中:观察日志中是否出现 "system_prompt cached hit" 标识。
二、配置模型元数据缓存 TTL
模型元数据(如名称、上下文长度、支持的工具列表)通常在启动后不变,但默认每次请求都可能触发冗余查询。通过内存字典缓存并设定自动过期时间,可消除该类网络往返。
1、打开 agent/model_metadata.py 文件。
2、检查 _model_metadata_cache 实例是否已启用,且 TTL 设置为 3600 秒(1 小时)。
3、手动触发一次元数据加载,确认返回日志含 "fetched from cache" 字样。
4、在多模型切换场景下,确保每个模型键名(如 "qwen-max" 或 "claude-3-5-sonnet")均独立缓存。
三、激活对话历史 LRU 缓存策略
连续任务依赖上下文连贯性,但全量保留历史会指数级推高 Token 成本。LRU 缓存机制可在内存中仅保留最近 N 轮交互,淘汰最久未用片段,兼顾连贯性与成本控制。
1、确认 tests/test_run_agent.py 中的 _cached_system_prompt 行为逻辑已被迁移至运行时会话管理模块。
使用 @youdotcom-oss/teams-anthropic 将 Anthropic Claude 模型(Opus、Sonnet、Haiku)添加到 Microsoft Teams.ai 应用程序中。可选集成 You.com MCP 服务器以进行网页搜索和内容提取。
2、在 agent/session.py 中启用 max_history_turns=8 配置项。
3、将历史消息结构封装为带访问时间戳的键值对,写入 LRU_dict 实例。
4、每次新轮次开始前,调用 prune_old_turns() 方法自动清理超限条目。
四、部署层启用闲置休眠与冷启动唤醒
连续任务常呈现波峰波谷特征,常驻进程会持续占用 VPS 内存与 CPU 周期。通过进程级休眠策略,可使空闲时段资源占用趋近于零,仅在新请求抵达时瞬时拉起。
1、在部署配置中启用 auto_sleep_after_idle=120(单位:秒)。
2、确认底层运行时(如 Modal 或 Daytona)已注册 /healthz 健康检查端点用于唤醒探测。
3、验证休眠行为:观察 ps aux | grep hermes 输出在空闲两分钟后是否消失。
4、发送新请求后,检查日志首行是否含 "woken up from sleep, loading session context"。
五、分阶段启用轨迹压缩缓存
长周期连续任务生成的对话轨迹体积庞大,直接缓存原始 JSON 易造成内存膨胀。采用 trajectory_compressor.py 提供的分层压缩策略,可将缓存体积压缩至原始 25%,同时保留关键语义锚点。
1、加载 datagen-config-examples/trajectory_compression.yaml 配置文件。
2、将 target_max_tokens 设为 4000,summary_target_tokens 设为 500。
3、在缓存写入前调用 compress_trajectory(history) 方法。
4、读取缓存时自动触发 decompress_trajectory(cached_bytes) 还原为可用结构。










