AI编程代理记忆系统

Context Fabric是一个本地优先的AI编程代理记忆系统,通过三层存储架构(工作记忆、项目记忆和语义记忆)实现跨会话、跨项目的持久化记忆功能,适用于开发者使用MCP兼容的编程工具。

  • by Abaddollyon
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Abaddollyon/context-fabric

使用说明

上下文结构

用于AI编码代理的本地第一MCP存储器。

你的代理会记住决策、模式、项目背景,以及你离开时发生的变化——包括会话、项目和工具。

[!注意] 1.0之前,但为日常使用而设计。 Context Fabric被积极使用、测试并定期发布。API和存储格式在1.0之前可能仍在发展,因此请固定版本并查看 更新日志 在升级之前。

从这里开始

为什么它存在

编码代理在会话中表现出色,在会话之间健忘。当终端关闭时,重要的上下文就会消失:决策、调试发现、代码库约定、部分工作,以及“自从我上次来这里以来发生了什么变化?”的答案

Context Fabric为MCP兼容的编码代理提供了一个持久的内存层,该层保持本地、可搜索和有用。

给谁的

  • 使用支持MCP的编码工具的开发人员,如Claude Code、Cursor、Codex CLI、Gemini CLI、OpenCode或Kimi
  • 需要持久代理内存而不向托管内存服务发送代码和上下文的团队
  • 希望使用轻量级本地内存基板而不是连接单独的向量数据库堆栈的构建者

为什么选择上下文结构

  • 本地设计优先 --SQLite存储、本地嵌入、Docker/本地部署、零云依赖。
  • 专为编码代理而设计 --记住决策、错误修复、约定、代码模式和当前项目状态。
  • MCP本地 --使用工具、资源和提示作为真正的MCP服务器工作。
  • 代码感知和时间感知 --语义代码搜索、符号索引和围绕离线间隙的定位。
  • 实际采用 -无需外部矢量数据库,无需API密钥,无需托管控制平面。

你得到了什么

记忆与检索

  • 三层存储器 --工作(L1),项目(L2),语义(L3)。内存自动路由到正确的层。
  • 混合搜索 --FTS5 BM25+矢量余弦+互易秩融合。查询端指令前缀按嵌入器系列(BGE、E5、MiniLM)自动应用。可选的解释在不改变默认排名的情况下公开组件得分和提升。
  • 语义回忆 --通过ONNX+fastembed进行进程内矢量嵌入(bge-small-en-v1.5 默认情况下,与较大型号或GPU进行一次环境变量交换)。不需要API密钥。
  • 捆绑ANN — sqlite-vc 自v0.13版本起,船舶成为常规依赖项。KNN覆盖整个语料库,如果可加载扩展无法连接,则优雅地回退。
  • 可选CUDA推理 --set CONTEXT_FABRIC_EMBED_EP=cuda +奔跑 scripts/setup-gpu.sh 在NVIDIA硬件上实现约30倍的摄取吞吐量。
  • 本地代码索引 --扫描源文件,提取符号,通过文件监视保持新鲜,并可以检查/修复过时或损坏的索引状态。
  • 时间意识导向 --“我不在的时候发生了什么变化?”具有离线间隙检测和时区支持。
  • 幽灵消息 --相关记忆通过 context.getCurrent 而不会打乱主要工作流程。
  • 公共基准线束 --可重复的BEIR SciFact/FiQA和LongMemEval_S跑步者 benchmarks/public/.

记忆智能

  • 来源 --关于记忆的结构化引文块(sessionId, eventId, filePath, commitSha, sourceUrl以及更多)。
  • 店铺除尘 --L3的余弦近似重复检测 skip, merge,或 allow 策略。
  • 双时态记忆 — supersedes, validFrom,以及 validUntil 支持“当时什么是真的?”的推理。
  • 范围织物图 --时态实体和关系将项目、会话、文件、符号、记忆、决策、错误和沿袭/路径查询技能联系起来。

代理人体工程学

  • 技能 --具有延迟、可调用指令块和使用跟踪的过程内存。
  • MCP资源 --可浏览 memory://skills, memory://recent, memory://conventions, memory://decisions,以及模板化资源视图。
  • MCP提示 --斜线命令工作流,如 cf-orient, cf-capture-decision, cf-review-session, cf-search-code,以及 cf-invoke-skill.
  • context.importDocs --从常见的入职文档中一次性播种,如 README.md, CHANGELOG.md, CONTRIBUTING.md,以及 AGENTS.md.
  • 召回优质线束 --基准recall@kMRR与 npm run bench:quality.

运营与数字化转型

  • 29个MCP工具 --内存CRUD、召回/定向、代码搜索、代码索引修复、图查询/导入/导出、文档导入、备份/导出/导入、度量/健康和6个技能工具。
  • 平滑关闭 --清空机上通话,检查WAL,并干净地关闭。
  • 数据完整性 --启动检查、显式多行事务和在线备份。
  • 可观测性 --结构化日志+ context.metrics 和 context.health.
  • 自行设置 — context.setup 可以将Context Fabric安装到受支持的CLI中。
  • Docker优先 --容易 docker run --rm -i 使用持久命名卷存储进行传输。

快速开始

几分钟后开始跑步:

# 1. Clone and build the Docker image

git clone https://github.com/Abaddollyon/context-fabric.git
cd context-fabric
docker build -t context-fabric .

# 2. Verify the server responds

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
  | docker run --rm -i context-fabric

