Wax

GitHub
701 36 简单 1 次阅读 2天前Apache-2.0其他插件Agent开发框架数据工具
AI 解读 由 AI 自动生成,仅供参考

Wax 是一款专为苹果平台打造的高性能 AI 智能体记忆层,旨在让开发者轻松实现完全本地化、隐私安全的知识检索。它解决了传统 RAG(检索增强生成)系统依赖复杂服务器、云端数据库及繁琐配置的问题,将文档、向量索引和元数据全部封装在一个便携的 .wax 文件中。

这意味着用户无需搭建 Docker 容器或管理独立的数据库服务,只需通过 AirDrop 或 iCloud 即可同步整个知识库,实现了真正的“零配置”部署。Wax 特别适合需要在 iOS 或 macOS 上开发本地 AI 应用的开发者,尤其是那些对数据隐私有严格要求或希望应用离线运行的场景。

其核心技术亮点在于深度适配 Apple Silicon 芯片:利用 Metal 加速构建向量索引,并结合 SQLite FTS5 进行文本搜索,实现了亚毫秒级的混合检索延迟(p95 约 6ms),速度远超云端方案。作为纯 Swift 编写的单文件引擎,Wax 不仅启动迅速,更让 AI 智能体能够以极低的延迟实时调用记忆,真正将高效的知识检索保留在设备端。

使用场景

一位 iOS 开发者正在为一款面向医疗从业者的本地化 AI 助手应用构建知识库功能,要求所有患者笔记和医学文献必须在设备端处理,严禁上传云端。

没有 Wax 时

  • 架构臃肿:为了同时支持文本关键词搜索和向量语义检索,不得不集成 SQLite 和独立的向量数据库库,导致项目依赖复杂,二进制体积显著增加。
  • 隐私合规风险:若采用云端向量服务以降低开发难度,敏感医疗数据需传出设备,直接违反 HIPAA 等隐私法规,导致应用无法上架。
  • 响应延迟高:在旧有的混合架构下,冷启动加载索引耗时超过 120ms,且复杂查询的 p95 延迟波动大,影响医生在查房时快速获取信息的流畅度。
  • 数据同步困难:用户的多设备间知识备份需要协调数据库文件、向量索引文件和原始文档三个独立部分,极易出现状态不一致导致数据损坏。

使用 Wax 后

  • 极简单文件架构:Wax 将文档、元数据、全文索引和 Metal 加速的向量索引打包进唯一的 .wax 文件,无需配置服务器或管理多个存储引擎,代码量大幅减少。
  • 纯本地隐私安全:所有数据处理均在 Apple Silicon 芯片上通过 Metal 加速完成,无需联网或 API 密钥,天然满足医疗级数据的本地隐私合规要求。
  • 亚毫秒级极速响应:得益于针对 M 系列芯片的优化,Wax 实现了约 6ms 的混合检索延迟和 9ms 的冷启动时间,让 AI 助手能实时“回忆”起相关病例,体验丝滑。
  • 原子化数据管理:医生只需通过 AirDrop 或 iCloud 传输单个 .wax 文件即可完成全部知识库的迁移与备份,彻底消除了多文件同步的状态一致性难题。

Wax 通过单一文件和高性能本地计算,让开发者能在严格隐私限制下,为 Apple 平台打造出响应迅速且架构轻盈的 AI 记忆层。

运行环境要求

操作系统
  • macOS
  • iOS
GPU

非必需,但针对 Apple Silicon (M-series) 优化,利用 Metal 加速向量索引 (HNSW)

内存

未说明

依赖
notes该工具是专为 Apple 平台设计的原生 Swift 内存层,不依赖云端或服务器。核心功能封装在单个 .wax 文件中,内部集成了 SQLite FTS5 用于文本搜索和基于 Metal 加速的 HNSW 用于向量搜索。推荐使用 M 系列芯片设备以获得最佳性能(基准测试基于 M3 Max)。不支持 Linux 或 Windows。安装主要通过 Swift Package Manager 或作为 CLI 工具使用,也可通过 MCP 服务器与 AI 编码助手集成。
python不适用 (基于 Swift)
Swift 5+
SQLite FTS5 (内置)
Metal (内置)
Wax hero image

