Hermes 满配总览:把一个能聊天的终端 Agent,变成一个可持续进化的个人智能体系统

发布时间:2026/7/9 6:01:18
Hermes 满配总览:把一个能聊天的终端 Agent,变成一个可持续进化的个人智能体系统 Hermes 满配总览把一个能聊天的终端 Agent变成一个可持续进化的个人智能体系统很多人理解的 Agent 满配是装尽可能多的插件、接尽可能多的 MCP、开尽可能多的工具、配尽可能复杂的多 Agent让它看起来像一个很酷的 AI 控制台。但真正用一段时间后你会发现这种满配很容易变成另一种负担工具太多Agent 不知道什么时候该用Skill 太多选择成本变高Memory 太乱长期偏好被临时信息污染MCP 太多Token 和权限风险都变大Profile 太多自己都不知道哪个 Agent 记住了什么。这篇文章的目标只有一个怎么把 Hermes 从一个能聊天、能执行命令的终端 Agent配置成一个真正能长期运行、持续学习、主动观察外部世界、沉淀个人能力的 Agent 系统。一、先认识 Hermes 到底是什么Hermes Agent 是 Nous Research 出品的自进化 AI Agentself-improving AI agent。它不是绑死在某个 IDE 里的编程副驾也不是套了一层壳的单 API 聊天机器人。它的核心定位用官方一句话概括它是唯一一个内置学习闭环的 Agent——从经验中创建 Skill、在使用中改进 Skill、定期 nudge 自己把知识沉淀进 Memory、搜索自己过去的对话历史并在跨会话之间构建一个关于你是谁的持续深化的模型。这句话里藏着 Hermes 区别于普通 Agent 的四个关键能力1. Agent 自策展记忆agent-curated memory。Memory 不是被动存储Agent 自己判断哪些信息值得长期保留并通过周期性 nudge 主动沉淀。这个机制的代码基础是agent/memory_manager.py的MemoryManager编排器它统一管理内置记忆和外部 provider在run_agent.py里作为单一集成点调用build_system_prompt()、prefetch_all()、sync_all()。2. 自主 Skill 创建与自我改进。复杂任务结束后 Agent 会自动把可复用的流程沉淀成 SkillSkill 在后续使用中还会被迭代改进。这背后有完整的生命周期管理skill_manage工具支持create/patch/edit/delete/write_file/remove_file六种动作后台 Curator 系统agent/curator.py跟踪每个 Skill 的use_count、view_count、patch_count、last_activity_at自动把过时的归档到~/.hermes/skills/.archive/永不删除可恢复。3. FTS5 跨会话召回。所有 CLI 和消息平台会话都存进~/.hermes/state.dbSQLite FTS5session_search工具做全文本检索查询延迟约 20ms不需要额外 LLM 调用。这让上周聊过的事真正想得起来。4. Honcho 辩证式用户建模dialectic user modeling。通过多轮对话持续构建关于你的深度模型而不只是存一段静态的 USER.md。Honcho 是 8 个外部记忆 provider 之一其余是 Mem0、Supermemory、ByteRover、Hindsight、Holographic、OpenViking、RetainDB。二、架构核心AIAgent 同步编排引擎理解 Hermes 的架构关键是理解AIAgentrun_agent.py约 1.2 万行。它是唯一的同步编排引擎同时服务 CLI、Gateway、Cron、ACP、Batch、API Server 全部入口。这意味着你在 CLI 里跑通的东西迁移到 Telegram 或 Cron 里行为一致。AIAgent.__init__接收约 60 个参数credentials、routing、callbacks、session context、budget、credential pool 等转发到agent/agent_init.py::init_agent做实际初始化。核心循环在agent/conversation_loop.py::run_conversation约 3900 行结构如下while (api_call_count agent.max_iterations and agent.iteration_budget.remaining 0) or agent._budget_grace_call:agent._checkpoint_mgr.new_turn()if agent._interrupt_requested:breakapi_call_count 1if agent._budget_grace_call:agent._budget_grace_call Falseelif not agent.iteration_budget.consume():breakresponse client.chat.completions.create(...)if response.tool_calls:for tool_call in response.tool_calls:result handle_function_call(...)else:return response.content几个关键设计IterationBudgetagent/iteration_budget.py是线程安全的 consume/refund 计数器。父 Agent 上限 90max_iterations子 Agent 上限 50来自delegation.max_iterations。execute_code的程序化工具调用迭代会通过refund()退还不消耗预算——这鼓励 Agent 用脚本合并多步操作。_budget_grace_call机制当预算耗尽时LLM 收到一次注入通知允许最后一次 API 调用来总结已完成的工作。没有中间压力警告避免模型过早放弃issue #7915。如果这次 grace call 仍未产生文本系统会强制一条 user 消息要求总结。中断检查每轮循环顶部检查_interrupt_requested。你随时可以发新消息打断并重定向它。中断是线程级的_set_interrupt(False, agent._execution_thread_id)每个 turn 开始前重置。达到上限时的处理handle_max_iterations打印警告、追加 summary_request user 消息“You’ve reached the maximum number of tool-calling iterations…”、剥离 tools 参数、做一次最终摘要调用。三、系统提示的三层结构build_system_prompt()agent/system_prompt.py把系统提示分成三层用\n\n拼接层内容稳定性stable身份SOUL.md 或 DEFAULT_AGENT_IDENTITY、工具指引、skills prompt、environment/platform hints极稳定prefix cache 的基础contextcaller system_message 上下文文件AGENTS.md/.cursorrules来自 TERMINAL_CWD中等稳定volatilememory 快照、USER.md profile、外部 memory provider 块、时间戳/session/model/provider 行会话级冻结系统提示一次性构建并缓存到agent._cached_system_prompt每个 session 复用以保持 prefix cache 热。唯一允许重建的时机是上下文压缩invalidate_system_prompt。所有 plugin 的pre_llm_call上下文注入都是注入user message绝不修改 system prompt——这是为了避免破坏缓存。这条规矩在源码注释里被反复强调Prompt Caching Must Not Break。四、Prompt Cachingsystem_and_3 策略Hermes 的 prompt caching 实现在agent/prompt_caching.py79 行纯函数无状态策略名system_and_3——共 4 个cache_controlbreakpointssystem prompt1 个最后 3 条 non-system 消息3 个全部使用同一 TTL默认5m可配1h。预期效果单 session 多轮对话 input token 成本降低约 75%。核心函数apply_anthropic_cache_control()返回消息的 deepcopy不修改原列表自动检测适用范围原生 Anthropic、OpenRouter、第三方 Anthropic-compatible 网关。这就是为什么 Hermes 强制会话进行中绝不改变系统提示——一旦 system prompt 变了这 4 个 breakpoint 全部失效75% 的成本节省瞬间归零。五、Provider 系统30 个内置 ProviderHermes 支持 30 个内置 model providerplugins/model-providers/下包括anthropic、openrouter、deepseek、gemini、nvidia、novita、xiaomi、zaiGLM、kimi-coding、minimax、qwen-oauth、stepfun、xai、ollama-cloud、bedrock、azure-foundry、copilot、huggingface、arcee、gmi、kilocode 等。每个 provider 是一个ProviderProfiledataclassproviders/base.py关键字段name、api_modechat_completions/codex_responses/anthropic_messages、aliases、env_vars、base_url、auth_typeapi_key/oauth_device_code/oauth_external/copilot/aws_sdk、default_aux_model用于 side task 的便宜模型、fixed_temperatureOMIT_TEMPERATURE表示完全不发温度参数。Provider 解析是lazy discovery首次get_provider_profile()时触发三步扫描Bundled 插件repo/plugins/model-providers/name/User 插件{VAR}语法不支持$VAR。几个关键 section 的默认值辅助任务auxiliary有独立的 provider/model 配置覆盖 vision、web_extract、compression、title_generation、curator 等 12 种 side task。_resolve_auto的 fallback 链是主 provider → openrouter → nous → custom endpoint → api-key provider。支付失败HTTP 402会自动标记 provider 不健康10 分钟 TTL并尝试下一个。十、Hermes 的核心设计哲学Prompt 稳定性。会话进行中绝不改变系统提示。唯一允许改变上下文的时机是上下文压缩。可观察、可中断的执行。每一步都有中断检查、预算跟踪和 grace call。平台无关的核心。AIAgent 是唯一编排引擎所有入口行为一致。松耦合registry check_fn。每个工具注册时带check_fn运行时判断可用性。理解了这些你就明白为什么满配不是一次性堆满每一层都要在不破坏 prompt 稳定性、不撑爆上下文、不引入权限风险的前提下接入。这 12 层对应 20 篇博客建议跟着自己的节奏慢慢上手。延伸阅读与交流本文涉及的Hermes Agent自进化智能体技术体系目前已有系统化的深度学习资源可供参考。中国通信工业协会通信和信息技术创新人才培养工程项目办公室将于近期组织相关技术专题分享围绕本文讨论的AI原生架构、智能体工作流、自进化数据层等方向展开系统讲解。专题信息主题AI原生Hermes自进化智能体系统时间2026年8月22-23日形式线上直播内容方向AI原生架构 · Hermes智能体拆解 · 全栈扩展 · 智能自动化 · 产品级实战 · Context Engine · 自进化数据层分享嘉宾王老师GavinAgentic AI企业联合创始人兼CTO十余年硅谷AI系统工程经验。长期深耕NLP、强化学习、可控AI与智能体系统架构提出语言即控制Language as Control原创范式在RLHF、PPO、DPO、GRPO等方向有系统化工程实践推动智能体技术在社交媒体、医疗、金融、法律、教育等专业场景落地。技术交流联系人赵民Misszhao99aiHermes Agent技术文档https://hermes-agent.nousresearch.com/docs/