ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

快速看懂 Hermes Agent 架构:一个对话循环如何撑起自学习 AI Agent

快速看懂 Hermes Agent 架构:一个对话循环如何撑起自学习 AI Agent 快速看懂 Hermes Agent 架构一个对话循环如何撑起自学习 AI Agent【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agentHermes Agent 是 Nous Research 出品的自学习 AI Agent 框架它的架构围绕一条对话循环展开核心不断调用模型、派发工具直到任务完成上下文压缩、提示词缓存、重试回退都围着这一条循环转。同一个 Agent 核心同时跑在终端 CLI、消息网关Telegram、Discord 等和桌面端上还能从完成过的任务里自动沉淀技能、在使用中迭代它们。拆 Hermes Agent 的 4 个核心模块从对话循环到提示词缓存agent/ 目录是核心所在其中 4 个模块最值得先读。conversation_loop.py把问模型、跑工具变成一个函数结论用户的一轮对话由run_conversation一个函数驱动文件头部注释写清了它的职责——模型调用、工具派发、重试、回退、上下文压缩、回合后钩子触发都在里面。这个文件有 8000 行但主流程一句话就能说完不断问模型它要调什么工具就执行什么把结果写回对话历史直到模型不再请求工具为止。一句话它是 Agent 的总控决定每一轮从哪里开始、在哪里结束。核心循环见 agent/conversation_loop.py。tool_executor.py 与 transports/工具并行跑、模型多接一家结论工具不在主流程里跑。tool_executor.py负责验证工具名、解析参数、丢进线程池执行并统一捕获异常——某个工具再慢再错也不会卡死主循环。模型侧的差异则藏在transports/目录里Anthropic、Bedrock、OpenAI Chat Completions、Codex 等每家提供商一个适配器上层循环只看到一个统一的调用接口换提供商不用改循环代码。一句话它把工具怎么跑模型怎么连从主流程里剥离出去循环代码不感知任何差异。执行器见 agent/tool_executor.py各提供商适配见 agent/transports/。prompt_builder.py系统提示词在整个会话中一个字节都不变结论这是最反直觉的模块。它负责组装系统提示词而项目对它有硬性要求系统提示词在整个会话生命周期内保持字节级稳定历史上下文不许中途改动工具集不许中途换。原因在按会话维度的提示词缓存——长对话每一轮都在复用缓存前缀任何一次失效都意味着重新为完整上下文付费。上下文压缩是改历史唯一的例外场景。一句话它用提示词的灵活性换缓存命中率直接收益是成本。组装逻辑见 agent/prompt_builder.py。5 步追踪一次完整调用用户消息如何变成执行结果以从 CLI 发出的一条消息为例可以按 5 步走通代码入口CLI 或网关把消息交给 Agent 实例agent_init.py完成初始化配置模型、工具集、最大轮次等参数。构建请求prompt_builder 拼好系统提示词加消息历史transports 层再包成当前提供商认得的格式。模型返回响应若带工具调用run_conversation把模型想调工具 X追加进历史。⚡ 工具执行tool_executor 验证工具名、解析参数线程池执行结果作为工具结果写回历史失败时记录错误而不中断回合。终止判断模型不再返回工具调用回合结束返回结果触达最大轮次或时间预算则直接收尾。另外当上下文逼近上限时循环会先压缩历史再问模型——这是唯一会改写历史的位置。AGENTS.md 的 3 条设计红线为什么提示词缓存被叫作神圣 仓库根目录有一份近 1800 行的 AGENTS.md改任何核心文件之前值得先读它。三条规则解释了项目的骨架按会话的提示词缓存神圣不可侵犯。改历史上下文、换工具集、中途重建系统提示词都会让缓存失效、把用户成本乘上去所以这些操作一律不做。核心是窄腰能力长在边上。每个新增的核心工具都会随每一次 API 调用发给模型成本由所有用户每轮分摊所以新功能按足迹阶梯逐级往上加扩展现有代码 → CLI 命令加技能 → 按服务开关的工具 → 插件 → MCP 服务器 → 新增核心工具最后手段。.env 只放密钥。所有行为配置——超时、阈值、功能开关——都进 config.yaml要求用户往 .env 里写非密钥配置的改动会被直接拒掉。这 3 条规则共同回答了一个问题为什么项目选择用插件和技能成长而不是让核心越写越厚——核心只留最稳定的部分易变的全部放边上。适合谁读接下来看什么想自建 Agent、或只用过调一次模型加一次工具的简单循环的开发者可以从这份代码里看到重试、回退、压缩、缓存如何在同一条循环里共存。延伸方向去skill_bundles.py、memory_manager.py里追它用中学的闭环或看 acp_adapter/ 了解如何把同一个核心接进 IDE。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表