快速开始

Wax 横幅

Wax 是一款高性能、单文件的内存层,专为 Apple 平台上的 AI 代理设计。
在设备端运行,私密且可移植。无需服务器,也无云端依赖。

Swift 平台 许可证 星标

English · Español · Français · 日本語 · 한국어 · Português · 中文


Wax 是什么?

Wax 是一个 Swift 原生的持久化引擎,专为 AI 代理设计。它将文档、嵌入向量和结构化知识存储在一个单一的可移植 .wax 文件中。

目标很简单:让记忆保留在本地,设置尽可能轻量化,并确保检索速度足够快,从而能够持续参与交互过程。

为什么选择 Wax?

特性 Wax SQLite (FTS5) 云端向量数据库
搜索 混合(文本 + 向量) 仅文本* 仅向量*
延迟 ~6ms (p95) ~10ms (p95) 150ms - 500ms+
隐私 100% 本地 100% 本地 云端托管
设置 无需配置 较低 复杂(API 密钥)
架构 苹果芯片原生 通用 各不相同

为什么使用单个 .wax 文件?

大多数 RAG 架构最终都会包含数据库、向量存储和文件服务器。而 Wax 通过将文档、元数据和索引打包到一个二进制文件中,大大简化了系统组件。

  • 减少设置复杂度: 无需 Docker 环境,也无需单独维护数据库。
  • 可移植性: 只需通过 AirDrop、iCloud 或其他同步方式即可轻松传输文件。
  • 原子性: 备份、复制或删除整个文件即可,无需在多个服务之间追踪状态。

性能

Wax 针对 M 系列芯片硬件和本地检索进行了优化。

检索延迟(p95)

  • 数值越低越好,单位为毫秒。
Wax(混合)  |██ 6.1ms
SQLite(文本) |████ 12ms
云端 RAG     |██████████████████████████████████████████████████ 150ms+

冷启动时间(p95)

  • 数值越低越好,单位为毫秒。
Wax           |███ 9.2ms
传统方法   |██████████████████████████████████████ 120ms+

[!提示] 吞吐量: Wax 在 M3 Max 芯片上以全混合索引模式可处理 85.9 篇文档/秒。 完整基准测试报告:Resources/docs/benchmarks/2026-03-06-performance-results.md


架构

Wax 使用基于帧的容器格式,并将所需的搜索引擎直接嵌入主文件中:SQLite FTS5 用于文本检索,Metal 加速的 HNSW 索引则用于向量检索。

文件内部布局

┌──────────────────────────────────────────────────────────────────────────┐
│                          双重头部页(A/B)                         │
│   (魔数、版本、生成号、指向 WAL 和 TOC 的指针、校验和)         │
├──────────────────────────────────────────────────────────────────────────┤
│                          WAL(预写日志)                           │
│   (用于防止崩溃时未提交变更丢失的原子环形缓冲区)         │
├──────────────────────────────────────────────────────────────────────────┤
│                          压缩的数据帧                          │
│   ┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐       │
│   │ 帧 0(LZ4)    │  │ 帧 1(LZ4)    │  │ 帧 2(LZ4)    │ ...   │
│   │ [原始文档]   │  │ [元数据/JSON]  │  │ [系统信息]    │       │
│   └──────────────────┘  └──────────────────┘  └──────────────────┘       │
├──────────────────────────────────────────────────────────────────────────┤
│                          混合搜索索引                           │
│   ┌──────────────────────────────┐  ┌──────────────────────────────┐     │
│   │ SQLite FTS5 Blob             │  │ Metal HNSW 索引             │     │
│   │ (文本搜索 + EAV 事实)    │  │ (向量搜索)              │     │
│   └──────────────────────────────┘  └──────────────────────────────┘     │
├──────────────────────────────────────────────────────────────────────────┤
│                          TOC(目录)                         │
│   (所有帧的索引、父子关系以及各引擎的清单)    │
└──────────────────────────────────────────────────────────────────────────┘
  1. 原子级容错: 双重头部和 WAL 日志确保即使进程在写入过程中意外终止,数据存储仍能保持一致。
  2. 统一检索: 单一查询即可同时访问 BM25 文本索引和 HNSW 向量索引。
  3. 结构化知识: 内置的 EAV(实体-属性-值)存储机制可以高效地管理持久性事实和长期推理任务。

