Hermes Agent Loop:从9200行代码中读懂Agent心脏
翻开 Hermes Agent 的源码run_agent.py。9200 行。看完之后我意识到一件事。Agent 的心脏不是模型。不是工具。是 AgentLoop。模型调用 → 工具执行 → 循环 → 直到完成。这个循环决定了 Agent 能做什么不能做什么。这不是一个简单的循环。是一个精密系统一、Turn Lifecycle一次迭代的完整旅程看 Hermes 的 run_conversation()我发现一件事。每次 iteration不是简单调用 API。是9 个步骤三个步骤值得细说。Step 3 - 系统提示缓存首次构建后续复用。只有压缩事件触发时才重建。为什么Anthropic prefix cache 需要稳定的前缀。Step 4 - 预压缩检查(Preflight Compression)50% context window主动压缩。用户切换到更小 context 的模型时触发。预防性压缩不等 API 报错。Step 8 - 可中断 API 调用(Interruptible API Call)这一步让我印象深刻。后台线程 HTTP POSTMain thread 监控中断事件。用户可以随时打断无 partial response 注入 history。二、三种 API Modes为什么需要三种看到三种 API mode 时我有点困惑。OpenAI-spec 不是标准吗Mode使用场景Clientchat_completionsOpenAI 兼容端点openai.OpenAIcodex_responsesCodex APIResponses formatanthropic_messagesAnthropic 原生Anthropic adapter看起来复杂内部统一。三种 mode 都收敛到OpenAI format{role: system, content: ...}{role: user, content: ...}{role: assistant, content: ..., tool_calls: [...]}{role: tool, tool_call_id: ..., content: ...}Provider 可以不同。内部格式必须统一。这是架构设计的克制多样性收敛到标准。三、Tool Execution并发128 workers的秘密并发还是顺序Hermes 选了并发。128 workers。单工具调用 → 主线程直接执行多工具调用 → ThreadPoolExecutor 并发例外interactive toolsclarify强制顺序线程池大小128 workers。为什么 128RL environments 可能 89 个任务同时运行。太小 → 线程池饥饿任务排队几分钟。太大 → 资源浪费。动态调整def resize_tool_pool(max_workers: int): 根据 config.tool_pool_size 动态调整Agent-Level Tools 拦截有些工具不经过 registry。直接修改 agent state。ToolWhy interceptedtodoagent-local task statememorypersistent memory filessession_searchsession historydelegate_taskspawns subagent这些工具返回 synthetic tool results。不经过handle_function_call()。四、Budget System如何防止无限循环读到 IterationBudget 时我理解了 Hermes 的克制。Agent 可以无限循环。工具调用可以触发更多工具调用。没有约束Agent 可能永远不结束。IterationBudget 设计默认90 iterations。两级压力警告70% (caution tier):[BUDGET: Iteration X/Y. N left. Start consolidating your work.]90% (warning tier):[BUDGET WARNING: Iteration X/Y. Only N left. Final response NOW.]100%:stop, return summary of work done压力注入在哪里Tool result。Model 会收到信号。知道需要结束了。Subagent 共享预算子 agent 消耗父 agent 的 budget。防止递归调用无限消耗。一个任务的总预算是固定的。五、Fallback Chain故障自动切换Provider 会失败。我用 OpenRouter 时遇到过 429 rate limit。深夜调用 Anthropic遇到过 5xx server error。换 API key 时遇到过 401/403 auth error。用户应该因为一个 provider 失败而放弃不应该。Fallback 流程不是全局 fallback。是分层 fallback。Auxiliary Tasks 独立 chainvision / compression / web extraction / session search每个任务有自己的 fallback chainPrimary 和 Auxiliary 各自独立。这提高了系统的鲁棒性。六、Compression Thresholds为什么两级两级阈值Preflight 50%Gateway 85%。为什么是这两个数字ThresholdTriggerPurpose50%Preflight主动预防切换模型时85%Gateway激进压缩会话过长时不同场景不同策略。Preflight用户主动切换模型 → 预防性处理。Gateway会话自然增长 → 激进压缩。Compression 流程关键Memory 先 flush。防止压缩过程中丢失数据。七、统一 Message Format为什么坚持 OpenAI-specMessage Alternation Rules我之前不知道。Provider 会验证 message sequence。Malformed history 会被拒绝。Message Alternation RulesSystem 之后User → Assistant → User → Assistant → ...Tool callingAssistant (with tool_calls) → Tool → Tool → ... → Assistant规则- 绝不两个 assistant 连续- 绝不两个 user 连续- 只有 tool 可以连续并行 tool results为什么重要OpenAI、Anthropic、其他 providers 都验证违反规则 → API error统一格式降低 provider 兼容成本八、与 OpenClaw 的对比看完 Hermes 的设计我开始思考 OpenClaw。哪些可以借鉴维度HermesOpenClawInterruptible API✅ 后台线程中断❌ 未实现IterationBudget✅ 90 iterations 两级警告❌ 未实现Fallback Chain✅ Provider Auxiliary 分层❌ 未实现Compression✅ 50% / 85% 两级✅ contextPruningReasoning Extraction✅ 多 provider 格式⚠️ 部分支持ThreadPoolExecutor✅ 128 workers❌ exec toolOpenClaw 可借鉴优先级Interruptible API Call用户体验IterationBudget防止无限循环Fallback Chain系统鲁棒性Compression Thresholds上下文管理九、结语研究完这 9200 行我的结论是Hermes 不是写了一个循环。是设计了一个精密系统。可中断、有预算、能故障切换。六条设计哲学可中断用户不应该等待一个无法停止的请求有预算Agent 不应该无限循环消耗资源能切换一个 provider 失败不应该放弃整个任务统一格式多样性收敛到标准降低兼容成本分级压缩不同场景不同策略智能调度并发执行但 interactive tools 强制顺序这六条值得每一个 Agent 设计者学习。关键数据数据值Stars74,192 ⭐增长67%3天AIAgent 行数~9,200ThreadPoolExecutor128 workersIterationBudget90 iterationsCompression Thresholds50% / 85%学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】