mcpField
A
Ariadne

Ariadne

本地服务
mclaut.github.io记忆与知识32 天前更新

关于 Ariadne

Ariadne 是面向 Codex、Claude Code 和 MCP 客户端的本地优先、多语言记忆服务,适用于需要私有编码 Agent 记忆的用户。它以 Go 和 Qdrant 提供本地运行、可审计的记忆与访问审批流程。

主要功能

  1. 01本地优先的多语言记忆
  2. 02面向并发 MCP 会话的 Qdrant 存储
  3. 03跨项目访问需人工审批
  4. 04访问请求与决定保留审计记录
  5. 05命令行与桌面托盘管理

适用场景

  1. 01在编码 Agent 会话间保留决策和经验
  2. 02管理多个 MCP 会话的并发记忆访问
  3. 03审批并审计跨项目记忆请求

MCP 相关

Ariadne 是 MCP 服务,为 Codex、Claude Code 及其他 MCP 客户端提供记忆检索与访问控制。跨项目访问可通过托盘审批,并记录请求、决定和授权使用情况。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbariadne-v0.8.18.mcpb0.8.18

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ariadne

English · Українська

一个面向 Codex、Claude Code 和任何 MCP 客户端的原生、本地优先、多语言记忆服务。 Go + Qdrant + bge-m3 — 无需 Docker、云服务或 API 密钥。

专为私密的编码 Agent 记忆打造:它是小巧的原生设备,而非托管式多租户记忆平台。默认路径支持离线和跨语言使用,检索成本可观察,且无需依赖账户。

Release CI License: MIT

项目网站 · Hugging Face Space · 最新版本

它旨在替代嵌入式向量数据库记忆后端:这类后端在多个 MCP 会话并发运行时会崩溃或资源耗尽。ariadne 是一项服务:一个 Qdrant 就能原生处理并发写入,因此完全不存在单写入者/锁饥饿这一类问题。

v0.8.18 新功能

  • **优先显示决策事项。**访问区域位于托盘上方。活动队列中只会显示需要决策的请求。
  • **分页显示历史记录。**保留的决策按时间倒序显示,每页十条记录。新请求不再被埋在冗长的平铺历史记录之下。
  • **行内容清晰易读。**用途和简短状态会立即显示;完整的项目范围、资源、创建时间和 ID 则显示在详情中。
  • **针对具体请求执行操作。**批准和拒绝操作始终绑定到特定请求。历史记录行只读,且每条审计记录都会保留。

v0.8.17 之前的更新

  • **所有访问请求均保持可见。**托盘会列出全部保留的队列和历史记录,显示待处理、已批准、已拒绝、已过期和已使用状态,并提供绑定到各请求 ID 的操作。
  • **提示词轮换公平。**每个系统对话框的时限为 30 秒;未获答复的请求会保持待处理状态,新请求也有机会处理。
  • **明确后续操作。**批准后会通知客户端使用 approval_id 重试。测试会验证后续操作成功,以及拒绝重复使用一次性授权。
  • 只读历史记录。ariadnectl approvals --all 会列出保留请求及其生命周期,不会授权或消耗访问权限。

v0.8.16 之前的更新

修复
  • **Windows 版本检查会安全地包含启动器。**macOS 行为测试现在仅在对应平台运行,同时发布存档仍保留兼容 Windows 的启动器存根,因此所有受支持的目标平台都能顺利构建和测试。
v0.8.15 新增
  • **Ariadne 现已成为真正的 macOS 应用。**安装程序会在系统 Applications 文件夹可写时创建已签名的 Ariadne.app;否则会回退到用户级 ~/Applications,并提供原生项目图标。
  • **单击即可恢复受管理的托盘。**现在可通过 Finder、Spotlight 或 Launchpad 启动现有的托盘 LaunchAgent;必要时会重新注册其规范 plist,且不会创建不受管理的重复进程。

v0.8.14 之前的更新

v0.8.14 将已确认的 macOS 更新辅助程序从托盘关闭流程中分离,并使交接过程可在 update.log 中观察。

v0.8.13 之前的更新

v0.8.13 将合并截止期限作为安全的延期工作处理,而非维护失败,并通过仅追加的延期元数据保留每一份源日记。

v0.8.12 之前的更新

v0.8.12 限定了维护监管程序的运行范围,使符合架构约束的合并 JSON 对具备推理能力的 Ollama 模型保持确定性,并新增精确、仅追加且由所有者批准的凭证信任机制。

v0.8.11 之前

v0.8.11 让桌面托盘真正实现单实例运行,协调了规范和历史 launchd 所有权,将已被取代的 plist 文件保存在归档中,并添加了真实的托盘进程诊断。

v0.8.10 之前

v0.8.10 通过无损 Qdrant 分页、可召回与历史覆盖范围、分离已测量和估算的来源、明确的缺口分类,以及安全的选择性归因回填,让令牌归因变得可审计。

v0.8.9 之前

修复
  • 在大量并发 Agent 会话下,Qdrant 仍保持可用。 每个 MCP 进程现在使用一个持久 gRPC 连接,而不是依赖客户端库隐式创建的三个连接池;同时,macOS launchd 服务获得明确的 8192 文件描述符限制,而不是继承 256 的限制。
  • 启动时不再反复创建负载索引。 Ariadne 会检查现有架构,只创建缺失的索引。实际存储错误现在会导致启动失败,而不是被静默忽略。
  • 每个短生命周期客户端都会正常关闭。 Hook、导入、安装和维护操作会在完成后释放其 Qdrant 连接。
新增
  • 文件描述符压力可见性。 ariadnectl status、托盘和完整堆栈诊断工具会报告 Qdrant 的打开文件描述符数量及配置上限,并在耗尽前显示警告。

v0.8.8 之前

新增
  • 远程 Qdrant 身份验证采用失败关闭策略。 远程 gRPC 需要 API 密钥和 TLS;REST 需要相同的密钥和 HTTPS。长时间运行的客户端只保留受保护的密钥文件路径,不保留密钥值。仍可明确选择不安全覆盖选项,以使用用户管理的 SSH 或同等隧道。
  • 诚实的检索对比。 cmd/eval 现在会针对经过人工判定的 BM25 和学习型稀疏检索运行,计算确定性的宏平均 Recall、MRR 和 nDCG,而不是在没有语料证据的情况下宣称 SPLADE 有所改进。
变更
  • 指标架构 v3 可扩展且不丢弃历史记录。 每个召回事件仍以仅追加方式保存,同时通过索引化的 30 天路径和事务性每日汇总,使生命周期总量有界且查询快速。现有 v2 数据库会在不更改原始行或总量的情况下迁移。
  • 集合扫描完整无遗漏。 Memfile 协调现在会遍历 Qdrant 中的所有点,而不再依赖固定的上限。
  • 维护功能拥有可复用的核心。 有界重试和退避编排位于 internal/maintenance;ariadnectl 保留了既有的 CLI 和活动语义。
