system prompt assembly
prompt_builder 把身份、memory 指导、session_search 指导、skills、项目上下文和环境提示拼成 system prompt。
prompt它最关键的不是某一个 memory provider,而是把 prompt 组装、历史检索、内建记忆和外部 provider 记忆拆成并行链路,再由压缩点把会话切成新 session。
这一段只讲模型真正可见的材料,不把所有底层状态都算进 context。
它把 system prompt、历史检索、压缩和 provider 插件放成并行层,而不是一个统一大 memory。
先看组成块,再看顺序。这里最容易帮助普通读者分清“哪些东西会真的进模型”。
prompt_builder 把身份、memory 指导、session_search 指导、skills、项目上下文和环境提示拼成 system prompt。
prompt.hermes.md/HERMES.md、AGENTS.md、CLAUDE.md、.cursorrules 以及 @file/@folder/@git/@diff/@url 会在发送前展开。
context-referencesContextCompressor 负责旧 tool 输出摘要、头尾保护、结构化压缩,以及 tool call / result 对齐修复。
compressorsession_search 基于 state.db 中的 transcript 和 FTS5 检索,把命中的历史摘要回填到当前上下文。
retrievalgateway/session 通过 JSONL + SQLite 双写保存轨迹。
storage不要把记忆想成一个抽象黑盒。这里直接按时间顺序讲“它什么时候生成、存哪、怎么再回来”。
本地 memory、provider memory 和压缩重建会话是三条并行链,在 flush/compact 时合流。
很多误解都来自把 transcript、summary、文件、数据库和向量库混成一层看。
会话库、jsonl 镜像、文件型 memory 和 provider 配置层各司其职。
这部分是防误解,不是额外功能清单。
把 session_search 当成 provider memory,导致历史检索和长期记忆混成一条链。
hermes-agent 的核心不是“记忆功能”,而是上下文、持久化和 provider 并行编排。
每个结论都要能往下追。这里列的都是站内证据入口,不是营销材料。
如果你想继续看原文、行号和分专题分析,可以直接跳到证据页。
站内会把这个 repo 对应的 docs 文件按行展开,方便核对路径和行号。
你也可以直接从总览、仓库入口页和 5 篇专题页继续追。