七脉的笔记

七脉的笔记
日常学习的笔记稿与记录稿
  1. 首页
  2. 随笔记录
  3. 正文

Hermes Agent 策略全景图

2026年6月20日 3点热度 0人点赞
Hermes Agent 策略全景图
Hermes Agent 核心策略全景

1. 智能体分配策略

策略类型触发条件关键参数行为描述
子智能体委派模型调用 delegate_task 工具最大并发: 3, 深度: 1层, 迭代上限: 50ThreadPoolExecutor 并行子 AIAgent,每个独立迭代预算,默认工具集 [terminal, file, web]
后台审阅每回合结束后自动 spawnmax_iterations: 16, 工具白名单: memory + skills守护线程中运行,限制工具集,自动拒绝危险命令,审阅记忆和技能状态
策展人 (Curator)空闲 > 2小时 + 距上次策展 > 7天过期: 30天未用, 归档: 90天未用, Pinned 技能豁免定期技能生命周期管理:过期技能标记,归档旧技能,pinned 技能永不过期
Cron 定时任务调度器每 60s tick,检查到期任务Agent 迭代上限: 90, 超时: 600s, 禁用工具集: cronjob/messaging/clarify独立 AIAgent(platform=cron, quiet_mode=True),禁止发消息和交互澄清

2. 记忆系统策略

策略类型触发条件关键参数行为描述
记忆预取每回合开始,LLM 调用前prefetch_all(query, session_id)查询所有已注册 Provider,检索相关记忆注入 volatile 提示词层
记忆异步预取每回合结束后queue_prefetch_all(query)后台线程为下一回合提前预热预取缓存,非阻塞
记忆回写每回合结束后sync_all(user, assistant, messages)后台单线程工作者序列化写入,保证顺序(Turn N 先于 N+1),超时 5s drain
外部 Provider 限制初始化时仅允许 1 个外部 Provider防止工具 schema 膨胀和后端冲突,内置文件记忆始终运行
记忆提示注入构建系统提示词时MEMORY.md 上限 2200 字符, USER.md 上限 1375 字符记忆内容注入 volatile 层,StreamingContextScrubber 自动从流式输出中剥离 标签
记忆提醒间隔每 N 回合nudge_interval: 10 回合定期提醒 Agent 使用记忆工具记录重要信息
会话切换通知Session ID 变化时on_session_switch(reset/rewound)通知所有 Provider 刷新缓存的会话状态

3. 技能系统策略

策略类型触发条件关键参数行为描述
技能扫描启动时 / 缓存失效时目录: ~/.hermes/skills/ + 外部目录递归查找所有 SKILL.md,解析 frontmatter,按分类索引
技能过滤扫描时逐个检查平台匹配 + 环境匹配 + 禁用列表platforms/frontmatter 限制平台,disabled 列表排除,environment 变量检查
技能条件可见构建技能索引时fallback_for_toolsets / requires_toolsets缺少高级工具集时显示降级技能;需要特定工具集时才显示高级技能
技能索引缓存每次构建技能提示词LRU 缓存: 8 条, 磁盘快照: .skills_prompt_snapshot.json双层缓存:进程 LRU + 磁盘 mtime 校验,命中跳过全量扫描
焦点模式降级编码姿态下compact_categories 降级整个分类只显示技能名称(无描述),保留可召回性,减少 token 消耗
技能提醒间隔每 N 回合creation_nudge_interval: 10 回合定期提醒 Agent 管理技能(创建/更新)
技能查看计数每次 skill_view 调用bump_view + bump_use更新 last_used_at,作为策展人过期/归档判断依据
技能安全扫描注入上下文前_scan_for_threats(scope=context)检测注入攻击模式,威胁文件替换为 [BLOCKED] 占位

4. ReAct 循环策略

策略类型触发条件关键参数行为描述
循环入口run_conversation 调用后max_iterations: 90 (主Agent) / 50 (子Agent)双重预算门控: api_call_count + iteration_budget.remaining,任一耗尽退出
预算宽限调用双重预算均耗尽时_budget_grace_call: 一次性允许最后 1 次 API 调用做摘要/收尾,之后强制退出
工具调用继续响应包含 tool_calls—执行工具 → 结果附加到 messages → continue 循环
文本响应退出无 tool_calls + 非空 content—认为是最终回复,break 退出循环
空响应重试无 tool_calls + 空 content最多 3 次空重试,然后 fallback重试失败后激活 fallback 模型链
长度续写finish_reason == length续写重试: 3 次, max_tokens 递增追加续写提示词,逐步提升输出 token 上限
execute_code 预算退还execute_code 工具执行后自动 refund编程工具的迭代调用不消耗主预算

5. 工具护栏策略

策略类型触发条件关键参数行为描述
精确失败警告同一工具+参数连续失败warn: 2次, block: 5次2 次相同调用失败后附加指导,5 次后阻止执行(hard_stop_enabled 时)
同类工具失败同一工具(不同参数)连续失败warn: 3次, halt: 8次3 次同工具失败警告,8 次后终止整个回合
幂等无进展只读工具返回相同结果warn: 2次, block: 5次检测到循环读取同一内容无进展时警告或阻止
决策动作护栏检查后ALLOW / WARN / BLOCK / HALTALLOW=正常执行, WARN=执行+附指导, BLOCK=阻止单次执行, HALT=终止整个回合
工具分类启动时静态分类17 个幂等工具 / 17 个变更工具幂等(只读): read_file, search_files, web_search 等; 变更: terminal, write_file, patch 等
并发执行模型返回多个 tool_callsThreadPoolExecutor max_workers: 8多工具调用并行执行,按原始顺序收集结果
顺序执行单工具 / 交互式工具todo, memory, clarify, delegate_task 等需要 Agent 级状态的工具强制顺序执行