3.将其添加到CLI 使用Docker传输:

docker run --rm -i -v context-fabric-data:/data/.context-fabric context-fabric

看 CLI设置 对于所有支持的CLIs的复制粘贴配置,或者让你的AI在Context Fabric可访问后执行:

“使用Docker为Cursor安装和配置上下文结构”

Local install (without Docker)

需要Node.js 22.5+:

git clone https://github.com/Abaddollyon/context-fabric.git
cd context-fabric
npm install
npm run build

服务器位于 dist/server.js.将CLI MCP配置指向 node dist/server.js.

支持的CLIs

CLI 设置 文档
克劳德代码 context.setup({ cli: "claude-code" }) 指南
基米 context.setup({ cli: "kimi" }) 指南
开源代码 context.setup({ cli: "opencode" }) 指南
Codex CLI context.setup({ cli: "codex" }) 指南
Gemini CLI context.setup({ cli: "gemini" }) 指南
光标 context.setup({ cli: "cursor" }) 指南
克劳德桌面版 context.setup({ cli: "claude" }) 指南

[!提示] 一旦Context Fabric在一个支持MCP的工具中运行,它通常可以通过以下方式将自己安装到其他工具中 context.setup.

感觉如何

启动一个会话,代理将自己定位:

It is 9:15 AM on Wednesday, Feb 25 (America/New_York).
Project: /home/user/myapp.
Last session: 14 hours ago. 3 new memories were added while you were away.

将决策存储一次:

{ "type": "decision", "content": "Use Zod for all API validation. Schemas live in src/schemas/." }

稍后自然地回忆起来:

{ "query": "how do we validate inputs?" }
// => "Use Zod for all API validation. Schemas live in src/schemas/."

没有云帐户。没有隐藏的服务依赖关系。无需每次会话都重新解释代码库。

演出

商品开发盒上的数字(Ryzen 7 5800H+RTX 3060 12 GB,热运行,2026-04-28/29):

检索质量——公共基准

基准 度量 上下文结构(v0.14重新运行,GPU) v0.13发布 OpenAI text-embedding-3-small bge-base-en-v1.5(仅密集型)
贝尔科学事实 nDCG@10 0.7456 0.7439 0.774 0.740
贝尔科学事实 Recall@100 0.9633 0.9667 ~0.93 —
BEIR FiQA-2018nDCG@10 0.3809 0.3801 0.397 0.406
BEIR FiQA-2018Recall@100 0.7360 0.7361 ~0.69 —
LongMemEval_S(500 q,25K会话) Hit@5 0.9200 0.9520 — —
LongMemEval_S Recall@10 0.9210 0.9472 — —

阅读此文: v0.14保留了v0.13的低延迟本地检索路径,同时添加了用于排名诊断的解释/伪影工具。BEIR top-k的质量在重播中略有提高;LongMemEval的历史v0.13编号在当前缓存的运行时/数据集环境下无法再现,因此 docs/benchmarks.md 现在记录了已发布的基线和v0.14的重新运行,并带有用于回归分析的工件输出。

延迟和吞吐量

工作量 结果
BEIR SciFact查询p50(bge-base,GPU+sqlite-vec) 20毫秒
BEIR FiQA查询p50(bge-base,GPU+sqlite-vec) 87毫秒
LongMemEval_S查询p50(仅嵌入,支持工件) 10.8毫秒
L3 recall() @10K内存(FTS5预过滤器、CPU) 约8毫秒p50,<100毫秒p99
摄入吞吐量(bge基础,RTX 3060 CUDA EP) ~170个文件/秒 (≈32×CPU单核基线)
完整的测试套件 747项测试通过
增量 tsc 重建 约0.8秒
服务器冷启动(L3热启动) <1s

基准脚本: benchmarks/recall-latency.ts (npm run bench), benchmarks/public/ (npm run bench:beir:scifact, npm run bench:beir:fiqa, npm run bench:longmemeval:s).

建筑概览

CLI (Claude Code, Cursor, Codex, etc.)
  |
  | MCP protocol (stdio / Docker)
  v
Context Fabric Server
  |-- Smart Router -----> L1: Working Memory   (in-memory, session-scoped)
  |-- Time Service        L2: Project Memory   (SQLite, per-project)
  |-- Code Index          L3: Semantic Memory  (SQLite + embeddings, cross-project)

内存自动路由到正确的层。Scratchpad笔记转到L1。决策和错误修复将提交给L2。可重用的模式和约定转到L3。看 建筑 进行全深度潜水。

文档

资源 描述
入门指南 安装、首次运行、Docker和本地设置
CLI设置 所有7个受支持的CLI的每个CLI配置
工具参考 所有29个MCP工具的完整文档
技能 过程内存——创建、调用和组合可重用技能
MCP图元 资源(memory://...)和提示(cf-*)
内存类型 类型系统、层、布线、衰变、来源和除尘
配置 存储路径、TTL、嵌入注释和环境变量
代理集成 自动工具使用的系统提示指导
建筑 回收管道、内部构件和性能设计
基准测试 带有复制命令的公共基准测试结果(BEIR SciFact/FiQA、LongMemEval_S)
更新日志 版本历史和升级说明
维基 启动友好的指南、常见问题解答、故障排除和设置演练

贡献

欢迎捐款。看 贡献.md 关于如何开始。

许可证

麻省理工学院


不要每次会话都重新解释你的代码库。

开始使用 · 配置CLI · 浏览Wiki · 报告Bug