上一篇拆解了 Prompt 构建器搞清楚了四层记忆怎么有序注入 system prompt最大化前缀缓存命中率。这一篇我们进入持久记忆体系的最后一块拼图——用户建模。说一个很多人踩过的坑你给 Agent 接了一堆记忆后端MEMORY.md 里也写了用户偏好但 Agent 依然每次都要重新认识你。你说我不喜欢太长的代码注释三轮对话后它又写了一堆注释。你告诉它我用 Python别给我写 TypeScript 示例下一篇文章里还是贴了 TS 代码。根本原因是你写的是单次记录不是用户模型。一条不喜欢注释的笔记和这个用户在 Python 代码风格上有强烈主见的用户表征是完全不同的东西。Hermes 通过 Honcho 插件解决这个问题。Honcho 不只是记笔记——它在每轮对话后异步跑一个辩证推理循环把散碎的对话事实提炼成结构化的用户表征。这篇文章带你读懂它怎么工作。01 用户建模 vs 用户记忆一字之差天壤之别先搞清楚这个区别否则后面的设计细节都会显得莫名其妙。用户记忆Memory一条条独立事实的集合。“用户叫 James”、“不喜欢注释”、“在做 LangChain 系列”。本质上是键值对人工写入模型读取。用户模型User Model对用户的动态表征。“这个用户是一个有强烈风格主见的 Python 开发者正在系统地学习 LangChain 生态更喜欢代码驱动的解释而非抽象描述对 AI Agent 架构有中高级理解水平”。这是推理出来的不是直接存进去的。两者的关键差异维度用户记忆用户模型来源人工写入 / 显式标注对话推理 / 自动提炼更新手动追加每轮对话后异步更新表达形式键值对 / 列表自然语言表征 Peer Card颗粒度单条事实跨会话整体画像矛盾处理新条目覆盖旧条目手动Honcho 自动辩证修正注入方式直接放进 system promptprefetch 辩证推理后注入Hermes 的内置记忆系统MEMORY.md USER.md属于用户记忆这一层。Honcho 提供的是用户模型这一层。两者不是竞争关系是互补的。02 Honcho 架构五个工具三种召回模式Honcho 向 Agent 暴露五个工具按成本从低到高profile读 Peer Card无 LLM→search语义检索→context会话快照→reasoningLLM 合成回答→conclude写入持久化结论。三种召回模式决定了这些工具如何被使用# plugins/memory/honcho/__init__.py — get_tool_schemas()ifselfcontextreturn# 纯自动注入不暴露工具elifselftoolsreturnlist# 只暴露工具不自动注入else# hybrid默认returnlist# 两者兼备自动注入 工具都可用大多数人用默认的hybrid模式就够了——低成本的基础上下文自动注入复杂场景 Agent 可以主动深挖。context模式适合只想要被动感知的场景tools模式适合 Agent 需要主动推理才决定是否查询用户上下文的场景。03 辩证推理循环对话结束后 Agent 在干什么这是 Honcho 最核心也最容易被忽视的设计。每轮对话结束后Honcho 会在后台异步跑一个推理循环dialectic。它不是简单地记下用户说了什么而是让一个 LLM 去问 Honcho“基于历史对话这个用户是什么样的人”Hermes 支持最多 3 个 Pass并有早停机制——Pass 0 信号充分就跳过后续 Pass# plugins/memory/honcho/__init__.pydef_run_dialectic_depthself, query: strstrnotselfliststrforinrangeselfif0andandself1break# 早停上一 Pass 信号足够省掉后续 LLM 调用selfselfselfselfuserorforinreversedifandreturnreturnsignal_sufficient 判定标准结果长度 300 字符或有结构化内容##标题、•列表、数字编号。Pass 0 满足则 Pass 1 和 Pass 2 整个跳过。每个 Pass 的推理深度reasoning_level也是动态的默认按比例分配depth3 时Pass 0 用minimal快速侦察、Pass 1 用base标准深度、Pass 2 用low轻量对账。还有查询长度启发式——用户 query 越长120字 或 400字自动把 reasoning_level 往上拨 1~2 档。04 Peer Card 与 conclude写入用户画像的两种方式Honcho 里有两个层次的用户表征Representation表征Honcho 后端自动维护的动态用户描述。每次 dialectic 推理后更新格式不固定是 Honcho 内部的活文档。Peer Card名片从 representation 里提炼出的固化事实列表。格式是list[str]每条是一个明确事实可读可写。# Python: 读取 Peer Card 和写入持久化结论user# 示例: [用户是 Python 开发者, 偏好简短注释, 正在学 LangChain]用户强烈偏好 Python看到 TypeScript 示例会明确反对user hljs // TypeScript: 通过 Hermes 工具接口调用 conclude客户端视角constawaittoolsinvokenamehoncho_concludeargsconclusion用户强烈偏好 Python看到 TypeScript 示例会明确反对peeruserhoncho_conclude和set_peer_card的区别前者是增量追加一条结论Agent 实时发现特征时用后者是批量重写整张名片外部系统整体刷新画像时用。Honcho 的辩证推理会自动更新 representation无需干预。05 Prefetch 机制每轮对话前的后台预热直接消费缓存结果零等待第一轮特殊处理同步等待最多 8s超时则下一轮消费)Honcho 的上下文注入不是每轮对话同步等待而是后台预热下轮消费。时序是这样的Turn N用户发消息 → prefetch() 消费 Turn N-1 已预热的 dialectic 结果零等待 → 把用户上下文注入 promptAgent 回复 → queue_prefetch() 异步启动新的 dialectic 线程 Turn N1用户再次发消息 → prefetch() 消费 Turn N 已预热的结果 ← 零等待第一轮特殊处理同步等待最多 8 秒。超时后 dialectic 结果在第二轮注入第一轮走 base context纯 API通常 1s。Base context 和 dialectic 是两个独立层。Base context 来自peer.context()API缓存后按contextCadence节奏刷新dialectic 是 LLM 推理结果按dialecticCadence节奏刷新两者互不干扰各自有 cache。![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlhttp%3A%2F%2Fcdn.zhipoai.cn%2Fe17ac6cc.jpg%20%22%E5%8F%8C%E5%B1%82%E7%BC%93%E5%AD%98%E6%9E%B6%E6%9E%84%E5%9B%BE%EF%BC%9A%E4%B8%8A%E5%B1%82%20base_context_cache%20%E6%9D%A5%E8%87%AA%20peer.context(pos_idimg-eIRgKglA-1785331219022) 按 contextCadence 刷新下层 _prefetch_result 来自 dialectic 按 dialecticCadence 刷新两层合并后截断到 context_tokens 预算)06 节奏控制与空置退避省钱的细节每次 dialectic 都要调用 Honcho 的 LLM有成本。Hermes 设计了两层成本控制节奏控制dialecticCadence2表示每 2 轮才跑一次。轻度使用者设为 3~5 轮完全够用。空置退避更精妙如果 Honcho 后端连续返回空结果间隔自动加宽上限是基础间隔 × 8dialecticCadence2, empty_streak0 → 每 2 轮正常 dialecticCadence2, empty_streak3 → 每 5 轮23 dialecticCadence2, empty_streak8 → 每 10 轮min(28, 2×8)10这对新用户非常友好第一次使用时没有历史数据Honcho 连续返回空退避间隔自动拉大省掉大量无效 API 调用。有了一定积累后 streak 清零频率回归正常。还有一个陈旧结果检测如果某轮预热的 dialectic 结果超过dialecticCadence × 2轮没被消费比如期间全是短命令会直接丢弃下一轮重新推理。防止把几轮前的过时用户上下文注入当前对话。07 三种 Peer用户、AI、自定义实体Honcho 不只是对用户建模还可以对 AI 本身建模甚至任意自定义实体。内置两个别名peeruser代表人类用户peerai代表 AI 自身。也可以传任意字符串作为自定义 peer ID。AI PeeraiHermes 可以记录 AI 自己的特征——它习惯的代码风格、回答偏好、如何解释技术概念。Honcho 不只是用户镜也是 Agent 的自我认知系统形成人类了解 AI和AI 了解人类的双向建模。observation 配置决定谁被谁观察四个独立开关默认全部 True开关含义关掉的效果user_observe_me用户自己的发言被记录用户表征不更新user_observe_others用户可看到 AI 的发言交叉学习用户建模不感知 AI 行为ai_observe_meAI 的发言被记录AI 身份模型不更新ai_observe_othersAI 可看到用户的发言AI 建模不感知用户行为如果只想对用户建模、不想维护 AI 自身模型把ai_observe_me和ai_observe_others都关掉。常见坑坑 1装了 Honcho没有任何效果最常见原因api_key没配置但is_available()只做离线检查不报错。检查方法cat ~/.hermes/honcho.json | python3 -c import sys,json; print(json.load(sys.stdin).get(api_key,未配置)[:10])坑 2Peer Card 总是空的不是 Bug。空卡返回的 hint 说清楚了observation 被禁用、对话太少dialectic 还没跑够、或自托管 Honcho 版本 3.x 不支持 peer card API。先用honcho_reasoning验证后端是否有数据再判断根因。坑 3第一轮对话等待时间超 8 秒把honcho.json里的timeout调低推荐 3s。超时后 dialectic 结果在第二轮注入第一轮走 base context通常 1s。坑 4cron 任务污染用户表征Hermes 有专门的 cron guard检测到agent_contextcron或platformcron时直接把_cron_skippedTrue整个插件跳过不写入任何数据。你不需要手动处理但自建任务要确保传对 context 字段。坑 5dialectic 推理结果和当前对话不匹配说明用户话题突然切换但 pending result 是上一个话题推理的。陈旧结果检测会自动丢弃——(当前轮次 - fired_at) dialecticCadence × 2时丢弃并重新推理。通常无需干预。总结Honcho 不是记忆存储是用户模型推理引擎。它通过辩证推理把散碎对话事实提炼成结构化用户表征让 Agent 越用越懂你。辩证推理dialectic是核心竞争力。多 Pass 早停 冷/热启动提示每轮后台异步跑下轮消费结果零阻塞主响应链路。Prefetch 双层架构成本与效果兼顾。Base context纯 API快 Dialectic supplementLLM 推理慢但深分开缓存、分开刷新节奏。节奏控制 空置退避是省钱设计的精华。dialecticCadence控制最小频率empty_streak自动退避避免对空载后端的无效轮询。Peer 不止用户AI 也可以被建模。peerai让 Honcho 维护 Agent 的自我表征四个observation开关精细控制谁被谁观察形成双向进化的用户-AI 关系模型。学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%免费】