修复
  • 安装和自更新后,远程设置仍会保留。 macOS、Linux 和 Windows 启动器会传递相同的非机密 Qdrant 传输设置;显式指定的 Windows 安装程序参数仍具有优先权。
  • 仓库工具不再从 site/node_modules 编译依赖项。 站点已成为独立的 Go 模块,而 make clean 会将生成的资源归档并附带恢复清单,而不是将其删除。

v0.8.7 之前

修复
  • 托盘重启现在可在 launchd 受限环境下正常运行。 如果 launchd 的最小 PATH 中没有 brew,Ariadne 会从 macOS 标准位置查找 Homebrew,因此 Qdrant 和 Ollama 都能实际重启。
  • 重启始终会尝试恢复。 即使停止某项服务时报告错误,ariadnectl restart 也会运行启动阶段,然后返回所有故障,而不是在部分服务停止后让整个堆栈持续停机。
  • 完成消息可在托盘重启后保留。 旧托盘退出前会追加经验证的结果;由 launchd 启动的替代进程会显示最终通知,并追加已送达标记。
新增
  • 已验证的服务操作。 系统托盘会在启动、停止或重启前后检查 Qdrant 和 Ollama,等待达到请求的状态,在重启时验证 PID 是否变化,并在集合不健康时拒绝报告成功。
  • 显示 PID 和操作诊断信息。 系统托盘行和 ariadnectl status 会显示服务 PID;结构化日志包含耗时、操作前后状态、命令输出以及确切的验证失败原因。
变更
  • 服务操作期间会锁定冲突的控制项。 服务操作进行期间,启动、停止、重启、维护、更新、备份和导出无法并行执行。
  • 平台命令错误会保留有用输出。 现在,macOS、Linux 和 Windows 的服务控制失败都会保留 stderr/stdout,便于诊断。

v0.8.6 中的先前内容

修复
  • 系统托盘在 macOS 上重启更可靠。 由 launchd 管理的系统托盘现在会请求其监督进程执行一次干净的替换,而不是与第二个菜单栏进程争抢,避免偶尔导致图标消失。
  • 如实报告服务失败。 start、stop 和 restart 会将平台错误传递给 CLI 和系统托盘,而不是显示成功。
  • Claude 升级不再遗留过时的集成文件。 安装程序会验证并刷新随附的技能,以及精确的 hook 路径、匹配器和超时时间。
新增
  • 跨 Claude 上下文切换的持久回忆。 现在,自动回忆会在 startup、resume、clear、compact 和 fork 时运行,并明确提醒立即保存持久有效的决策、注意事项和已验证结果。
变更
  • 批准始终需要明确点击。 系统警告仅包含 批准 和 拒绝;两者均不是默认选项或焦点项,按 Return/Enter 或 Escape 也无法决定或关闭请求。
  • Hook 安装会识别更新。 现有 Ariadne hook 会原位更新,同时保留与 Claude 相关的其他 hook。

v0.8.5 中的先前内容

macOS 批准警告会置于前台。 原生对话框会在显示前激活,因此访问请求不会悄悄停留在活动编码窗口后方。激活只会改变可见性,不会改变授权。

Hugging Face 发布有效。 Space 元数据符合 Hub 对 short_description 设置的 60 字符上限。

v0.8.4 中的先前内容

批准请求现在会以醒目方式打断用户。 新的跨分区或受保护资源请求会立即打开系统警告对话框,而不再仅依赖系统托盘徽标和桌面通知。对话框会显示范围和用途(并加以限制),提供 批准、拒绝 和安全默认选项 稍后处理。关闭对话框、按下 Escape 或选择“稍后处理”都不会授予任何权限;待处理请求会在一分钟后再次显示。系统托盘队列仍可用作备用方案和审计视图。

提示词会使用 macOS 原生警告对话框、Windows 系统弹窗,或 Linux 上可用的 KDialog/Zenity 提供程序。只有明确选择“批准”或“拒绝”才会写入仅追加的决策记录。

v0.8.3 更新内容

跨项目记忆需要经过真正的人工审批。 all_wings: true 现在会创建待处理请求,而不是直接搜索。Ariadne 托盘会显示当前激活的 wing、用途和限定范围的查询;只有点击“批准”才会发放 15 分钟的授权,范围限定为该 MCP 客户端会话、当前激活的 wing 和集合。随后,客户端会使用 approval_id 重试。按精确 ID 进行跨 wing 回忆也遵循相同流程。

本地上下文仍占主导地位。 获得批准后,外部候选项的来源权重为 0.70,通常最多占五条结果中的两条。响应会标明本地与跨 wing 的来源,并披露所应用的权重。权重仅在授权后应用,绝不会被视为权限。

访问凭据需要额外的一次性审批。 credential_access 会在托盘中创建独立请求,明确指定一个来源 wing、目标 wing、凭据名称/路径和用途。批准在五分钟后过期,且只能使用一次。Ariadne 绝不会读取或返回凭据值;请求、审批决定和使用记录分别以仅追加方式保存为审计记录。

ariadnectl approvals 仅列出尚未处理的请求。请求从列表中消失并不代表已拒绝。运行 ariadnectl approvals -id REQUEST_ID -json,可查看请求的 pending、approved、denied、consumed 或 expired 状态及时间戳。此只读诊断不会批准或使用授权;人工批准后,MCP 客户端仍须使用 approval_id 重试原始请求。

对于所有者明确指定为可重复使用的凭据文件,可运行 ariadnectl credential trust --source-wing ... --target-wing ... --resource ... --purpose ... --yes,一次性注册精确的本地绑定。今后针对该精确组合的 credential_access 调用将跳过弹窗,但仍会追加使用记录。credential revoke 会以仅追加方式禁用该绑定;其他资源和 wing 组合仍默认拒绝。

v0.8.2 更新内容

项目隔离现在默认拒绝。 语义 memory_recall 必须指定项目 wing;要搜索所有项目,必须显式启用 all_wings: true,此选项用于用户主动要求的跨项目审计。会话钩子会解析最近的仓库根目录,并可使用稳定的 .ariadne-wing 标记,因此嵌套工作目录不会悄然成为新的命名空间。共享的 Codex 和 Claude Code 技能也将当前工作区视为文件系统边界:能够读取相邻项目,并不代表有权借用其 .env、凭据、端点或配置。

