news 2026/10/8 7:00:34

Orkas 记忆系统揭秘:SQLite 全文+向量混合检索、RRF 融合与 95MB 端侧嵌入模型工作原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Orkas 记忆系统揭秘:SQLite 全文+向量混合检索、RRF 融合与 95MB 端侧嵌入模型工作原理

Orkas 记忆系统揭秘:SQLite 全文+向量混合检索、RRF 融合与 95MB 端侧嵌入模型工作原理

【免费下载链接】OrkasOrkas is an open-source, local-first AI desktop app: a commander LLM directs specialist sub-agents, and runs your installed coding CLIs — Claude Code, Codex, OpenCode, OpenClaw, Hermes — as local sessions. Agents self-evolve via reflection and skill crystallization. BYO keys. macOS / Windows / Linux.项目地址: https://gitcode.com/gh_mirrors/or/Orkas

Orkas 是一款开源、本地优先(local-first)的 AI 桌面应用:指挥官 LLM 调度专业子智能体,并驱动 Claude Code、Codex 等本地编码 CLI 会话,智能体还能通过反思与技能结晶自我进化。这篇文章将完整拆解 Orkas 的记忆系统——它如何用 SQLite FTS5 全文索引 + 向量相似度做混合检索,用 RRF 倒数排名融合合并两路结果,并依靠一个约 95MB 的端侧 ONNX 嵌入模型让知识库索引全程不出本机。

为什么需要一个"本地记忆系统"

普通 AI 助手的对话刷新即失忆。Orkas 的思路是让每个智能体都拥有私有记忆与技能,并通过任务后的反思不断变强。这套能力在 README.md 中有一句概括:

每个 agent 拥有自己的私有 skills 和 memory,并在每次任务后通过反思改进。

实现上,Orkas 把记忆分成两层:轻量的跨会话 Markdown 记忆,和面向海量文档的混合检索索引。

第一层:跨会话 Markdown 记忆

源码位于 src/main/features/memory.ts,核心设计非常"轻量派":

  • 文件即记忆:MEMORY.md(跨项目共享事实)、USER.md(用户画像)、agents/<id>/MEMORY.md(每个智能体的领域笔记),条目之间用§分隔;
  • 硬预算:memory.ts 中的常量 规定共享记忆 2500 字符、用户画像 1500 字符、单智能体 2000 字符、每库最多 16 条,写满自动淘汰最旧条目,保证注入系统提示词时不撑爆上下文;
  • 安全防护:写入前做提示注入、密钥外泄、隐形 Unicode 的模式扫描(src/main/features/memory.ts)。

会话开始时这些文件被"冻结"进系统提示词,对话中智能体再通过工具修改它们——记忆因此跨会话持久化。

第二层:SQLite 全文 + 向量混合检索

面向知识库和海量会话内容,Orkas 建的是一个本机 SQLite 混合索引:

通道技术擅长
全文通道SQLiteFTS5倒排索引 + BM25 打分精确关键词、专有名词
向量通道sqlite-vec虚拟表 + 余弦相似度语义相近、同义改写

关键设计都写在 src/main/features/vec_store.ts 的头部注释里:

  • 分块:文档按 512 行一块、64 行重叠切块,兼顾上下文完整与检索粒度;
  • 三表结构:kb_files(源文件+sha1+状态)、kb_chunks(分块文本)、kb_vec(512 维向量虚拟表);
  • 模型锁定:vec_store.ts#L46-L47 固定使用bge-small-zh-v1.5(512 维),换模型需要整个库重建,config.json在目录级别强制这一点;
  • 并发模型:better-sqlite3 单写者 + 每库一把 Mutex 互斥锁,读走 SQLite 快照隔离,天然无锁读。

全局搜索的查询入口在 src/main/features/search/index.ts,BM25 打分器见 src/main/features/search/bm25.ts,还针对中日韩文本做了二字词(bigram)锚点增强——搜索"苏格拉底"时,能稳定命中真正包含该词的文档。

RRF 融合排序:0.7 向量 + 0.3 关键词

两路检索各自返回一份排序列表,但"BM25 分数 4.2"和"余弦相似度 0.81"根本不是同一个量纲,直接加权相加会互相污染。Orkas 采用教科书级的RRF(Reciprocal Rank Fusion,倒数排名融合):

  1. 只取每条结果在两路列表中的名次rank,不取原始分;
  2. 按1/(k + rank)计算倒数排名分(k 取经验值 60,平滑头部名次);
  3. 两路分别加权——向量 0.7、关键词 0.3——再加总排序。