快速入门

Swift

import Wax

// 使用沙盒安全的可写位置(适用于应用程序和 CLI 工具)
let url = URL.documentsDirectory.appending(path: "agent.wax")

// 1. 打开一个内存存储
let memory = try await Memory(at: url)

// 2. 保存一条记忆
try await memory.save("用户正在使用 SwiftUI 构建习惯追踪器。")

// 3. 使用混合召回(文本 + 向量)进行搜索
let results = try await memory.search("用户在构建什么?")

if let best = results.items.first {
    print("找到:\(best.text)")
    print("文档 ID:\(best.metadata["id"] ?? "未知")")
    // → "找到:用户正在使用 SwiftUI 构建习惯追踪器。"
}

try await memory.close()
SwiftUI 示例
import SwiftUI
import Wax

struct ContentView: View {
    @State private var result = "搜索中…"

    var body: some View {
        Text(result)
            .task {
                do {
                    let url = URL.documentsDirectory.appending(path: "agent.wax")
                    let memory = try await Memory(at: url)

                    try await memory.save("用户正在使用 SwiftUI 构建习惯追踪器。")
                    let context = try await memory.search("用户在构建什么?")

                    result = context.items.first?.text ?? "未找到任何内容"
                    try await memory.close()
                } catch {
                    result = "错误:\(error.localizedDescription)"
                }
            }
    }
}
CLI 工具(main.swift)
import Wax

@main
struct AgentMemory {
    static func main() async throws {
        let url = URL.documentsDirectory.appending(path: "agent.wax")
        let memory = try await Memory(at: url)

        try await memory.save("用户正在使用 SwiftUI 构建习惯追踪器。")

        let results = try await memory.search("用户在构建什么?")
        if let best = results.items.first {
            print("找到:\(best.text)")
        }

        try await memory.close()
    }
}

想要存储持久化的事实和长期推理吗?请参阅 结构化记忆

对于重复的 CLI 向量操作,Wax CLI 现在会自动启动并重用本地代理,该代理负责管理长期存储以及由代理管理的会话存储,以支持诸如 rememberrecallsearch --mode hybrid 等命令。

如果您需要显式且长期存在的会话,仍然可以直接运行代理:

wax-cli daemon --store-path ~/.wax/memory.wax

您可以发送 JSON 行,例如:

{"id":"1","command":"remember","content":"汽车需要定期维护。"}
{"id":"2","command":"search","query":"汽车保养","mode":"hybrid","topK":3}
{"id":"3","command":"shutdown"}

简单的纯文本用法仍然是单次执行。如果向量搜索不可用,混合/向量命令现在会明确报错,而不是静默降级为纯文本模式。

AI 编程助手

如果您使用像 Claude CodeCursorWindsurf 这样的 AI 编程助手,有两种不错的设置方式:

  • 当您需要持久化记忆、会话交接以及助手内部的跨会话搜索时,可以使用 Wax MCP 服务器
  • 当您希望助手直接根据 Swift API 编写正确的 Wax 框架代码时,可以使用捆绑的 Wax 技能

安装 MCP 服务器(Claude Code):

npx -y waxmcp@latest mcp install --scope user