6. 上下文压缩策略

策略类型触发条件关键参数行为描述
压缩触发prompt_tokens >= 阈值threshold: 50% 上下文窗口, 最低 64K tokens达到上下文窗口 50% 时触发压缩(Codex gpt-5.5 自动提升到 85%)
防抖动连续压缩节省 < 10%_ineffective_compression_count >= 2连续 2 次压缩效果差则暂停压缩,直至某次压缩节省超过 10%
头部保护压缩时protect_first_n: 3 条消息 + 系统提示词系统提示词 + 前 3 条消息永不摘要
尾部保护压缩时protect_last_n: 20 条, 最低地板: 8 条, Token 预算: 20%最近消息受保护,确保最后一轮对话和最后可见助手消息在保护范围内
摘要生成压缩 Phase 3summary_target_ratio: 20%, 上限 12K tokens, 辅助模型调用使用辅助 LLM 生成结构化摘要,失败时用静态摘要兜底(8K 字符上限)
迭代摘要再次压缩时_previous_summary 保留已有摘要时进行增量更新,保留历史信息+添加新完成动作
压缩预清理压缩 Phase 1(无LLM)结果去重 + 截断大参数 + 移除图片去重相同工具结果,大参数 JSON 截断(>200字符),多模态结果移除图片
摘要失败回退辅助模型不可用冷却: 600s无辅助模型时冷却 10 分钟;404/503/超时回退到主模型生成摘要

7. 系统提示词三级架构

层级包含内容变更频率设计目的
StableSOUL.md 身份 + 工具指导 + 技能索引 + 环境探测 + 平台提示 + 模型适配指导会话内几乎不变最大化上游 Prompt Prefix Cache KV 命中率
Context调用方 system_message + 上下文文件(AGENTS.md/.cursorrules/SOUL.md)跨会话变化,会话内稳定项目级上下文注入,单文件上限 20K 字符(头70%+尾20%)
VolatileMEMORY.md + USER.md + 外部记忆 Provider 提示 + 时间戳 + Session/Model/Provider每回合/会话变化动态内容,时间戳仅精确到日期(非分钟)以保证缓存稳定性

8. 凭证池与容错策略

策略类型触发条件关键参数行为描述
选择策略每次 API 调用选择凭证fill_first(默认) / round_robin / random / least_usedfill_first 优先最高优先级可用项; round_robin 轮转; random 随机; least_used 选最少使用
401 处理认证失败瞬态冷却: 5分钟, 致命(token_invalidated等): 永久移除区分瞬态 401(5 分钟冷却)和致命 401(永久 DEAD 状态,24h 后清理审计记录)
429 处理速率限制冷却: 1小时, 支持 reset_at 覆盖标记 EXHAUSTED 状态,冷却后自动恢复;Provider 提供的 reset_at 时间戳优先于默认值
池恢复判断_pool_may_recover_from_rate_limit需 entries > 1 且有可用项单凭证池/全部冷却/Google CLI 账号级配额 → 返回 False → 直接 fallback 模型
Fallback 模型链主模型持续失败有序 {provider, model, base_url?, api_key?} 列表逐个尝试 fallback 条目,同 provider/model 去重,60s 主模型冷却后尝试恢复
内层重试单次 API 调用失败max_retries: 3, 退避: 5~120s 抖动指数每次外层迭代内 3 次重试机会,指数退避 + 抖动
Transport 适配根据 api_mode 选择chat_completions(默认) / codex_responses / anthropic_messages / bedrock_converse策略模式:提供者 API 差异封装为 4 种 Transport 实现自动适配

9. Gateway 会话策略

策略类型触发条件关键参数行为描述
Agent 缓存每条消息到来时复用LRU: 128, 空闲 TTL: 3600s (1小时)避免每次消息重建 OpenAI client 和重载工具,空闲超时自动回收
忙时输入模式Agent 运行中收到新消息interrupt(默认) / queue / steerinterrupt: 中断当前,替换消息; queue: 排队等待(上限32); steer: 注入引导文本
自动重置会话过期idle: 1440分钟, daily: 凌晨4点空闲超 24h 或过凌晨 4 点自动重置;有活跃后台进程的会话永不重置
流式投递Agent 流式输出edit(默认) / draft / auto / off渐进式编辑消息展示实时进度,洪水控制自适应退避(3次失败禁用)
消息分块响应超平台长度限制安全限制: max(500, MAX_LEN - cursor - 100)按换行符边界智能分割,添加 (1/2) 分块指示
崩溃恢复Gateway 重启120s 内活跃会话标记 resume_pending崩溃后 120s 内有活动的会话保留 SessionID 和 Transcript,用户自动恢复

10. 工具集体系

工具集名称包含工具用途说明
webweb_search, web_extract网页搜索与内容提取
terminalterminal, process终端命令执行与进程管理
fileread_file, write_file, patch, search_files文件读写与搜索
browser13 个浏览器工具 + web_search浏览器自动化,含 web_search 用于查找 URL
skillsskills_list, skill_view, skill_manage技能管理三件套
memorymemory跨会话记忆 CRUD
delegationdelegate_task子智能体委派
cronjobcronjob定时任务管理
messagingsend_message跨平台消息发送
coding (姿态)34 个工具(文件+终端+web+技能+浏览器+todo+memory+delegate等)编码姿态自动选择的全栈工具集
safeweb + vision + image_gen无 terminal,安全沙箱工具集
hermes-webhook仅 4 个: web_search, web_extract, vision_analyze, clarify不可信内容场景,刻意限制防止注入攻击
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2026年6月20日

七脉神剑

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2026 75live.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang