<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>程默的博客 &#187; 会话搜索</title>
	<atom:link href="http://blog.chacuo.net/tag/%e4%bc%9a%e8%af%9d%e6%90%9c%e7%b4%a2/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chacuo.net</link>
	<description>web原理、web架构、web安全、web性能、服务器性能、服务器架构、服务器安全;你不能预知明天，但你可以利用今天。你不能样样顺利，但你可以事事尽力!</description>
	<lastBuildDate>Wed, 01 Jul 2026 14:52:01 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Hermes Agent 长久记忆技术架构解密：AI 代理如何真正做到&#8221;越用越聪明&#8221;</title>
		<link>http://blog.chacuo.net/1534.html</link>
		<comments>http://blog.chacuo.net/1534.html#comments</comments>
		<pubDate>Sun, 28 Jun 2026 14:07:57 +0000</pubDate>
		<dc:creator>程默</dc:creator>
				<category><![CDATA[ai]]></category>
		<category><![CDATA[AI记忆系统]]></category>
		<category><![CDATA[FTS5]]></category>
		<category><![CDATA[Hermes Agent]]></category>
		<category><![CDATA[motoagent]]></category>
		<category><![CDATA[motoagent.net]]></category>
		<category><![CDATA[会话搜索]]></category>
		<category><![CDATA[技能系统]]></category>
		<category><![CDATA[持久化记忆]]></category>
		<category><![CDATA[智能体记忆]]></category>
		<category><![CDATA[背景回顾]]></category>
		<category><![CDATA[自改进代理]]></category>
		<category><![CDATA[记忆架构]]></category>
		<category><![CDATA[记忆策展]]></category>
		<category><![CDATA[长久记忆]]></category>

		<guid isPermaLink="false">http://blog.chacuo.net/?p=1534</guid>
		<description><![CDATA[一、为什么记忆是 AI Agent 的核心 用过 AI 聊天的人都有这种感觉：每次打开一个新对话，AI 就像从 [...]]]></description>
				<content:encoded><![CDATA[<h2>一、为什么记忆是 AI Agent 的核心</h2>
<p>用过 AI 聊天的人都有这种感觉：每次打开一个新对话，AI 就像从来没认识过你一样，一切都要重新交代。你上周告诉过它的偏好、项目配置、踩过的坑——全都不记得了。</p>
<p>这正是传统 AI 助手的最大短板：没有记忆。而 Hermes Agent 之所以能被称为&quot;越用越聪明的 AI 代理&quot;，最核心的原因就是它拥有一个完整的长久记忆技术架构。</p>
<p>在 <a href="https://motoagent.net/" target="_blank">MotoAgent</a> 中使用的 Hermes Agent，是目前唯一内置了完整学习回路的 AI 代理。它的记忆系统不是简单的&quot;存个聊天记录&quot;，而是一套精密的分层记忆架构。</p>
<h2>二、两层核心记忆文件</h2>
<p>Hermes Agent 的记忆系统由两个纯文本文件组成，存放在本地磁盘上：</p>
<table style="border-collapse:collapse;border:1px solid #d0d0d0;width:100%;margin:10px 0;">
<tr>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">文件</th>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">用途</th>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">容量限制</th>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">约合 Token</th>
</tr>
<tr>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">MEMORY.md</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">代理的个人笔记</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">2,200 字符</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">约 800 tokens</td>
</tr>
<tr>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">USER.md</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">用户画像配置</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">1,375 字符</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">约 500 tokens</td>
</tr>
</table>
<h3>MEMORY.md —— 代理的&quot;笔记本&quot;</h3>
<p>这个文件存储的是代理在工作过程中积累的环境事实、项目约定、工具使用技巧等。比如：</p>
<ul>
<li>当前机器的操作系统和已安装的工具</li>
<li>项目使用的技术栈和配置规范</li>
</ul>
<ul>
<li>踩过的坑和解决方案</li>
<li>用户反复纠正过的细节</li>
</ul>
<h3>USER.md —— 用户的&quot;档案卡&quot;</h3>
<p>这个文件存储的是关于用户个人的信息，包括：</p>
<ul>
<li>名字、角色、时区</li>
<li>沟通偏好（喜欢简洁还是详细）</li>
</ul>
<ul>
<li>禁忌和雷区（哪些事不要做）</li>
<li>工作习惯和技术水平</li>
</ul>
<p>这两个文件加起来约 1,300 tokens，在每次对话开始时作为系统提示的一部分注入到上下文中。这意味着——每一句话，Hermes Agent 都带着对你的记忆在回复。访问 <a href="https://motoagent.net/" target="_blank">MotoAgent</a> 可以亲身体验这一效果。</p>
<h2>三、记忆加载机制：冻结快照模式</h2>
<p>Hermes Agent 采用了一个巧妙的设计——&quot;冻结快照&quot;模式。具体来说：</p>
<ul>
<li>每次会话开始时，从磁盘读取 MEMORY.md 和 USER.md</li>
<li>将内容格式化为一个固定的文本块，注入系统提示</li>
</ul>
<ul>
<li>这个文本块在整个会话期间<strong>不会变化</strong></li>
<li>即使用户通过记忆工具修改了内容，也要等到下一次会话才会反映到提示中</li>
</ul>
<p>这样做的好处是什么？答案是 <strong>性能</strong>。固定不变的提示内容可以让 LLM 复用前缀缓存，大幅降低每次请求的 Token 消耗和处理时间。也就是说，带着记忆回复，但几乎不增加额外成本。</p>
<h2>四、记忆写入与自改进循环</h2>
<p>很多人会问：记忆是自动存的还是手动写的？答案是——<strong>两者都有</strong>，但 Hermes Agent 会主动替你管理。</p>
<h3>后台自改进回顾</h3>
<p>每次对话结束后，Hermes Agent 都会在后台自动运行一次&quot;自改进回顾&quot;。这个回顾会：</p>
<p>1. 审视本次对话的内容</p>
<p>2. 判断有没有值得记住的新信息</p>
<p>3. 如果有，自动写入 MEMORY.md 或 USER.md</p>
<p>4. 评估是否需要创建新的技能或改进已有的技能</p>
<p>整个过程是静默运行的，你不需要做任何操作。默认情况下，界面上会显示一行&quot;Memory updated&quot;告诉你记忆已更新。</p>
<h3>技能自主创建</h3>
<p>除了保存事实性信息，Hermes Agent 还能从成功完成的任务中创建可复用的技能。技能存储在 ~/.hermes/skills/ 目录下，每个技能包含一份完整的 SKILL.md 说明书。</p>
<p>技能的完整生命周期包括：</p>
<p>1. <strong>创建</strong>：复杂任务完成后自动生成</p>
<p>2. <strong>使用</strong>：下次遇到类似任务时自动加载</p>
<p>3. <strong>改进</strong>：在使用过程中自我修正和优化</p>
<p>4. <strong>策展</strong>：30 天未使用标记为&quot;陈旧&quot;，90 天未使用自动归档</p>
<p>5. <strong>归档</strong>：归档到 .archive 目录，随时可恢复</p>
<p>这套机制让 Hermes Agent 的能力随着使用时间不断增长——做得越多、会的越多。</p>
<h2>五、跨会话检索：FTS5 全文搜索</h2>
<p>前面说的 MEMORY.md 和 USER.md 只能存 3,000 多字符，放不下所有历史信息。那更早之前的对话怎么查？</p>
<p>Hermes Agent 将所有历史会话存储在 SQLite 数据库中，并建立了 FTS5 全文搜索索引。当用户提到之前做过的事情时，Agent 可以通过 session_search 工具：</p>
<ul>
<li>搜索过去所有会话中的相关对话</li>
<li>查看匹配会话的完整内容</li>
</ul>
<ul>
<li>在会话内上下滚动浏览</li>
</ul>
<table style="border-collapse:collapse;border:1px solid #d0d0d0;width:100%;margin:10px 0;">
<tr>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">对比维度</th>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">持久化记忆</th>
<th style="background:#4a90d9;color:#fff;padding:10px 12px;border:1px solid #3a7bc8;text-align:left;font-weight:600;">会话搜索</th>
</tr>
<tr>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">容量</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">约 1,300 tokens</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">不限（所有历史会话）</td>
</tr>
<tr>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">速度</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">即时（在系统提示中）</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">约 20ms 搜索</td>
</tr>
<tr>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">成本</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">每次提示都占用</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;">按需使用，无额外 LLM 调用</td>
</tr>
<tr>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">用途</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">关键事实时刻可用</td>
<td style="padding:8px 12px;border:1px solid #e0e0e0;background:#f4f6f8;">查找特定历史对话</td>
</tr>
</table>
<p>持久化记忆负责&quot;时刻记得&quot;，会话搜索负责&quot;随时翻查&quot;——两者互补，构成了完整的记忆覆盖。</p>
<h2>六、记忆管理：满了怎么办</h2>
<p>2,200 字符的 MEMORY.md 听起来不大，但如果满了怎么办？</p>
<p>Hermes Agent 的设计哲学是：<strong>不是存得越多越好，而是存得越精越好</strong>。当记忆超过 80% 容量时，代理会自动做以下事情：</p>
<p>1. 读取当前所有记忆条目</p>
<p>2. 判断哪些已经过时或不再重要</p>
<p>3. 合并相似或重复的条目</p>
<p>4. 删除不再相关的旧信息</p>
<p>5. 腾出空间存入新的有价值信息</p>
<p>这个过程不是自动触发的，而是当工具返回&quot;超出容量限制&quot;的错误后，Agent 会主动执行合并操作。这种&quot;人肉压缩&quot;的设计确保了记忆空间永远留给最有价值的信息。</p>
<h2>七、拓展：外部记忆提供者</h2>
<p>除了内置的两层记忆系统，Hermes Agent 还支持 8 种外部记忆提供者，包括语义搜索、知识图谱等高级存储方案。这些外部提供者可以：</p>
<ul>
<li>提供向量化语义搜索（不只是关键词匹配）</li>
<li>实现分层检索（先查摘要、再查细节）</li>
</ul>
<ul>
<li>跨会话上下文注入</li>
</ul>
<p>但即使不使用任何外部提供者，内置的两层记忆 + FTS5 搜索已经足够应对绝大多数日常使用场景。</p>
<h2>八、总结</h2>
<p>Hermes Agent 的记忆架构可以用一句话概括：<strong>精巧的设计胜过庞大的存储</strong>。</p>
<p>两个小小的文本文件，加上一个 SQLite 全文搜索，再加上后台自改进循环——这套组合拳让 Hermes Agent 在不到 2,000 tokens 的固定开销下，实现了真正的&quot;越用越聪明&quot;。</p>
<p>与市面上其他 AI Agent 相比，Hermes Agent 最大的不同不是模型更强或工具更多，而是它拥有一个真正的<strong>学习回路</strong>——每一次对话都不是终点，而是下一次更好服务的起点。</p>
<p>去 <a href="https://motoagent.net/" target="_blank">MotoAgent</a> 下载桌面端，创建一个配置了 Hermes Agent 后端的 Agent，用一段时间你就会发现——它真的在一天天变聪明。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chacuo.net/1534.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