此安装流程会将捆绑的 Wax 运行时暂存到一个稳定的本地目录,并将暂存的 wax-mcp 二进制文件注册到 Claude Code 中。npx 仅用于安装/引导。

安装技能(Claude Code):

# 从您的项目目录中
claude install-skill https://github.com/christopherkarani/Wax/tree/main/Resources/skills/public/wax

安装完成后,您的助手无需额外的提示支架,即可直接与 MemoryVideoRAGOrchestratorPhotoRAGOrchestrator、混合搜索、结构化记忆以及 MCP 服务器协同工作。

或者粘贴以下提示以从头开始:

Wax 入门提示(点击展开后复制)
在此仓库中使用 Wax MCP 服务器来实现持久化记忆。

工作流程规则:
- 在会话开始时,首先调用 `handoff_latest` 加载先前的上下文,然后调用一次 `session_start` 并保留返回的 `session_id`。
- 使用 `remember` 存储决策、发现和简短的事实性笔记。如果记忆是会话范围的,请将 `session_id` 作为顶级参数传递。不要将 `session_id` 放入 `metadata` 中。
- 使用 `recall` 获取整合后的上下文,使用 `search` 获取原始的排名结果。
- 当语义检索有帮助时,优先选择 `mode: "hybrid"`。当您需要快速或确定性的词汇查找时,使用 `mode: "text"`。
- 在正常的代理流程中,不要管理 `SESSION_STORE`、`--store-path` 或 `flush`。长期记忆和虚拟会话存储由代理负责。
- 在会话结束时,使用 `handoff` 传递 `content`、可选的 `project` 和 `pending_tasks`,然后调用 `session_end`。
- 仅在需要跨会话检索代理管理的会话历史记录及其出处元数据时,才使用 `corpus_search`。
- 对于稳定的实体和事实,而非临时调试笔记,请使用结构化记忆工具(`entity_upsert`、`fact_assert`、`fact_retract`、`facts_query`、`entity_resolve`)。

行为期望:
- 在要求我重新陈述先前的上下文之前,先阅读现有的交接记录和召回结果。
- 保持记忆的简洁、事实性和任务相关性。
- 当跨会话的结果看起来相关时,请引用出处元数据,以便我们知道它来自哪个会话存储。

安装

Swift 包管理器

dependencies: [
    .package(url: "https://github.com/christopherkarani/Wax.git", from: "0.1.8")
]

生态系统工具

🤖 MCP 服务器

Wax 提供一流的 模型上下文协议 (MCP) 服务器。将您的本地记忆连接到 Claude Code 或任何兼容 MCP 的代理。

npx -y waxmcp@latest mcp install --scope user

发布的安装程序会将捆绑的运行时暂存到一个稳定的本地目录,并直接注册 wax-mcp,这样稳定的 MCP 会话就不需要通过原始的 npx 来启动。有关推荐的 Claude Code 提示和设置流程,请参阅 Resources/docs/wax-mcp-setup.md

🔍 WaxRepo

一款用于 Git 历史记录的语义搜索 TUI。索引任何仓库,并使用自然语言查找代码或提交。

# 从任何 Git 仓库中
wax-repo index
wax-repo search "我们在哪里实现了 WAL?"

许可证

Wax 根据 Apache License 2.0 发布。详细信息请参阅 LICENSE

专为相信用户数据应属于用户设备的开发者打造。

版本历史

waxmcp-v0.1.192026/03/26
0.1.192026/03/20
0.1.182026/03/19
0.1.172026/03/14
waxmcp-v0.1.162026/03/06
waxmcp-v0.1.152026/03/05
0.1.92026/03/03
waxmcp-v0.1.112026/02/27
0.1.82026/02/25
0.1.72026/02/17
0.1.62026/02/14
0.1.52026/02/12
0.1.42026/02/10
0.1.32026/02/03
0.1.22026/01/31
0.1.12026/01/31
0.1.02026/01/21

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|6天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架