项目文件夹
All three rerank providers retried 429 and 5xx responses with a bare `continue`, so the entire retry budget was spent within milliseconds of the first rejection. That is useless against a per-minute quota, which is exactly what hosted rerank endpoints enforce: the caller burns three attempts and still fails, while the window it needed to wait out had barely started. Observed while driving the LoCoMo agentic suite against a hosted rerank endpoint — search requests failed outright with RerankServiceError while the endpoint itself was healthy and merely pacing us. Adds `_errors.backoff_sleep()` (exponential with full jitter, capped at 8s) and wires it into the vLLM, DeepInfra and DashScope retry loops. The jitter keeps a batch of concurrent searches from re-colliding after they trip the limit together. No behaviour change when the endpoint is healthy: the sleep only runs on a retryable failure that will be retried. Co-authored-by: zhanghui <zhanghui@shanda.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
为什么选择 EverOS
EverOS 是面向 agents 和 makers 的 Python library 与 local-first memory runtime。它从 day one 开始就提供一层可携带的记忆层,让记忆穿过 coding assistants、apps、devices 和 workflows。它会把 conversations、files 和 agent trajectories 保存为可读 Markdown,并同步本地 SQLite 与 LanceDB 索引,用于快速检索和自进化复用。
| Title | EverOS | Other Agent Memory Libraries |
|---|---|---|
| Markdown source of truth | ✅ 标准 .md 文件:可读、可编辑、可 diff、可 Git 版本化 |
❌ 通常是 API、vector、graph、dashboard 或 database state |
| 直接文件编辑 | ✅ 编辑 .md;cascade watcher 同步 |
❌ 通常需要 SDK、API、dashboard 或 backend update path |
| 本地三件套 | ✅ Markdown + SQLite + LanceDB;不需要 MongoDB、Elasticsearch 或 Redis | ❌ 常依赖 managed service、vector DB、graph DB 或 server stack |
| 用户 + Agent 双轨 | ✅ 用户 episodes/profile 与 Agent cases/skills 是分离的一等记忆表面 |
❌ 通常围绕 chat history、profiles、entities、facts 或 retrieval records |
| 正交检索作用域 | ✅ 按 user_id、agent_id、app_id、project_id 和 session_id 检索 |
❌ 通常按 app、namespace、tenant、thread 或 graph 来组织 |
| Knowledge Wiki | ✅ 可编辑、可溯源的 Markdown 知识页,支持 taxonomy、CRUD APIs 和 topic search | ❌ 通常和 memory 分离,被锁在 dashboard 里,或者无法回溯到源文件 |
| Reflection | ✅ 离线记忆进化:在 session 之间合并 episode clusters,并持续改进 profiles 和 skills | ❌ 通常只是 retrieval-only memory,缺少后台 consolidation 和长周期改进 |
生态集成
EverOS 为下列 Agent 与工作流平台提供持久记忆,并已内置于 Raven。选择一个 集成即可查看安装指南。
DeepSeek Harness |
Hermes |
OpenClaw |
Raven |
![]() Dify |
快速开始
国内默认使用一个阿里云百炼 DashScope API Key,即可启动 EverOS、写入 持久化记忆,并使用完整的文本检索能力。
前置条件
- Python 3.12+
- 一个阿里云百炼 DashScope API Key
1. 安装
uv pip install everos
# or: pip install everos
2. 先体验独立 Demo —— 不需要 Key
无需填写 API Key 或启动 server,只需一条命令即可快速体验 EverOS 如何保存并 召回记忆:
# 如果你是通过 package 安装 EverOS:
everos demo
# 如果你是 fork/clone 这个仓库,且还没有激活 .venv:
uv run everos demo
输入一条希望 EverOS 记住的信息,再提出相关问题,即可直观看到记忆经过 ingest -> extract -> index -> recall 的完整流程。
https://github.com/user-attachments/assets/98cb8e1e-2ca8-4504-b0a6-0b9a040a0a5c
3. 初始化并配置百炼
everos init
这个命令会创建 ~/.everos/everos.toml 和 ~/.everos/ome.toml。打开
~/.everos/everos.toml,配置下面的百炼 provider。
在百炼控制台创建一个华北 2(北京)地域的 DashScope API Key,并把同一个 Key 复用到三个文本 provider:
[llm]
model = "qwen-plus"
api_key = "<DASHSCOPE_API_KEY>"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
[embedding]
model = "text-embedding-v4"
api_key = "<DASHSCOPE_API_KEY>"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
dimensions = 1024
[rerank]
provider = "dashscope"
model = "gte-rerank-v2"
api_key = "<DASHSCOPE_API_KEY>"
base_url = "https://dashscope.aliyuncs.com"
Embedding 会启用 vector 和 user-hybrid retrieval;DashScope rerank 会进一步 启用 agentic search、默认 agent-hybrid search 和 Knowledge Wiki。共享 DashScope host 仍支持北京地域的 Key;生产环境可以换成对应地域与业务空间的百炼专属 host。
如果希望更换 memory root,可以使用 everos init --root <path>。后续命令也要
传入同一个 --root <path>。
4. 启动 EverOS
everos server start
保持服务运行,然后打开第二个 terminal 检查:
curl http://127.0.0.1:8000/health
确认响应里有 "status":"ok"。上面的百炼配置会显示 llm、embed 和
rerank 三个文本 capability 均可用。
5. 写入并搜索第一条记忆
Note
业务接口位于
/api/v2。旧的/api/v1前缀仍然指向同一批 handler,已有集成 不会受影响;但它只是兼容用的 legacy alias,未来的大版本可能移除 —— 新代码请 直接使用/api/v2。
添加一个很小的 conversation:
TS=$(($(date +%s)*1000))
curl -X POST http://127.0.0.1:8000/api/v2/memory/add \
-H 'Content-Type: application/json' \
-d "{
\"session_id\": \"demo-001\",
\"app_id\": \"default\",
\"project_id\": \"default\",
\"messages\": [
{\"sender_id\": \"alice\", \"role\": \"user\", \"timestamp\": $TS, \"content\": \"I love climbing in Yosemite every spring.\"},
{\"sender_id\": \"alice\", \"role\": \"user\", \"timestamp\": $((TS+10000)), \"content\": \"My favorite coffee shop is Blue Bottle in SOMA.\"}
]
}"
在 session 结束时手动 flush 这条记忆:
curl -X POST http://127.0.0.1:8000/api/v2/memory/flush \
-H 'Content-Type: application/json' \
-d '{"session_id":"demo-001","app_id":"default","project_id":"default"}'
再把这条记忆搜索回来:
curl -X POST http://127.0.0.1:8000/api/v2/memory/search \
-H 'Content-Type: application/json' \
-d '{
"user_id": "alice",
"app_id": "default",
"project_id": "default",
"query": "Where do I like to climb?",
"method": "hybrid",
"top_k": 5
}'
响应里应该能看到 Yosemite 相关记忆。完整百炼配置可以直接使用 hybrid search;
也可以省略 method 字段,因为 API 默认就是 hybrid。
Tip
第一条记忆已经写入。 你刚刚把一个事实交给 EverOS,把它整理进可持久化的 Markdown-backed memory, 并通过本地索引把它搜索回来。这就是 EverOS 的核心闭环。 想看看 source of truth?打开
~/.everos,直接检查生成的 Markdown 文件。
一个百炼 Key 可以使用哪些能力?
| 配置 | 可用能力 |
|---|---|
百炼 [llm] + [embedding] + [rerank] |
Keyword、vector、hybrid、agentic search;reflection、skill extraction、Knowledge Wiki |
再添加 [multimodal] 和 parser extra |
图片、PDF、音频、Office 文件摄取 |
/health 会列出缺失的可选能力。如果请求了尚未配置 provider 的功能,API 会
返回明确的 HTTP 422。
Note
everos demo --live和步骤 2 的独立 Demo 不一样:它会连接正在运行的 server, 并执行真实的 add / flush / search 流程。它使用 hybrid search,上面的完整百炼 配置可以直接运行。
可选:摄取多模态文件
如果要通过 /api/v2/memory/add 的 content items 摄取非文本内容
(image / pdf / audio / office documents),安装可选 extra:
uv pip install 'everos[multimodal]' # or: pip install 'everos[multimodal]'
这会引入 everalgo-parser(包含用于 SVG 支持的 [svg] bundle,通过
cairosvg)。在 everos.toml 的 [multimodal] 中完成配置;默认模型是通过
OpenRouter 使用的 google/gemini-3.8-flash。
Office 文档支持需要 LibreOffice 作为系统依赖。 parser 会调用
soffice(LibreOffice 的 headless renderer),先把 .doc / .docx /
.ppt / .pptx / .xls / .xlsx 转换为 PDF,再交给多模态 LLM。
如果没有 LibreOffice,office 上传会返回 HTTP 415,并带有明确错误信息;
PDF / image / audio / HTML / email 解析不受影响。
在提供 office 文档服务前,请先在宿主机安装:
brew install --cask libreoffice # macOS
sudo apt-get install -y libreoffice # Debian / Ubuntu
贡献者开发
git clone https://github.com/EverMind-AI/EverOS.git
cd EverOS
uv sync # creates ./.venv and installs deps
uv run everos demo --plain # 先体验本地 educational demo;不需要 API keys
uv run everos init # 把一个百炼 DashScope Key 配置到 ~/.everos/everos.toml
uv run everos --help
make test
使用场景
现在你已经完成了第一个成功的 EverOS moment,可以继续看看大家如何把持久记忆 用在 agents、apps 和社区集成里。
这些使用场景展示了持久记忆可以在真实产品和工作流中带来什么能力。 有些示例已经打包在本仓库中,另一些则指向外部 demo 或集成,你可以研究并复用。
AIUI Sports Agents面向智能眼镜的运动 agents,覆盖跑步、骑行和室内划船。AISmartRun 提供用于跑后总结的可选记忆后端接口;接入 EverOS 需要单独配置后端服务。 |
Reunite - 用 EverOS 找回连接父母描述他们记得的线索,孩子描述他们残留的回忆。Reunite 使用语义记忆来浮现这些连接。 |
Hive Orchestrator面向 CLI coding agents 的 browser-native hive-mind。Claude Code、Codex、Gemini 和 OpenCode 作为真实 PTY 进程,通过团队协议协作。 |
接入 EverOS 的 AI 编程助手由 EverOS 驱动的通用长期记忆层,面向 AI coding assistants。 |
AI Data Technician一个 agentic AI 系统,可以从科学家的交互中学习,用于检查、分析和分类高维时间序列数据,并通过跨 session 改进的持久记忆持续变强。 |
接入 EverOS 的 Rokid AI 助手在 Rokid Glasses 中连接 EverOS,为你的智能活动启用长期记忆。 即将推出 |
|
|
|
带长期记忆的创意助手拥有长期记忆的创意助手,让你的创作上下文可以跨 session 持续可用。 即将推出 |
Earth Online 记忆游戏Earth Online 是一款 memory-aware productivity game,把日常计划变成一个持续生长的 quest log。 |
多 Agent 编排平台Golutra 为工程团队提供 multi-agent workforce,把 IDE 从单一 assistant 扩展为协同 agents。 |
你的个人品鉴宇宙通过沉浸式 3D 星图记录、可视化并探索你的 tasting journey。 |
EverOS Open Her构建有感受的 AI。开源 persona engine,让 personality 从 neural drives 中涌现,而不是来自 prompts。灵感来自 Her。 |
面向个人记忆的浏览器 AgentRuminer 为 browser agent 带来持久记忆,让它能在不同网页任务之间携带个人上下文。 |
|
|
|
EverMem 与 EverOS 同步一条命令,把任意 AI coding CLI 连接到 EverOS(原名 EverMemOS),获得长期记忆。 |
MCO - 编排 AI Coding AgentsMCO 为你的主 Agent 配备一个 agent team,让它们可以一起处理复杂任务。 |
带自进化记忆的 Study Buddy使用拥有 self-evolving memory 的 Agent,主动辅助学习。 |
阿尔茨海默症记忆助手通过高级记忆支持和日常辅助,帮助有需要的人更好地生活。 |
记忆驱动的 Multi-Agent NPC 体验一款 iOS 科幻悬疑游戏,玩家可以探索世界并揭开真相。 |
Mobi Companion一款 iOS app,用户可以创建、养成并与名为 Mobi 的个性化 AI companion 一起生活。 |
|
|
|
带记忆的 AI 可穿戴设备一个 context-native AI wearable,聆听日常生活,并把对话转换为记忆。 |
Legacy OpenClaw Agent 记忆已归档的 pre-1.0.0 plugin reference。新的集成应使用当前 EverOS API。 |
带记忆的 Live2D 角色为实时 Live2D character 添加长期记忆,由 TEN Framework 驱动。 |
带记忆的 Computer-Use运行基于截图的分析任务,并把结果存入记忆。 |
Game Of Thrones Memories通过与 A Game of Thrones 互动问答体验,展示 AI 记忆基础设施。 |
Claude Code PluginClaude Code 的持久记忆插件。自动保存并回忆过去 coding sessions 的上下文。 |
记忆图谱可视化在图界面中探索已存储的 entities 和 relationships。前端 demo 已可用;后端集成仍在进行中。 |
|
文档
- docs/everos-demo.md - Demo 范围与 TUI 源码布局
- docs/how-memory-works.md - Markdown、SQLite、LanceDB 与 recall flow
- docs/use-cases.md - 完整使用场景 gallery 和集成示例
- docs/engineering.md - 贡献者工程参考:构建、测试、CI 与规范
- docs/migration-to-1.0.0.md - Legacy API 迁移说明
- CHANGELOG.md - 发布记录
- CONTRIBUTING.md - 如何贡献
EverMind 生态
EverMind 将记忆研究、可直接使用的产品与实际集成连接为一个开源生态。
| 产品 | |
|---|---|
| EverOS | 本地优先、Markdown 原生的 Agent 与用户长期记忆运行时。 |
| Raven | 以记忆为核心的自进化 Agent Harness,具备主动性、上下文控制与 Skill 进化能力。 |
| EverMe(CLI) | 面向跨设备、跨 Agent 个人记忆的 CLI 与 Agent 插件套件。 |
| 研究与评测 | |
| SkillCorpus | 将分散的 Agent Skill 整理为可检索语料库,并提供检索与评测工具。 |
| EverAlgo | 为 EverOS 提供无状态的提取、排序、解析与记忆算法。 |
| HyperMem | 基于超图的分层记忆架构,用于由粗到细的长期对话检索。 |
| MSA | 面向可扩展潜在记忆与一亿 Token 上下文的 Memory Sparse Attention。 |
| EverMemBench | 从事实召回、应用推理和个性化泛化三个层面评测记忆系统。 |
| EvoAgentBench | 纵向评测 Agent 自进化、迁移效率、错误规避和 Skill 使用能力。 |
| 插件与集成 | |
| OpenClaw | OpenClaw 插件,自动管理召回、写入与会话记忆生命周期。 |
| Hermes Agent | Hermes 插件,为 Hermes 会话提供持久记忆。 |
| DeepSeek Harness | DSH 插件,让 DeepSeek Harness Agent 使用长期记忆。 |
| Dify | 本地版与云端版工具,在工作流和 Agent 中显式搜索与写入记忆。 |
这些项目共同构成 EverMind 从研究到运行时的完整链路:将方法与评测转化为 可复用的记忆基础设施、产品和 Agent 集成。
参与贡献
欢迎为整个仓库贡献:架构方法、benchmark coverage、use-case examples、文档和 bug fixes。 浏览 Issues 找到适合的切入点, 准备好后即可提交 PR。
Tip
欢迎各种形式的贡献 🎉
一起让 EverOS 变得更好。代码、文档、benchmark reports、use-case write-ups 和 integration examples 都很有价值。也欢迎在社交媒体上分享你的项目,启发更多人。
你可以在 𝕏 上联系 EverOS maintainer @elliotchen100, 或在 GitHub 上联系 @cyfyifanchen,获取项目更新、 讨论和协作机会。
代码贡献者
许可证
Apache License 2.0 - 第三方归属说明请见 NOTICE。
引用
如果你在研究中使用 EverOS,请参考 CITATION.md。