凭据材料会被拦截并可隔离。 MCP 保存操作和存储层都会拒绝高置信度的私钥、凭据 URI、已知令牌格式和显式密钥赋值。导入和钩子捕获会对检测到的值进行脱敏,合并操作会再次验证输出;回忆会排除已隔离记录,并在输出精确 ID 时进行防御性脱敏。默认情况下,ariadnectl quarantine-secrets 仅执行元数据试运行;--apply 会保留原始负载、向量和先前状态,同时将记录移出常规回忆范围。检测器优化后,--apply --reconcile 可恢复先前状态,而不会清除隔离审计记录。

v0.8.1 版本回顾

服务所有权唯一,健康状态清晰可见。 Ariadne 会在重复的 macOS Qdrant 任务被绿色 HTTP 健康检查掩盖之前检测出来。ariadnectl 将启动、停止和安装程序的所有权统一到一个规范任务,同时保留旧 plist 文件和全部内存历史记录。扩展后的 doctor 会解析当前生效的不可变运行时,检查 Codex 和 Claude 的 MCP 路径,报告维护和 launchd 状态,展示归因覆盖率,并对日志失控发出警告。

区分重试与复核的维护机制。 每个捕获的会话都会先经过原子化整理,然后才合并和去重同日输出。独立的本地质量检查会拒绝融合无关关注点的记忆,随后针对无效的模型输出进行一次有重点的修复。网络和 Ollama 的暂时性故障仍会进行有上限的退避重试;确定性的架构、语言、本地路径和质量问题则会明确标记为待处理,而不是重放整个阶段。对于未更改的源,不会使用相同模型和流水线修订再次重试。源日记始终保持活跃且仅追加;安全的待处理复核不会将其他方面成功的维护错误报告为不健康。

更强大的整理器,不增加捕获负担。 捕获和整合可以通过 ARIADNE_CONSOLIDATION_MODEL 和 ARIADNE_CONSOLIDATION_JUDGE_MODEL 使用不同的本地模型。在固定的 11 批验证中,qwen2.5:7b 有 5 批被推迟,而 qwen2.5:14b 成功处理了全部 11 批。因此,只要内存允许,建议使用 14B 整理器;捕获仍可使用更小的模型。

可靠且易于解释的托盘。 macOS LaunchAgent 会在托盘异常退出后重启它,但会尊重明确的正常退出操作。生命周期原因会追加写入托盘日志,因此图标消失时不再留下空白的取证记录。安装程序还会将 Ariadne.app 添加到 Applications;从 Finder、Spotlight 或 Launchpad 启动它,即可恢复受管理的托盘,而不会生成未受管理的重复实例。

v0.8.0 版本回顾

范围明确、仅追加的内存生命周期。 相同文本可以独立存在于不同项目和房间中。移动时会先写入目标记录,并将原记录保留为已取代的历史记录。会话捕获会分别记录实际事件时间和捕获时间,并分配稳定、不透明的源谱系。每日整合会先保存持久记忆,再根据元数据归档源日记;绝不会删除它们。首次零输出复核仍保持活跃状态,标记为 candidate_empty,并需要在宽限期后通过后续确认检查,才能归档。常规召回会隐藏已归档或已取代的记录,而精确 ID 查询或 include_archived: true 则提供明确的审计路径。

保守的历史记录排序。 Qdrant 仍会提供密集向量 + BM25 RRF 候选集。一个小型且有上限的第二轮处理会加入源质量、明确的时间意图和上下文大小信号。旧决策和注意事项不会仅因年代久远而衰减;仅当查询要求最新、当前或考虑历史的答案时,才会应用时效性,而且元数据不能凌驾于实质性的语义优势之上。

非破坏性、可观测的维护。 Memfile 同步会在嵌入前跳过未更改的源修订,在将较早的区块标记为 superseded 之前导入已更改的修订,并保留原始观察时间戳;源消失时会标记为 orphaned,而不是删除。整合会限制批次和上下文大小,验证模型输出,并在任何提升失败时保留源日记。运行器会以有上限的退避方式重试暂时性故障,记录仅追加的活动,并在状态信息和托盘中显示失败、部分完成、卡住或过期状态。备份轮换会归档较早的快照。

确定性回归评估。 go run ./cmd/eval 会运行 evaluation/coding-memory.json 中的多语言编码记忆排序套件,且不会访问 Qdrant 或 Ollama。

v0.7.0 之前

精准检索与即时持久化记忆。 memory_recall 现在支持使用精确的范围内容 id,让 Agent 无需调用嵌入模型或进行近似排序,即可检索并验证单条记忆。语义检索也可以同时按项目(wing)和类别(room)限定范围。

共享的 Ariadne 技能现在要求 Agent 在得知结果后,立即将已完成的发布、部署、迁移、审计、事件解决和已验证状态报告保存到 reference。这是主动执行的:Agent 不会等到 SessionEnd、PreCompact、每日整理,也不会等待单独的“记住这个”命令。决策和来之不易的经验教训也遵循相同的即时保存规范。

Token 指标将有来源依据的衡量结果与未知的交付情况区分开来,而不再将每次旧版检索都视为负向节省:

  • 已测量的节省/净值 —— 扣除归因成本后的、有来源依据的上下文收益;
  • 归因覆盖率 —— 有来源记录的已观察检索成本所占比例;
  • 未归因 —— 可见的旧版/手动交付,不虚构收益。

托盘会显示已测量的节省、覆盖率、检索次数和未归因成本。ariadnectl metrics 和 JSON 会保留完整的已观察成本计数器。

{
  "id": "2704862554782470108"
}

v0.6.0 之前

自动提炼日记。 SessionEnd 捕获会为每个实质性会话写入一条简洁的本地模型日记记忆。每日维护会重新检查超过 24 小时的日记条目,按项目和日期分组,并提炼出持久性决策及其依据、已验证的经验教训、关键约束和重要未解决风险。源记录的时间线会保留归档以供审计,而不会被丢弃。

该流程采用故障安全的追加写入方式:归档前,Ariadne 会创建到期的 Qdrant 周快照,保存每条提炼后的记忆,然后将源分组标记为已归档。首次处理结果为空时,源分组会保持活动状态,以便后续确认;如果发生故障,源分组会保持活动状态以供重试。除非明确启用远程捕获,否则摘要端点仅限本地使用。

可手动预览或运行:

ariadnectl consolidate --before 24h --dry-run
ariadnectl maintenance  # memfile sync + consolidation, with bounded retries
ariadnectl consolidate --before 24h  # consolidation only
ariadnectl requeue-empty --dry-run  # inspect records archived by the legacy one-pass empty policy

