<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>EverOS on KnightLi的博客</title>
        <link>https://knightli.com/tags/everos/</link>
        <description>Recent content in EverOS on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sat, 06 Jun 2026 22:26:00 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/everos/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>EverOS 怎么用？给 AI Agent 做长期记忆的本地框架</title>
        <link>https://knightli.com/2026/06/06/everos-ai-agent-memory-framework/</link>
        <pubDate>Sat, 06 Jun 2026 22:26:00 +0800</pubDate>
        
        <guid>https://knightli.com/2026/06/06/everos-ai-agent-memory-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;EverMind-AI/EverOS&lt;/code&gt; 是一个给 AI Agent 和聊天应用做长期记忆的开源 Python 框架。它的目标不是再做一个聊天机器人，而是把对话、Agent 执行轨迹和文件知识，整理成结构化、可检索、会演化的记忆层。&lt;/p&gt;
&lt;p&gt;它最有意思的地方是存储设计：EverOS 不把记忆锁进黑盒数据库，而是把 Markdown 当作 Source of Truth。你可以直接打开、编辑、grep、用 Git 版本管理，甚至放进 Obsidian 里看。&lt;/p&gt;
&lt;h2 id=&#34;它解决什么问题&#34;&gt;它解决什么问题
&lt;/h2&gt;&lt;p&gt;很多 Agent 的“记忆”其实只是短期上下文：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;今天聊过，明天忘了；&lt;/li&gt;
&lt;li&gt;一个工具知道的东西，另一个工具不知道；&lt;/li&gt;
&lt;li&gt;用户偏好、项目经验、失败案例都散在聊天记录里；&lt;/li&gt;
&lt;li&gt;RAG 能搜文件，但不一定能沉淀“经历过的事”；&lt;/li&gt;
&lt;li&gt;记忆系统一旦依赖复杂数据库，小团队维护成本就上来了。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;EverOS 想做的是更轻量的长期记忆底座。它把用户侧记忆和 Agent 侧记忆分开：用户有 Profile、Episodes、Facts、Foresights；Agent 有 Cases 和 Skills。这样不只是“记住一句话”，而是能逐步积累人、任务、经验和流程。&lt;/p&gt;
&lt;h2 id=&#34;技术结构&#34;&gt;技术结构
&lt;/h2&gt;&lt;p&gt;README 里把 EverOS 的核心原则说得很清楚：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markdown as Source of Truth：所有记忆最终落到 &lt;code&gt;.md&lt;/code&gt; 文件；&lt;/li&gt;
&lt;li&gt;Lightweight three-piece storage：Markdown + SQLite + LanceDB；&lt;/li&gt;
&lt;li&gt;EverAlgo 负责记忆提取算法，EverOS 负责编排和持久化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;存储布局大致是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.everos/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── default_app/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── default_project/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       ├── users/&amp;lt;user_id&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       │   ├── user.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       │   ├── episodes/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       │   ├── .atomic_facts/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       │   └── .foresights/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       └── agents/&amp;lt;agent_id&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│           ├── agent.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│           ├── .cases/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│           └── skills/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── .index/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── sqlite/system.db
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── lancedb/*.lance/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Markdown 是真相源，SQLite 管状态和队列，LanceDB 管向量、BM25 和 scalar filter。这个组合比 MongoDB、Elasticsearch、Milvus、Redis、Kafka 全家桶轻很多，也更适合个人开发者和小团队。&lt;/p&gt;
&lt;h2 id=&#34;快速开始&#34;&gt;快速开始
&lt;/h2&gt;&lt;p&gt;安装方式很简单：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv pip install everos
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install everos
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;初始化配置：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;everos init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后启动服务：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;everos server start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;EverOS 的 endpoint stack 兼容 OpenAI protocol，可以接 OpenAI、OpenRouter、vLLM、Ollama、DeepInfra 等服务。你只需要在 &lt;code&gt;.env&lt;/code&gt; 里调整对应的 &lt;code&gt;BASE_URL&lt;/code&gt; 和 API Key。&lt;/p&gt;
&lt;p&gt;如果要处理图片、PDF、音频、Office 文档等非文本内容，可以安装多模态扩展：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;everos[multimodal]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Office 文档转换依赖 LibreOffice。没有 LibreOffice 时，PDF、图片、音频等不受影响，但 &lt;code&gt;.doc&lt;/code&gt;、&lt;code&gt;.docx&lt;/code&gt;、&lt;code&gt;.ppt&lt;/code&gt;、&lt;code&gt;.pptx&lt;/code&gt;、&lt;code&gt;.xls&lt;/code&gt;、&lt;code&gt;.xlsx&lt;/code&gt; 这类 Office 文件会处理失败。&lt;/p&gt;
&lt;h2 id=&#34;适合哪些场景&#34;&gt;适合哪些场景
&lt;/h2&gt;&lt;p&gt;EverOS 更适合这些应用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI 编程助手长期记住项目约定、踩坑记录和常用流程；&lt;/li&gt;
&lt;li&gt;多 Agent 协作时共享长期记忆；&lt;/li&gt;
&lt;li&gt;个人聊天助手记住偏好、经历和长期目标；&lt;/li&gt;
&lt;li&gt;企业内部知识助理把文件知识和对话经验一起沉淀；&lt;/li&gt;
&lt;li&gt;科研、数据分析、运营等任务需要跨会话持续积累案例；&lt;/li&gt;
&lt;li&gt;想把记忆放在本地文件里，而不是完全交给云端平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它不太适合只做简单 FAQ。FAQ 用普通 RAG 就够了。EverOS 的价值在于“记忆会随着使用变厚”，而不是只搜静态资料。&lt;/p&gt;
&lt;h2 id=&#34;使用边界&#34;&gt;使用边界
&lt;/h2&gt;&lt;p&gt;长期记忆听起来很美，但也有几个坑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;记错比忘记更危险，记忆提取需要人工校验；&lt;/li&gt;
&lt;li&gt;用户隐私和敏感信息必须可查看、可删除、可导出；&lt;/li&gt;
&lt;li&gt;Agent 不能因为记忆存在就盲目信任旧结论；&lt;/li&gt;
&lt;li&gt;多用户、多项目、多 Agent 的隔离要设计清楚；&lt;/li&gt;
&lt;li&gt;Markdown 可编辑是优点，也意味着你要处理手动修改后的索引同步。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 EverOS 更适合被当成基础设施，而不是直接当最终产品。你需要在应用层决定：哪些内容能记、什么时候记、记多久、谁能读、错了怎么改。&lt;/p&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;EverOS 的设计很讨喜：用 Markdown 做真相源，用 SQLite 和 LanceDB 做索引，把长期记忆从黑盒数据库里拉回到可读、可改、可版本管理的文件系统里。&lt;/p&gt;
&lt;p&gt;如果你正在做 AI Agent、个人助手、编程助手或多 Agent 平台，并且已经遇到“会话结束就失忆”的问题，EverOS 值得研究。它不是万能大脑，但提供了一个很务实的记忆操作系统雏形。&lt;/p&gt;
&lt;h2 id=&#34;参考来源&#34;&gt;参考来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EverMind-AI/EverOS&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EverMind-AI/EverOS - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