这套机制的说明可以直接在 README.md#L200-L204 找到。0.7/0.3 的偏重体现了产品取向:语义相关优先,精确关键词作为强信号补充。此外 library_content_ranking.ts 还设了 0.45 / 0.65 双阈值:弱命中必须再叠加词法锚点才展示,防止向量检索"答非所问"。

最终,智能体通过memory_search与memory_read两个工具访问这套索引,检索范围覆盖存储文档和历史会话。

95MB 端侧嵌入模型:隐私如何得到保证

向量通道的核心是嵌入模型。Orkas 打包了一个 ONNX 版本的bge-small-zh-v1.5(约 95MB、512 维):

  • 安装时由 scripts/fetch-embedding-model.mjs 一次性拉取,落到resources/embedding-model/目录,带字节数校验和断点式超时控制;
  • 推理走本地fastembed,建索引、算 query 向量全程在本机完成——索引一个知识库不会向任何地方发送数据;
  • 如果你偏好云端,官方也提供 OpenAI、Gemini、Voyage、Mistral 等嵌入服务商作为可选项,默认仍是端侧。

这就是"95MB"的由来:小到随应用分发,大到足以胜任中英混合语义检索,是典型的端侧模型取舍。

小结:本地优先的完整闭环

环节方案
轻量记忆Markdown 文件 + 字符/条数硬预算
全文检索SQLite FTS5 + BM25 + CJK bigram 锚点
语义检索sqlite-vec,512 维本地向量
结果融合RRF 倒数排名,0.7 向量 / 0.3 关键词
嵌入模型bge-small-zh-v1.5,~95MB ONNX,端侧推理

对新手而言,最实用的三步:

  1. 跑起来:用仓库自带的run.sh/run.cmd启动,首次启动会自动准备 Python、嵌入模型等资源;
  2. 配 Key:打开Settings → AI Providers填入你自己的 API Key(BYO keys,数据与密钥都在本地);
  3. 喂知识:把文档加入知识库,等待本机的分块+向量化完成,之后在对话里提问,混合检索会自动把最相关的片段带给智能体。

想深入阅读,可以从 README.md 的 Memory 小节 出发,再对照 vec_store.ts、memory.ts 与 search/index.ts 三份源码,即可完整看懂这条"本地混合检索"链路。🧠

【免费下载链接】OrkasOrkas is an open-source, local-first AI desktop app: a commander LLM directs specialist sub-agents, and runs your installed coding CLIs — Claude Code, Codex, OpenCode, OpenClaw, Hermes — as local sessions. Agents self-evolve via reflection and skill crystallization. BYO keys. macOS / Windows / Linux.项目地址: https://gitcode.com/gh_mirrors/or/Orkas

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 7:00:32

学工管理系统是什么

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/10/8 7:00:01

少林寺武校怎么选:小龙武校兼顾文化课与艺术培养优势

少林寺武校怎么选&#xff1a;小龙武校兼顾文化课与艺术培养优势在查询“少林武校学费多少”时&#xff0c;家长往往关注的不仅是单一的入学费用&#xff0c;更是这一投入所对应的教育模式与成长路径。登封地区的武术学校普遍采取封闭式管理&#xff0c;费用由学费、杂费及生活…

作者头像 李华
网站建设 2026/10/8 7:00:00

天任护理学专升本辅导班全方位实测报告

备考护理资格证或职称考试&#xff0c;最让人焦虑的往往不是知识点本身有多深奥&#xff0c;而是面对海量教材无从下手的无力感。很多同行在临床一线忙碌了一天&#xff0c;回到家只想瘫在沙发上&#xff0c;根本拿不出整块时间去啃那几本厚得像砖头一样的指导用书。这时候&…

作者头像 李华
网站建设 2026/10/8 6:59:34

CentOS7 部署 Nacos3.x 集群实战:从注册中心到 AI 管理中心

本文基于 Nacos 3.x 版本&#xff0c;完整讲解 Nacos 核心能力、适用场景、集群原理&#xff0c;并提供一套可落地的 5 节点生产集群部署实操&#xff0c;覆盖传统微服务治理与新增的 AI Registry&#xff08;AI 资源管理&#xff09;能力。 环境说明&#xff1a;CentOS7&#…

作者头像 李华
网站建设 2026/10/8 6:57:46

WorkBuddy 能生图、能生视频,只是很多人还没点开那个入口

朋友&#xff1a;"WorkBuddy 不就是另一个 DeepSeek 吗&#xff1f;写写文案、改改文档还行。"我&#xff1a;"你上次做电商详情页那八张图&#xff0c;是不是还在 Midjourney 出图、剪映剪视频、稿定做海报&#xff0c;三个工具来回切&#xff1f;"朋友&a…

作者头像 李华