安装程序会在 macOS 和 Linux 上安排每天 04:30 执行记忆维护任务。失败的阶段最多重试三次,并采用有上限的指数退避;部分导入失败会返回非零退出码并阻止整理。systemd 使用 Persistent=true;如果错过了计划时间,已加载的 launchd 日历 Agent 会在 Mac 唤醒后补启动一次。托盘会显示最近的结果;当维护失败、仍不完整、卡住或已超过 36 小时时会发出警告,并提供立即运行维护选项。complete_with_deferred 结果仍可查看,但不会使服务指示灯变橙色。输出写入 ~/.ariadne/logs/maintenance.log;追加写入的结果保存在 ~/.ariadne/state/activity.jsonl。

v0.5.0 之前

  • 明确集成 Windows 客户端 —— 安装程序会检测 Claude Code 和 Codex CLI,然后询问要配置哪一个。它不会为不存在的客户端创建设置,非交互式安装必须明确指定选择。
  • 仅安装核心组件和稍后配置模式 —— 使用 -CoreOnly 安装本地 Ariadne 技术栈,之后再通过 -ConfigureClients 连接 Claude 或 Codex。需要征得同意的更新会保留现有客户端配置,不作改动。
  • 物理机和虚拟机预检 —— PowerShell 现在会报告 Windows、CPU、RAM、磁盘和机器类型;检查默认模型的最低资源要求;提供 Proxmox/KVM CPU 指南;并在注册服务前直接执行 qdrant.exe --version。

v0.4.0 新增内容

  • 本地 Token 效率指标 — Ariadne 会估算自动召回和 MCP 召回所确认节省的 Token 数、召回开销,以及带正负号的上下文净收益。总计数据可通过 ariadnectl metrics、其 JSON 格式以及托盘菜单查看。
  • 不含内容的记账 — 本地仅存储数字计数器和不透明的事件哈希值。重复交付钩子会计为开销,但不会重复计算同一会话上下文的已表示部分。

v0.3.1 新增内容

  • 简化修复 Windows 前置依赖 — 安装程序现在会检测官方 Qdrant Windows 二进制文件所需的 Microsoft Visual C++ Runtime。如果缺少该组件或其版本低于 14.44,Ariadne 会下载 Microsoft 官方可再发行组件、验证其 Authenticode 签名者,并仅针对该前置依赖请求管理员批准。
  • 提供可操作的 Qdrant 故障信息 — 启动等待窗口延长至完整的 60 秒;加载器和进程错误会保留在 ~/.ariadne/logs/qdrant.log 中;安装程序会显示计划任务结果及日志末尾几行,而不再只返回笼统的超时提示。
  • 覆盖真实的 Windows Qdrant 场景 — CI 现在会下载精确锁定版本的 Qdrant 压缩包、验证其 SHA-256 摘要、使用 Ariadne 的环回和存储设置启动 Qdrant,并在 Windows 运行器上等待 /healthz。

v0.3.0 新增内容

  • 原生 Windows 安装 — install.ps1 会安装发行版二进制文件、原生 Qdrant、已签名的 Ollama、用户级启动任务、Codex/Claude Code MCP 绑定、技能和会话钩子。无需 Docker;只有 Windows 缺少 Qdrant 所需的 Microsoft VC++ Runtime 时,才需要管理员批准。
  • Windows 自动更新 — 支持版本感知的托盘现在也会在 Windows 上提供与 macOS 和 Linux 相同的显式确认和自动重启流程。
  • 五种发行目标 — GitHub Actions 会根据标签构建 Windows x64、Linux x64/ARM64 和 macOS Intel/Apple Silicon 压缩包。
  • 可验证的构建产物 — 发行包包含 SHA-256 校验和、CycloneDX SBOM,以及用于校验和清单的无密钥 Sigstore 签名包。
  • MCP 发现 — 系统会根据发行版二进制文件生成跨平台 MCPB 和 server.json,并通过 GitHub OIDC 发布到官方 MCP Registry。
  • 公开项目网站和发布工具包 — 结构化元数据、llms.txt、平台安装路径、架构、安全说明和可直接使用的发布文案,让人和 AI 系统都能更轻松地发现 Ariadne。

为什么选择 Ariadne

  • 稳定 — 使用 Qdrant 服务,而不是会在压缩时触发 SIGSEGV 的嵌入式 HNSW。
  • 多语言 — bge-m3 支持 100 多种语言;跨语言召回有效(英语查询可找到乌克兰语笔记;在 uk/ru/en/es/de/it/pl/ro/hu/lt/lv/et/fi/fr/ar 之间,余弦相似度约为 0.8–0.94)。
  • 混合搜索 — 使用 RRF 融合稠密向量(bge-m3)和 BM25 稀疏向量(纯 Go 分词器;Qdrant 在服务端计算 IDF),随后进行有界的历史质量重排。精确术语、代码和名称会显著提升排名;明确的时间查询会优先匹配正确日期的事件,而不会盲目降低持久决策的权重。
  • 默认拒绝的范围限定召回 — 语义搜索必须指定项目(wing),还可进一步按类别(room)缩小范围。跨项目召回需要明确的用途,并经人工批准托盘请求。
  • 原生支持 — 在 Windows、macOS 和 Linux 上使用 Qdrant 二进制文件和 Ollama;支持 NVIDIA/AMD 加速、Apple Silicon 上的 Metal,以及 CPU 回退。

组件

路径说明
cmd/ariadneMCP 服务(stdio)。工具:memory_save、memory_recall、credential_access、memory_delete、memory_move。
cmd/import从 chromadb sqlite、Markdown 记忆文件或 JSONL 回填(批量嵌入)。
cmd/hookClaude Code 会话钩子(ariadne-hook):SessionStart 自动召回,以及 SessionEnd/PreCompact 自动捕获。
cmd/install一次性安装程序(macOS/Linux):预检、复用或安装 Qdrant、服务、MCP、技能、钩子。Windows 使用 install.ps1。
cmd/ariadnectl控制与健康检查核心:状态/指标、生命周期、备份/恢复/导出、维护/整合、隔离与审批检查。
cmd/eval只读排名回归测试和已评估检索运行对比。
internal/store存储核心:嵌入(Ollama)、BM25 稀疏检索、Qdrant 混合检索。
internal/maintenance与 UI 无关、带边界的维护阶段重试引擎。
internal/qdrantauthAPI 密钥加载和远程 Qdrant 的失败关闭传输策略。
internal/retrievaleval对可比较的排名运行进行召回率/MRR/nDCG 评分。
cmd/ariadne-tray跨平台托盘监控工具(macOS/Linux/Windows)——纯 Go、本地化,基于 ariadnectl 核心。
skills/ariadneCodex 和 Claude Code 技能:限定范围的召回/保存规范 + doctor.sh/recall.sh。
deploy/LaunchAgent / systemd 模板:Qdrant 服务、每日 memfiles-sync、托盘自动启动。
poc/用于验证技术栈的独立实验。

设置

Windows

以普通用户身份打开 PowerShell。先下载脚本,以便在执行前检查:

irm https://raw.githubusercontent.com/mclaut/ariadne/main/install.ps1 -OutFile install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1

Windows 安装程序会下载匹配的 GitHub Release 压缩包,并使用 SHA256SUMS 校验。如果缺少 Ollama,安装程序会下载官方的 OllamaSetup.exe,验证其 Authenticode 签名者为 Ollama Inc.,并在不提升权限的情况下安装。安装程序会在验证 SHA-256 摘要后安装固定版本的原生 Qdrant x64 资源,将 Qdrant 和 ariadne-tray 注册为当前用户的计划任务,拉取 bge-m3 和摘要模型,然后询问是否将 Ariadne 注册到检测到的 Codex 和/或 Claude Code CLI。客户端配置始终需要明确选择:安装程序绝不会为未安装的软件创建设置。

可直接选择一项集成以进行无人值守设置、仅安装核心组件,或稍后再配置客户端:

.\install.ps1 -Yes -Integration Claude
.\install.ps1 -Yes -Integration Codex
.\install.ps1 -Yes -Integration Both
.\install.ps1 -Yes -CoreOnly
.\install.ps1 -ConfigureClients -Integration Codex

-Integration None 和 -CoreOnly 不会更改任何客户端配置。托盘驱动的更新也会保留现有客户端设置;更新期间不会将新发现的客户端纳入配置。

官方 Qdrant Windows 二进制文件需要 Microsoft Visual C++ Runtime 14.44 或更高版本。Ariadne 会在启动 Qdrant 前检查该运行时。如果缺失或版本过旧,安装程序会下载官方 Microsoft x64 可再发行组件,验证 Microsoft Authenticode 签名者,并由 Windows 请求管理员批准此先决条件。如果取消了提示,请重新运行相同的安装命令。如果 Qdrant 仍无法启动,安装程序会直接在 PowerShell 中打印诊断信息和 ~/.ariadne/logs/qdrant.log 的末尾内容。

Ariadne 安装的 Qdrant 始终绑定到 127.0.0.1。可有意复用远程 Qdrant,而无需将其密钥放入客户端文件:

.\install.ps1 -QdrantHost qdrant.example -QdrantRestPort 6333 `
  -QdrantGrpcPort 6334 -QdrantApiKeyFile C:\secure\qdrant.key -QdrantTls

安装程序会验证经过身份验证的健康检查端点,并且只向 Codex、Claude、钩子和托盘传递密钥文件路径及传输设置。-AllowInsecureRemoteQdrant 是针对独立加密的专用隧道的明确例外。Ollama 仍由其原生 Windows 应用管理,并提供 http://localhost:11434 服务。要求:Windows 10 22H2 或更高版本、x64、Windows PowerShell 5.1+、至少 8 GiB RAM 和 15 GiB 可用磁盘空间,用于默认本地模型(建议使用 16 GiB RAM,优先选择 4 个或更多 CPU 核心)。 虚拟机需要提供相同的来宾资源;对于 Proxmox/KVM,请公开 host 等现代 CPU 类型。安装程序会在下载前打印检测到的硬件信息,并验证 qdrant.exe 是否可在本机运行。 如果这些依赖项是单独配置的,请使用 -SkipOllama 或 -SkipModels。

一个命令(Linux + macOS)
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh
升级现有安装

托盘每六小时检查一次 GitHub Releases,并在确认后安装所选的确切版本。在 macOS 上,每个 v0.8.16 或更高版本的安装程序还会在 Applications 中创建或更新 Ariadne.app,因此后续更新会让应用、启动器、托盘和命令行二进制文件保持一致。

如果当前运行的托盘版本为 v0.8.13 或更早版本,其 v0.8.14 之前的更新交接流程可能会在安装程序启动前关闭。请仅运行一次此固定命令:

curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/v0.8.16/install.sh | sh

系统会继续使用现有的 Qdrant 集合、备份、设置和日志。v0.8.16 启用后,托盘即可恢复正常的、需经同意的更新。如果需要诊断更新问题,请检查 ~/.ariadne/logs/update.log。

无需手动操作:install.sh 会引导安装 Go 和源代码(GitHub tarball——无需 git),然后运行下方的安装程序,该程序会自动安装 Ollama、Qdrant、模型、服务,以及 Linux 上的托盘及其桌面依赖项。直接传递安装程序标志,例如指定更轻量的摘要模型或进行预览:

curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh -s -- -summary-model qwen2.5:3b
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh -s -- -dry-run
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh -s -- -strict-supply-chain

(在 Linux 上,sudo 会在终端中提示输入信息,用于安装发行版软件包和官方 Ollama 安装程序,因此通过管道运行没有问题。)

供应链默认值已固定:除非设置了 ARIADNE_GO_VERSION,否则 install.sh 会安装 go1.26.2,并在解包前验证 Go tarball 的 SHA256;Go 安装程序会在检查 GitHub 发布资源摘要后,从固定的 -qdrant-version 版本(默认为 v1.18.2)安装 Qdrant。对于安全限制严格的环境,请传入 -strict-supply-chain;在 Linux 上,此选项会拒绝 Ollama 的 curl | sh 引导安装,并要求你先手动安装 Ollama。

Linux 和 Ollama

Ariadne 使用 Ollama 生成 bge-m3 嵌入向量,并在启用会话钩子时使用它运行本地摘要模型。系统会复用现有的本地 Ollama 安装。如果缺少 ollama 命令,默认安装程序会运行 Ollama 官方 Linux 安装脚本,等待 http://localhost:11434 就绪,然后拉取 bge-m3 和配置的摘要模型。

如果已安装 Ollama,但其守护进程已停止,请在运行 Ariadne 安装程序前启动它:

sudo systemctl enable ollama
sudo systemctl start ollama
sudo systemctl status ollama
curl -fsS http://127.0.0.1:11434/api/version

在 Linux 上,Ollama 仍是由操作系统管理的系统服务。ariadnectl start、ariadnectl stop 和 ariadnectl restart 命令会管理 Ariadne 的 Qdrant 用户单元,并有意不操作 Ollama。在没有 systemd 的系统上,请通过本地服务管理器运行 ollama serve。如需了解手动安装软件包、ARM64、NVIDIA 和 AMD/ROCm 的设置,请参阅 Ollama 官方的 Linux 安装指南。

使用 -strict-supply-chain 时,Ariadne 绝不会运行 Ollama 的 curl | sh 安装程序。请自行安装并启动 Ollama,然后重新运行 Ariadne。-skip-deps 也会将 Ollama 和 Linux 托盘依赖项完全留给你自行处理。若要复用另一台机器上的 Ollama,请在那台机器上准备所需模型,并同时传入 -ollama http://host:11434 和 -skip-model-pull。

从克隆版本安装(macOS/Linux,或用于修改代码)
go run ./cmd/install -dry-run   # preflight + plan, changes nothing
go run ./cmd/install -yes       # do it

安装程序会谨慎处理现有基础设施:

  • 已在运行的 Qdrant 会被复用,绝不会重启或重新配置——Ariadne 只会添加自己的集合。如果繁忙的端口上运行的不是 Qdrant,安装就会中止。使用 -qdrant-host/-qdrant-rest/-qdrant-grpc 指向远程实例,使用 -ollama 指向远程嵌入模型服务。除非配置了 API 密钥身份验证和 TLS(或者已为经过加密的专用隧道设置了明确的不安全覆盖选项),否则远程 Qdrant 会默认拒绝连接。
  • 预先检查 GPU、RAM 和磁盘空间,并明确说明资源不足的情况(没有 GPU → 如实警告“在 CPU 上生成嵌入,速度约慢 10 倍”;RAM <6GiB 或磁盘空间 <5GiB → 直接失败)。
  • 幂等:重新运行时会跳过所有已就绪的部分。

安装程序会安装 Qdrant 二进制文件和服务(macOS LaunchAgent / Linux systemd 用户单元,仅限环回接口),将 Go 二进制文件构建到 ~/.ariadne/bin,拉取 bge-m3,创建集合,在 ~/.claude.json 中注册 MCP 服务(保留备份),并安装 Claude Code 技能。 Codex 和其他 MCP 客户端可以将 ~/.ariadne/bin/ariadne 注册为 stdio MCP 服务,从而使用同一安装。

发布压缩包和 MCPB

每个稳定版都包含适用于五种目标平台的原生压缩包、跨平台 .mcpb、server.json、SHA256SUMS、CycloneDX SBOM 和 Sigstore bundle。MCPB 包含所有受支持平台的 MCP 服务;仍需先通过原生操作系统安装程序安装 Qdrant 和 Ollama。手动下载和验证文件请参阅 GitHub Releases。

手动设置(macOS 示例)

运行时位于 ~/.ariadne(二进制文件、数据、备份、日志)——仓库仅存放源代码。在 macOS 上,这不仅是偏好问题:launchd Agent 无法在 ~/Desktop/~/Documents 下执行程序或写入日志(TCC 限制),因此会以 EX_CONFIG 退出且日志为空。请将运行时放在这些文件夹之外。

mkdir -p ~/.ariadne/{bin,backups,logs}

# 1. Qdrant (native binary — no Docker)
curl -sL https://github.com/qdrant/qdrant/releases/latest/download/qdrant-aarch64-apple-darwin.tar.gz \
  | tar xz -C ~/.ariadne/bin

# 2. Ollama + bge-m3 (native, Metal)
brew install ollama && brew services start ollama
ollama pull bge-m3

# 3. Build + install
go build -o ~/.ariadne/bin/ariadne    ./cmd/ariadne
go build -o ~/.ariadne/bin/ariadnectl ./cmd/ariadnectl
go build -o ~/.ariadne/bin/import     ./cmd/import

# 4. Qdrant as a service (see the TCC note above)
sed "s|__HOME__|$HOME|g" deploy/com.ariadne.qdrant.plist > ~/Library/LaunchAgents/com.ariadne.qdrant.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.ariadne.qdrant.plist

# 5. Register with Claude Code — add to ~/.claude.json mcpServers:
#   "ariadne": { "type": "stdio", "command": "<home>/.ariadne/bin/ariadne" }

**安全性:**Qdrant 默认没有身份验证——模板会将其绑定到 127.0.0.1(QDRANT__SERVICE__HOST)。切勿将其暴露在局域网中:你的记忆会以明文载荷形式存储。若要有意使用远程 Qdrant,请在服务端设置管理员级或限定集合范围的 API 密钥,并通过 ARIADNE_QDRANT_API_KEY_FILE(推荐,权限模式为 0600)或仅供进程使用的 ARIADNE_QDRANT_API_KEY 配置 Ariadne,同时设置 ARIADNE_QDRANT_TLS=1。Go 客户端会通过 gRPC 元数据发送密钥,每个 Qdrant REST 请求都会使用 api-key 标头。Qdrant 本身建议在使用 API 密钥时始终启用 TLS。安装程序接受文件形式的密钥配置,因此生成的 MCP 配置只会保留路径,不会保留密钥值;生成的维护程序、钩子和托盘启动器也会使用相同的非敏感客户端设置。ARIADNE_QDRANT_ALLOW_INSECURE_REMOTE=1 是一个明确的例外选项,仅适用于经过单独加密的传输方式,例如专用隧道;不得在普通局域网中使用。

通过环境变量配置(方括号内为默认值):ARIADNE_QDRANT_HOST [localhost]、ARIADNE_QDRANT_PORT [6334]、ARIADNE_QDRANT_REST [http://localhost:6333]、ARIADNE_QDRANT_API_KEY_FILE、 ARIADNE_QDRANT_API_KEY、ARIADNE_QDRANT_TLS [0]、 ARIADNE_QDRANT_ALLOW_INSECURE_REMOTE [0]、ARIADNE_OLLAMA [http://localhost:11434]、ARIADNE_MODEL [bge-m3]、 ARIADNE_COLLECTION [ariadne]。

Codex 和 Claude Code 技能

skills/ariadne/ 会教会 Agent 何时召回、哪些内容不应保存,以及如何操作这套技术栈;tools/doctor.sh 会检查整条链路(二进制文件 → 服务 → 模型 → 集合 → 绑定 → MCP 注册),而 tools/recall.sh "query" 无需 MCP 即可通过命令行召回。安装(必须复制实际文件——会话开始时不会发现符号链接形式的技能):

cp -R skills/ariadne ~/.claude/skills/ariadne
cp -R skills/ariadne ~/.codex/skills/ariadne

会话钩子 — 自动回忆与自动捕获

安装程序会注册两个 Claude Code 生命周期钩子(cmd/hook,二进制文件 ariadne-hook;可使用 -skip-hooks 跳过):

  • SessionStart → 自动回忆。 当会话在有记忆的项目中启动时(wing = 最近的项目根目录或其 .ariadne-wing 标记),系统会将最相关的结果注入为上下文 — Claude 会在你发送第一条消息之前“记住”该项目。没有记忆的项目会以完全干净的状态启动;遇到故障时不会发出提示,也绝不会阻塞会话。
  • SessionEnd → 自动捕获。 一个分离运行的工作进程(会话退出绝不会被阻塞)会解析转录内容,提取确定性事实(分支、提交、耗时),并让本地 Ollama 聊天模型撰写一段 4–8 句的摘要 — 包含决策及其原因、修复和待办事项。每个会话只生成一条经过整理的日记记忆;绝不会存储原始转录内容。琐碎的会话会被跳过(最少轮数保护 + 摘要器可以返回 SKIP)。 日志:~/.ariadne/logs/capture.log。

通过环境变量配置:ARIADNE_CAPTURE=0 可禁用捕获, ARIADNE_SUMMARY_OLLAMA [默认为 ARIADNE_OLLAMA 或 localhost], ARIADNE_SUMMARY_MODEL [qwen2.5:7b],ARIADNE_CAPTURE_MIN_TURNS [3]。默认情况下,摘要端点必须是本地端点;如果你有意使用远程摘要模型,请设置 ARIADNE_SUMMARY_OLLAMA 和 ARIADNE_CAPTURE_REMOTE=1,因为精简后的转录文本会发送到该端点进行摘要。 摘要模型仅在捕获时加载,并会在之后立即卸载 (keep_alive:0),因此只会短暂占用 RAM;若要进一步降低资源占用,可设置 ARIADNE_SUMMARY_MODEL=qwen2.5:3b(约 2GB,相比之下约 4.7GB,但摘要质量会有所降低)— 也可以向安装程序传入 -summary-model,让它拉取该模型。

整合可以使用更强的模型,而不会增加捕获延迟: ARIADNE_CONSOLIDATION_MODEL 默认回退到 ARIADNE_SUMMARY_MODEL,而 ARIADNE_CONSOLIDATION_JUDGE_MODEL 默认回退到整合模型。配备 24GB 内存的机器可以使用 qwen2.5:14b(约 9GB)同时承担这两种角色;更改计划维护任务前,请先通过试运行验证。

每日日记整合

ariadnectl consolidate 会将短期会话时间线转化为精简的长期知识。默认情况下,它会选择超过 24 小时的 room=diary 条目,逐个原子化处理捕获的会话,然后在每个项目(wing)内合并并去重经过验证的同日输出。配置的本地整合模型只会生成 decisions、gotchas 和 reference 记忆。请求会按有界的源令牌预算拆分。 若结果为空,系统会先将源标记为 candidate_empty;只有在默认的七天宽限期之后再次得到空结果,才会将其归档为 empty_confirmed。

只有在需要归档且最新备份超过七天时,自动整合才会创建原生 Qdrant 备份(可通过 ARIADNE_BACKUP_MIN_INTERVAL 覆盖);手动运行 ariadnectl backup 则不受此限制。新记忆会先保存,然后才会将源日记条目标记为已归档;源文本和向量都会保留。确定性故障会保持活动状态,并添加模型及处理流程修订标记,因此只有在模型或整理流程发生变化后,未更改的输入才会重新处理。使用 --before 48h 可延长审查时间范围,或使用 --dry-run 检查输出,而不会更改存储或生产活动历史。使用 include_archived: true 搜索历史记录。除非明确设置 ARIADNE_CAPTURE_REMOTE=1,否则远程摘要端点仍会被阻止。

编码记忆评估

已检入的测试套件无需连接实时数据库或模型,即可验证历史排序不变量:

go run ./cmd/eval -cases evaluation/coding-memory.json

目前涵盖显式时间查询的时效性、持久决策不盲目衰减、语义主导性边界、超大旧版负载、来源质量以及多语言时间意图。若要比较实际的 BM25 和 learned-sparse 输出,请导出同一组已评判查询对应的有序点 ID,并运行:

go run ./cmd/eval \
  -retrieval-runs evaluation/retrieval-runs.example.json \
  -baseline bm25

比较结果会报告各个截断位置的宏平均 Recall、MRR、nDCG 和 nDCG 差值;-json 会输出机器可读的分数。已检入的文件只是示例架构,并非产品证据。要得出真实结论,必须使用来自相同语料、查询集、筛选条件和截断位置的固定相关性判断与运行结果。此评估器不会连接 Qdrant、Ollama 或远程模型,也不会修改记忆。

监控

托盘/菜单栏监控每隔 5s 轮询一次 ariadnectl status -json,并显示绿色/橙色/红色/灰色图标、各服务详情以及启动/停止/重启/备份操作;服务停止时会发出通知。菜单和工具提示会显示当前 Ariadne 版本。后台每隔六小时查询一次 GitHub Releases;当 Windows、macOS 和 Linux 上有较新的稳定版本时,会在征得同意后提供更新;更新输出写入 ~/.ariadne/logs/update.log。ariadne-tray UI 已本地化,支持 7 种语言(English、Українська、Deutsch、Italiano、Español、Français、Polski),并提供实时的 🌐 语言切换器,让当前语言一目了然。选择会保存在 ~/.ariadne/lang 中,ariadnectl 也会采用该语言,因此整个界面都会保持语言一致。添加一种语言只需在 internal/i18n 中增加一个代码块。

预估的令牌节省量

Ariadne 会在本地跟踪其交付的已观测召回上下文,以及每条归因记忆所代表的有界来源上下文。托盘会显示累计测得的节省量、归因覆盖率、召回次数和未归因交付量;完整计数器可通过以下方式查看:

ariadnectl metrics
ariadnectl metrics -json

对于有来源依据的召回,测得的净值为来源上下文减去完整已观测成本(查询加响应)中归因的部分。在同一客户端会话中重复召回同一条记忆时,其来源只计入一次,但两次交付都会计数。没有来源大小元数据的旧版/手动记忆不会获得虚构的收益:其成本会单独报告为 unattributed,而不会被算作负开销。memory_save 接受可选的 source_tokens,供了解有界来源大小的集成使用;也接受可选的 occurred_at,用于历史事实;捕获和整合过程会自动填充来源信息。确定性的多语言估算使用 UTF-8 字节,因为不同客户端和模型的精确分词器各不相同;~ 表示保守的上下文复用估算,并非服务提供商的计费数据或 A/B 反事实对照。指标仅包含数值计数器和不透明哈希,不包含记忆或转录文本;数据保存在 ~/.ariadne/metrics.db 中,并仅授予用户权限。原始事件只追加不修改;架构 v3 通过事务维护每日汇总,以支持有界的生命周期读取,并为滚动时间窗口建立索引。设置 ARIADNE_METRICS=0 可禁用新记录。

  • ariadne-tray(纯 Go,fyne.io/systray)是所有平台上的监控工具:安装程序会将其构建到 ~/.ariadne/bin 并注册为自动启动程序——在 Linux 上创建 ~/.config/autostart 条目,在 macOS 上创建 com.ariadne.tray LaunchAgent(并迁移替换任何旧版 Swift 监控程序,确保只显示一个图标)。在 Linux 上,它需要 StatusNotifierItem 主机(KDE/XFCE 原生支持;在 GNOME 上安装 "AppIndicator and KStatusNotifierItem" 扩展)。在 Windows 上,它通过当前用户的计划任务启动,并通过签名发布压缩包更新。

备份与可移植性

两个不同的概念:

  • 备份 / 恢复 — 快速、完整的原生 Qdrant 快照(包含向量;一对一恢复,绑定到嵌入模型)。用于在数据损坏后恢复。
    ariadnectl backup            # 10 recent snapshots; older ones move to backups/archive
    ariadnectl restore <file>    # recover the collection from a snapshot (destructive)
    
  • 导出 / 导入 — 可移植的 JSONL,包含文本、范围、来源信息、历史状态、时间戳和来源统计(不含向量,因此可在不同机器间迁移,并使用任意模型重新生成嵌入)。用于迁移 / 检查。
    ariadnectl export [file]                        # all memories → JSONL
    import -source jsonl -file export.jsonl           # re-embed + upsert an export
    

import 还可以从已归档的 chromadb sqlite(-source chroma -db <file>)或 Markdown 记忆文件(-source memfiles)回填数据。 所有导入在 (wing, room, text) 范围内都是幂等的;相同文本可以有意存在于不同项目或房间中。对于 memfiles,-sync 使用保护隐私的来源键和相对来源路径,在生成嵌入前跳过未更改的文件,先导入有更改的修订版本,保留原始事件时间,将先前的文本块标记为 superseded,并将来自已消失来源的文本块标记为 orphaned;不会删除其历史记录。安装程序会注册一个每日 Agent(com.ariadne.sync / ariadne-sync.timer),为你运行带重试次数限制的 memfile 同步和日记整理;大量修改笔记后,请使用 ariadnectl maintenance 或托盘按钮。-force 标志仅用于明确的迁移 / 修复操作;日常同步时必须省略该标志,以免将未更改的修订版本加入嵌入队列。

状态

v0.8.18 — 当前版本。访问区域位于托盘菜单靠上位置, 包含仅待处理项目的决策队列、按每页十条保留的历史记录, 以及可读的用途/状态行,详情中显示完整范围。

v0.8.16 新增了带原生图标的 macOS 签名版 Ariadne.app,并安装到 Applications。 单击一次即可恢复或重新注册受管理的托盘 LaunchAgent,同时 按平台限定的启动器测试保留了 Windows CI 门禁。

v0.8.14 使 macOS 托盘更新助手能够在托盘退出前独立运行, 并追加明确的交接诊断信息,避免已确认的更新悄无声息地闲置安装程序。

v0.8.13 通过全新的持久化上下文,安全地延后有时限的整合任务, 从而保留未更改的源日记;托盘会报告正常的 complete_with_deferred 结果, 而不是误报维护失败。v0.8.12 新增了精确的、经所有者批准的凭据信任机制,并提供仅追加的信任、使用和撤销记录;为具备推理能力的 Ollama 模型提供仅含 JSON 的确定性整合;以及 20 分钟的维护监督器时限,防止卡住的计划子进程持续运行数小时。此外还包括跨平台托盘单实例强制机制、规范的 launchd 所有权协调、保留历史记录的旧版 plist 归档,以及实际托盘进程诊断;无损 Qdrant 归因分页、可回忆与历史语料统计、实测与估算来源信息、明确的安全归因回填,以及有界的 Agent 端来源统计;单连接 MCP 客户端、launchd 描述符容量、载荷索引协调、Qdrant 客户端优雅关闭,以及描述符压力诊断;远程 Qdrant 认证失败时默认拒绝、仅追加的 metrics v3 汇总、完整分页集合扫描、确定性的 BM25/学习型稀疏检索评估、可复用的维护编排,以及可逆的网站清理;经过验证的 Qdrant/Ollama 生命周期操作、适用于 launchd 的 Homebrew 解析、持久化的重启后通知、PID 可观测性、无冲突的服务控制、明确的双按钮审批警告、可靠的受监督托盘重启、如实报告的服务控制错误、跨上下文转换持续保留的 Claude 回忆、可识别更新的钩子和技能、macOS 前台审批警告、经人工批准的跨工作区回忆、来源加权、一次性凭据授权、仅追加的审批审计、默认拒绝的项目回忆、确定性的凭据拦截/脱敏、仅追加的机密隔离、稳定的项目标记、运行时所有权诊断、支持修复的维护、托盘生命周期日志、如实反映全栈状况的 doctor 检查、精确 ID 检索、按房间范围限定的混合检索、仅追加的来源历史、保守的时间排序、范围限定的身份、增量式且确保时间戳安全的 memfile 同步、两阶段空内容整合、带历史记录/存储可观测性的有界重试维护、即时持久化的引用/报告捕获、如实统计的 token 效率、自动每日日记提炼、明确的 Windows 客户端设置、本地 token 效率指标、原生桌面安装、会话钩子(自动回忆+精选自动捕获),以及按时间排序的日记;这些功能现已全部上线,已有数千条记忆在日常使用中。批量导入会批量生成嵌入,大幅加快大规模回填。如果 BM25 对形态丰富的语言效果太弱,还可选择升级为学习型稀疏检索(在 CUDA 设备上使用 bge-m3 SPLADE)。

贡献与安全

欢迎通过问题选择器提交可复现的错误报告、原生 Windows 安装程序反馈和有针对性的功能请求。安装和使用问题请在 GitHub Discussions 中提出。有关本地检查和拉取请求的说明,请参阅 CONTRIBUTING.md。

可以清除工作树中的生成站点文件,且不会丢失数据:make clean 会将构建输出移至 ~/.ariadne/archive/site/,并附带恢复清单;make clean-all 还会清除 site/node_modules。

请勿为漏洞公开创建问题。请遵循 SECURITY.md,并使用 GitHub 的私密漏洞报告功能。

贡献者

  • 项目维护者 — 负责架构、产品方向、验证和发布决策。
  • OpenAI Codex — 负责实现、测试、文档、跨平台打包和发布工程。
  • Claude Code — 负责实现、本地化、安装程序加固和跨平台运行时改进。

所有 AI 辅助的变更均由维护者审查并批准。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。