关于 INITE Brain
INITE Brain 是面向 AI Agent 的开源长期记忆系统,以带来源追溯的双时态知识图谱为核心。它通过 MCP 和 REST 支持检索、引用式回答、文档摄取与决策回忆。
主要功能
- 01双时态知识图谱
- 02带来源追溯的事实
- 03生成带引用的回答
- 04文档摄取与索引
- 05时间线与决策回忆
适用场景
- 01检索相关 Agent 记忆
- 02生成带引用的回答
- 03间隔一段时间后继续工作
- 04记录并检查决策
MCP 相关
它向 MCP 客户端提供记忆工具和资源,包括搜索、记录、综合回答与时间线操作。客户端支持时,连接器还可桥接 MCP sampling。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://brain.inite.ai/mcpclaude mcp add --transport http inite-ai-inite-brain-service https://brain.inite.ai/mcp{"mcpServers":{"inite-ai-inite-brain-service":{"type":"http","url":"https://brain.inite.ai/mcp"}}}在 Cursor 中打开{"servers":{"inite-ai-inite-brain-service":{"type":"http","url":"https://brain.inite.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"inite-ai-inite-brain-service":{"type":"http","url":"https://brain.inite.ai/mcp"}}}{"mcpServers":{"inite-ai-inite-brain-service":{"serverUrl":"https://brain.inite.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://brain.inite.ai/mcphttps://brain.inite.ai/mcp/{companyId}需要授权工具
30此工具无需参数。
详细介绍
INITE Brain
面向 AI Agent 的开源记忆:通过 MCP 和 REST 提供带来源追溯的双时态知识图谱。
网站 · 快速开始 · 架构 · 领域包 · 入门指南 · 文档 · Agent 指南
快速开始
需要 Docker(含 Compose v2)、openssl 和 OpenAI API 密钥(默认模型配置)。使用已发布的镜像(linux/amd64 和
linux/arm64)与 SurrealDB 运行;无需克隆或构建。
: "${OPENAI_API_KEY:?export OPENAI_API_KEY first}"
mkdir inite-brain && cd inite-brain
curl -fsSLO https://raw.githubusercontent.com/inite-ai/inite-brain-service/main/docker-compose.quickstart.yml
BRAIN_KEY="brain_$(openssl rand -hex 24)"
KEY_HASH="$(printf %s "$BRAIN_KEY" | openssl dgst -sha256 -r | cut -d' ' -f1)"
cat > .env <<EOF
BRAIN_VERSION=2.4
OPENAI_API_KEY=$OPENAI_API_KEY
BRAIN_API_KEYS='[{"keyHash":"sha256:$KEY_HASH","companyId":"co_demo","scopes":["brain:read","brain:write"]}]'
SURREALDB_PASSWORD=$(openssl rand -hex 24)
SURREALDB_SCOPED_PASS=$(openssl rand -hex 24)
FORGET_HMAC_KEY=$(openssl rand -hex 32)
EOF
docker compose -f docker-compose.quickstart.yml up -d --wait
export BRAIN_URL=http://localhost:3030 BRAIN_KEY
curl "$BRAIN_URL/health"
echo "API key (shown once, only its hash is stored): $BRAIN_KEY"
接下来可以记下一些内容并询问相关问题,
也可以让 MCP 客户端连接到 http://localhost:3030/mcp,并设置
Authorization: Bearer $BRAIN_KEY。BRAIN_VERSION 可设为 X.Y(该版本的最新补丁版)
或 vX.Y.Z;:latest 会被主分支的部署覆盖。首次启动时会将本地 ONNX 模型下载到卷中,
因此首次写入可能需要几分钟;之后的写入则不需要等待。托管服务、从源代码运行及生产环境配置:
入门指南。
为什么不选 Mem0、Zep 或 Letta?
- Mem0 更容易上手:提供添加/搜索 API、托管平台,以及许多框架集成。Brain 前期需要更多配置(租户、范围受限的密钥,以及个人记忆中的
userId),作为交换,会为每条事实同时保留有效时间和知识时间。发生冲突的写入会取代先前的事实,或被标记为COMPETING,不会悄然覆盖。 - Zep(Graphiti) 是设计上最接近的方案:Graphiti 同样是时序知识图谱,也可以作为 Python 库嵌入,并使用图数据库。如果你想在自己的进程中运行记忆功能,请选择它。Brain 则是一个服务:每个租户使用独立数据库,API 密钥具有读取、写入和管理范围,提供 PII 控制,以及带墓碑记录的 GDPR
forget_entity。 - Letta 是一种 Agent 运行时,Agent 会自行编辑记忆。如果你想让 Agent 循环和记忆位于同一服务器中,请使用它。Brain 仅负责记忆:Agent 仍运行在 Claude Code、Cursor、Codex 或你自己的代码中,并通过 MCP 连接 Brain(Streamable HTTP,或 stdio shim
@inite/brain-mcp)。 - 答案可以选择不作答。
synthesize会在每项主张末尾附上其依据事实的 ID,由验证器检查依据;严格模式下,如果答案缺乏依据,就不会返回答案。每条事实都会保留指向其来源对话或文档的指针。 - 不挪用基准测试数据。 我们不会将记忆准确率结果与其他系统自行报告的分数进行比较,因为这些分数大多采用宽松的评判标准。测量方式见:docs/eval-protocol.md。
INITE Triad 的组成部分: Brain 会验证 INITE Auth 签发的令牌,方式与 INITE Billing 相同;两者之间的契约是 Triad 契约。 使用一个 compose 文件运行全部三个服务: inite-ai/inite-triad。
Brain 是什么
Brain 为 Agent 提供跨对话记忆:说过什么、发生了什么变化、涉及哪些实体,以及哪些内容支持某个答案。双时态图谱用于存储结构化事实和关系;来源情节保留上下文;场景和信念用于捕捉事件与不断变化的状态。Domain Packs 无需分叉引擎,就能让记忆适配产品的词汇和生命周期。
在你的基础设施上运行 Brain,或连接托管服务 brain.inite.ai。Web 应用提供记忆搜索和探索功能;REST 和 MCP 提供集成接口。
为什么选择 Brain
- 保留上下文的记忆。 检索结构化事实、来源段落,以及在启用时可检索场景和信念。沿来源追溯到作为依据的对话、文档或证据片段。
- 变化可供检查。 事实包含有效时间和知识时间。更新可以取代先前的事实;尚未解决的分歧会保留为
COMPETING。撤回会保留历史记录;管理性遗忘会删除相关记录并留下墓碑。 - 对你的领域建模。 Packs 定义类型化谓词、提取指南、场景架构、状态转换、验证和保留提示,以及可选的媒体功能和 MCP 工具。
- 范围明确。 每个租户使用独立数据库。个人记忆使用
userId;省略它则选择租户全局记忆。密钥范围、ABAC 策略和 PII 控制会进一步限制访问。 - 答案可验证。 混合搜索、图检索和多跳收集证据。综合回答会引用证据并进行验证;如果依据不足,严格护栏可以选择不作答。
架构
Brain 将源材料、派生记忆和读取路径分开。这是一种概念视图;不同的摄取路径和检索配置会启用其中的不同部分。
flowchart LR
input["REST / MCP<br/>conversations · documents · facts"]
raw[("Source records<br/>documents · episodes · evidence")]
derive["Indexers and scene builders<br/>candidates · entity resolution · conflicts"]
memory[("Connected memory on SurrealDB<br/>facts + graph · scenes · beliefs")]
retrieve["Retrieval<br/>semantic + lexical · graph · multi-hop"]
answer["Synthesis + verification<br/>answer with citations or abstention"]
packs["Domain Packs<br/>vocabulary · memoryModel · tools"]
media["Evidence registration / upload<br/>scan hook · trusted processors"]
input --> raw
input --> derive
media --> raw
raw --> derive
derive --> memory
memory --> retrieve
raw --> retrieve
retrieve --> answer
packs -. "domain configuration" .-> derive
packs -. "capabilities and consent" .-> media
| 记忆层 | 保留内容 |
|---|---|
| 事实和实体 | 类型化声明、规范实体、关系、置信度、来源归属和时间历史。 |
| 情节 | 源对话轮次和对话上下文,派生记忆可追溯至此,也可据此重建。 |
| 场景 | 有边界的事件,包含概要、实体、状态变化和来源链接。可选的概要嵌入和场景检索通道,可让场景与其他证据一起被搜索。 |
| 信念 | 带修订历史和支持场景的派生状态。包投影的状态增量可用于信念晋升。 |
| 证据 | 资产、已定位片段、处理运行记录和派生表示,并链接到其支持的记忆。 |
可重建记忆。 可从保留的情节在暂存版本中重建派生世界。读者会继续固定在先前的世界,直到完成晋升。场景维护可按计划处理待处理的对话,并使用预算、租约和指标;它可以组合场景并晋升有支持依据的信念。
可配置检索。 检索配置会根据语料库和问题选择机制。语义和词法搜索、图扩展、重排、原始段落、场景检索和信念检索是彼此独立的能力。已知实体可通过 graph_retrieve 接入;涉及多重关系的问题可使用 search_multi_hop。
分离服务与后台工作。 NestJS 服务使用由 SurrealDB 支持的作业队列、租约和工作线程卸载。可将镜像作为单个进程运行,也可通过 PROCESS_ROLE=api|worker 拆分;请参阅运维指南。
代码中包含一些默认未启用的能力,并不意味着每个安装都运行所有层。场景构建、场景服务、信念晋升、证据上传与处理以及包投影都有各自独立的开关。启用这些功能时,请查看架构、运维文档,以及场景、证据和包投影的标志定义。
领域包
领域包是按租户安装的带版本 JSON 清单。它会告知引擎如何解读某个领域的材料。领域包生成的观察结果仍是候选项,供核心流水线验证和解决。
| 领域包可声明 | 用途 |
|---|---|
predicates | 类型化词汇、值约束、冲突语义、衰减和 PII 类别。 |
extractionProfile、evalFixtures | 领域指令、示例和提取检查。 |
memoryModel | 场景架构、状态模型和转换、注意力提示、验证规则及建议性保留提示。还会声明支持的模态、请求的处理器能力和原始证据策略。 |
indexer、seedDocuments | 参与文档索引,以及随领域包提供的知识。 |
mcpTools | 额外的 Agent 工具,须经操作员明确同意。 |
行业领域包库包括:
| 领域包 | 示例记忆模型 |
|---|---|
real_estate | 房源、租赁和许可证。 |
fintech | 许可证和认证。 |
medical | 药物本体、处方和审批生命周期。 |
legal | 协议、义务和法律事务。 |
insurance | 保单和理赔生命周期。 |
hr | 职位和员工生命周期。 |
例如,real_estate 声明了房源状态路径
listed → under_offer → sold,以及撤回和重新上市的转换。
它区分了看房和成交场景,并为看房设置临时保留提示,为成交设置长期保留提示。
内置的 code_memory 领域包涵盖工程决策、理由、不变量、注意事项和变更生命周期。
使用 record_decision、why 和 recall_decisions 保留代码背后的原因。六个行业领域包可分发;内置代码记忆属于核心种子内容。
创作和分发。 使用 pnpm pack:init my_pack 创建脚手架,进行验证,可选择签名,然后发布到注册表并按租户安装。注册表中的版本不可变,安装会固定校验和,签名要求遵循服务端的信任策略。注册表和市场支持发现、发布者资料、镜像及可选计费。
同意是安装的一部分。 当前的第一方行业领域包声明了媒体能力,因此安装时需要查看该部分并传入 --accept-modalities。这会授权声明的能力;它不会提供缺失的处理器,也不会启用服务器的所有功能。领域包 MCP 工具有单独的同意流程。仅凭内置 code_memory 的媒体声明也不会激活媒体处理。
完整的创作、签名和安装命令: 领域包标准 · MCP 领域包工具 · 领域包评估。
开始使用
使用托管服务
托管版 brain 按公司配置:一个租户(companyId)和受限范围的 API 密钥。登录后,在密钥页面创建密钥——密钥只会显示一次,页面还会提供可直接粘贴的配置,适用于 Claude Code、Claude
Desktop、Cursor、VS Code、Codex CLI 和 Goose。如果你的工作区尚未配置,请联系 [email protected]。
export BRAIN_URL="https://brain.inite.ai"
export BRAIN_KEY="brain_YOUR_API_KEY"
也可以使用你已持有的任意凭证通过 API 创建密钥——
POST /v1/keys 会创建一个权限范围不超过调用方自身权限的密钥,而
POST /v1/keys/{id}/revoke 可将其撤销。同一组端点也适用于
可自托管的部署,因此下方的环境变量密钥仅用于引导配置。
从源代码运行
前置条件:Node.js 24.9+、pnpm 10 和 Docker Compose。默认模型配置需要 OpenAI API 密钥。本地嵌入和其他模型提供商均可通过配置选择;请参阅运维。
git clone https://github.com/inite-ai/inite-brain-service.git
cd inite-brain-service
pnpm install --frozen-lockfile
cp .env.example .env
# Set OPENAI_API_KEY in .env for the default model configuration.
创建一个本地读写密钥。此操作会将生成的密钥及其注册信息追加到开发环境的 .env 中;Brain 会根据 SHA-256 哈希进行身份验证。
node <<'JS'
const { randomBytes, createHash } = require('node:crypto');
const { appendFileSync } = require('node:fs');
const key = 'brain_' + randomBytes(24).toString('hex');
const keys = [{
keyHash: 'sha256:' + createHash('sha256').update(key).digest('hex'),
companyId: 'co_demo',
scopes: ['brain:read', 'brain:write'],
}];
appendFileSync('.env', '\nBRAIN_KEY=' + key + '\nBRAIN_API_KEYS=' + JSON.stringify(keys) + '\n');
JS
docker compose up -d surrealdb
pnpm start:dev
在第二个终端中,从同一目录运行:
export BRAIN_URL="http://localhost:3000"
export BRAIN_KEY="$(node --env-file=.env -p 'process.env.BRAIN_KEY')"
curl --fail-with-body "$BRAIN_URL/health"
如需完整的容器设置,请使用 docker compose --env-file .env up -d --build,而不是 pnpm start:dev。应用服务不会发布主机端口——这样才能通过 --scale brain=N 运行多个副本——因此请先将 docker-compose.override.yml.example 复制为 docker-compose.override.yml;它会映射主机端口 3030,之后 BRAIN_URL=http://localhost:3030 就能用于以下请求。Compose 默认配置用于本地开发;生产环境凭据和拓扑结构请参阅部署。
先记住一些内容,再提问
输入文本,获取事实。Brain 会捕获对话轮次、提取实体和主张,并对每一项执行双时态冲突解决:
curl --fail-with-body -X POST "$BRAIN_URL/v1/ingest/mention" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Maria moved to Berlin in June and prefers morning appointments.",
"userId": "user_42"
}'
curl --fail-with-body -X POST "$BRAIN_URL/v1/search" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "where does Maria live", "userId": "user_42", "limit": 5 }'
写入和读取时都使用应用中稳定的用户 ID。只有在使用租户级全局记忆时,才在写入和读取时都省略 userId。userId 同时也是发言者:第一人称对话(“我搬到了柏林”)会关联到用户自己的实体,而对 /v1/synthesize 提问“我住在哪里?”时,答案也会返回给该用户。记忆会从用户本人处学习其姓名——“我是 Maria”会成为关联到用户自身实体的 name 事实——也可以通过引导流程中的写入来记录:使用 entityRef: { "vertical": "user", "id": "user_42" }、predicate: "name" 和相同的 userId 调用 /v1/ingest/fact。(提及信息中设置发言者锚点 { "vertical": "user", "id": "user_42", "role": "speaker", "name": "Maria" } 也会记录其姓名。)若要在用户的作用域下转述他人的话,请将发言者锚定为那个人。在尚未学到姓名前,workspace_status 和 /v1/users/:userId/profile 会说明这一点——询问一次并记录下来。
记录已知事实
如果主张已有结构化形式——例如 CRM 字段发生变化,或触发了某个事件——就跳过提取器,直接陈述。响应会说明冲突解决器作出的决定(INSERTED、SUPERSEDED、COMPETING 等),而不只是说明写入已完成:
curl --fail-with-body -X POST "$BRAIN_URL/v1/ingest/fact" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"entityRef": { "vertical": "rent", "id": "cust_42" },
"predicate": "complained_about",
"object": "late maintenance",
"validFrom": "2026-09-01T10:00:00Z",
"userId": "user_42",
"source": { "vertical": "rent", "messageId": "msg_1" }
}'
上面的本地密钥没有管理权限;安装记忆包和遗忘记忆需要具有相应权限范围的操作员密钥。更多信息: 入门指南。
连接 Agent
Claude Code — 一条命令
/plugin marketplace add inite-ai/inite-brain-service
/plugin install inite-brain@inite
这会一并安装 MCP 服务、六个技能和生命周期钩子:SessionStart 会注入 Brain 已知的当前仓库信息,PreCompact 和 SessionEnd 会将会话写回。Claude Code 会在启用时提示输入 API 密钥,并将其保存在操作系统的钥匙串中。详情和开关选项请参阅:插件 README。
想手动配置?
claude mcp add --transport http brain https://brain.inite.ai/mcp \
--header "Authorization: Bearer $BRAIN_KEY"
Gemini CLI — 一条命令
export BRAIN_API_KEY="brain_..."
gemini extensions install https://github.com/inite-ai/inite-brain-service
MCP 服务、六个技能和Agent 记忆指南会作为上下文加载。密钥保留在环境中——清单会引用 ${BRAIN_API_KEY},Gemini 会在连接时展开它。
Cursor 和 VS Code — 一键安装
这两款产品都提供安装 URL 协议,因此文件顶部的徽章就能完成安装;之后请在客户端自身的 MCP 设置中替换占位密钥。其他客户端均使用 URL https://brain.inite.ai/mcp(对于 ChatGPT,则使用 ?tools=chatgpt;其连接器协议恰好是 search + fetch)。
其他所有 harness
curl -fsSL https://brain.inite.ai/install.sh | sh
在机器上找到的每个 Agent 中安装这些技能——Claude
Code、Codex CLI、Gemini CLI、openclaw、opencode——并将
--target cursor,agents --scope project 用于项目本地的 Agent。
SKILL.md 是跨 Agent 格式,因此同一组技能在任何地方都能直接使用,
无需修改。
对于会启动 stdio MCP 服务的客户端,请使用第一方
@inite/brain-mcp 连接器。此配置
适用于包含 mcpServers 映射的客户端,包括 Claude Desktop:
{
"mcpServers": {
"brain": {
"command": "npx",
"args": ["-y", "@inite/brain-mcp"],
"env": {
"BRAIN_API_KEY": "brain_YOUR_API_KEY",
"BRAIN_COMPANY_ID": "YOUR_COMPANY_ID"
}
}
}
}
对于本地设置,请使用公司 ID co_demo、.env 中的密钥,并在
env 中添加 "BRAIN_BASE_URL": "http://localhost:3000"(Compose 使用端口
3030)。客户端必须能够使用 Node.js 和 npx。
支持原生远程 MCP 的客户端可通过 Streamable HTTP 直接连接:
URL: https://brain.inite.ai/mcp (tenant taken from the credential)
https://brain.inite.ai/mcp/<companyId> (explicit, must match the key)
Authorization: Bearer brain_<api-key>
两种写法都指向同一个端点。当客户端只接受 URL 时,请使用不带租户的写法——
所有通过 OAuth 发现的连接器都属于这种情况,因为租户信息来自令牌中的 org
声明,而不是由用户粘贴配置提供。未经身份验证的探测可通过 /mcp/health(以及
/mcp/<companyId>/health)获得响应,因此设置脚本可以在任何凭据
存在之前检查连接是否可用。
密钥的作用域决定可用工具;服务器标志和已安装的包可以扩展可用功能。 连接器会转发工具和资源,并在客户端支持时桥接 MCP 采样。请参阅 各客户端设置指南。
| Agent 任务 | 从这里开始 |
|---|---|
| 查找相关记忆 | search_knowledge、graph_retrieve、search_multi_hop |
| 提供带引文的回答 | synthesize |
| 间隔一段时间后继续 | memory_diff、get_entity_timeline |
| 记录信息 | 单条主张用 record_fact;较长内容用 ingest_document |
| 检查分歧 | detect_contradiction、get_competing_facts |
| 记住工程决策依据 | record_decision、why、recall_decisions |
| 查看刚刚连接到的内容 | workspace_status |
阅读Agent 记忆指南,了解记忆语义;阅读
技能指南,了解可复用的 Agent 工作流。
综合结果会将事实引用保存在 citations 中,并将其他证据引用
(事件、片段、场景和信念)保存在 evidenceCitations 中;呈现回答时请保留二者。
使用 SDK 构建
npm install @inite/brain
import { createBrain, brainTools } from '@inite/brain'
const brain = createBrain({ apiKey: process.env.BRAIN_KEY!, userId: 'user_42' })
await brain.remember('Maria moved to Berlin in June.')
const { answer, citations } = await brain.answer('where does Maria live')
brainTools(brain) 会返回 Vercel AI SDK 可直接使用的工具定义,而
createBrainStore(brain) 会返回一个基于同一记忆的 LangGraph 风格存储。
只需一个依赖(zod),无需框架:
@inite/brain。
在使用 Anthropic 的记忆工具(memory_20250818)吗?将文件系统
后端替换为按租户隔离的服务,无需改动 Agent 循环:
@inite/brain-memory-tool。
为其提供文档
在服务器上启用 DOCUMENT_INGEST_ENABLED=1。通过
Source → Indexer → Candidates → Brain 提交规范化文本:
curl --fail-with-body -X POST "$BRAIN_URL/v1/ingest/document" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "markdown",
"title": "Acme maintenance review",
"text": "Customer cust_42 reported late maintenance. The team agreed to review response times next week.",
"occurredAt": "2026-09-01T10:00:00Z",
"userId": "user_42",
"contextRef": { "vertical": "rent" }
}'
索引器会先暂存候选内容,再由核心解析并提交事实。安装新包后,可以重新索引已存储
的内容;外部索引器可通过拉取式工作 API 接入。对某份文档设置 storeContent: false 会禁用
内容保留,因此之后重新索引时无法复用其文本。
文档处理流水线 ·
外部索引器。
也可以让大脑读取已有内容:文件夹、存储桶、网站、MCP 服务——安装源包(file_memory、web_memory),在管理 → 连接中连接
数据源,然后同步;每条事实都会附带文件的修订版本。对于笔记本电脑、CI 运行器或局域网设备上的内容,
@inite/brain-agent 会前往读取——
文件夹、仓库中已提交的文档、本地 MCP 服务——并由大脑负责记录。
源平面。
文件与证据
证据层通过
POST /v1/ingest/evidence-asset 支持元数据/引用注册,通过
POST /v1/ingest/evidence-blob 支持多部分文件上传。上传的资产会经过扫描钩子,
并可分发给可信处理器;处理器输出的是派生表示,如果处理器提供了片段定位符,
则会一并包含。
当前适配器包括本地图像元数据解码、PDF 文本层提取和纯文本提取。图像元数据不等于视觉场景理解;PDF 文本提取不等于 OCR。 Pack 声明的模态是一项能力请求,并不代表已安装相应的音频、视频或视觉处理器。
这些路径需要通过相应的证据门控、存储配置和适用的 pack 同意检查。提供原始文件还会额外检查范围和 PII 策略。 证据契约 · 证据配置 · 处理器适配器。
基于 Brain 构建
- 扩展领域:编写 pack,发布到注册表,并为每个租户安装经过审核的版本。
- **连接索引器:**使用拉取协议和 参考客户端。
- **扩展 Agent:**声明 pack MCP 工具,并为新增的工具范围单独征得同意。
- 查看 API:OpenAPI 3.1 由平台契约通过
pnpm openapi:build生成。
质量与评估
检索、答案准确率和状态转换正确性衡量的是不同方面。已发布的分数适用于特定数据集、 读取器模型、检索配置、令牌预算和代码修订版本;它们并不代表运行中服务的一般准确率保证。
| 评估 | 测试内容 |
|---|---|
| LoCoMo | 源对话可完整放入上下文时的表示质量。 |
| LongMemEval | 对较长对话历史的回忆与推理能力。 |
| BEAM | 历史记录规模增长时质量的变化情况。 |
| 记忆适用性与状态转换 | 对记忆行为和生命周期变化进行无需评审器的机械检查。 |
| 领域 pack 与代码记忆测试集 | 领域信息提取、实体身份、状态和工程记忆场景。 |
对话记忆评估结果采用严格的二元评审器、自有的完整上下文基线、配对统计和留出数据集。查看评估协议和方法说明,并结合这些内容理解任何已报告的数值;在不同协议下发布的分数不能直接比较。
CI:PR 会运行 lint、格式检查、类型检查、构建、带覆盖率的单元测试、套接字和集成测试,以及前端检查和供应链检查。真实 LLM 的质量评估按夜间计划运行或手动触发,不会在每个 PR 上运行。工作流是权威依据:
.github/workflows/ci.yml。
测试集指南:记忆适用性 · 状态转换 · 领域 pack · 代码记忆。
技术栈
Node.js 24 · NestJS · TypeScript · SurrealDB 3.x · 可配置的嵌入与 LLM 提供商 · 本地 BGE-M3 选项 · 可配置的重排 · 基于 SurrealDB 的 作业与租约 · 工作线程 · OpenTelemetry。Web 应用和文档使用 Next.js、React 和 Tailwind CSS。
文档
| 任务 | 阅读 |
|---|---|
| 集成 | 快速入门、API、MCP Agent 指南 |
| 了解记忆 | 架构、数据模型、双时态语义、检索配置 |
| 检查来源和访问权限 | 事实来源、用户配置文件、来源可信度、ABAC |
| 扩展 | 领域包、文档处理流水线、MCP 包工具 |
| 运维 | 运维、运维人员手册、部署 |
| 评估 | 协议、方法论、测试框架 |
参与贡献
使用 AI Agent 参与贡献
你不需要是工程师。打开代码库(上方的 Codespaces 已提供运行着 SurrealDB 的就绪环境),启动编码 Agent,然后用通俗语言描述你的想法:
- Claude Code:
/contribute— 它会重述你的想法、编写简短的规范、通过测试实现功能、运行检查并创建 PR。/spec-idea只会将想法提交为议题。 - 任何其他 Agent(Cursor、Codex、Copilot、Gemini CLI、Windsurf…):“阅读 AGENTS.md,帮我添加……”。
AGENTS.md 是 Agent 的事实依据:其中包含命令、区域说明(哪些内容可以安全修改,哪些需要先联系维护者)以及从想法到 PR 的流程。只想提出建议?请使用产品想法表单。
工作流
工作流请参阅 CONTRIBUTING.md,社区准则请参阅 CODE_OF_CONDUCT.md。
pnpm lint:ci
pnpm format:check
pnpm typecheck
pnpm build
pnpm test
pnpm test:socket
# Integration suites require Docker:
pnpm test:e2e
pnpm test:e2e:jobs
请为你修改的行为选择其他评估项;使用真实模型运行需要提供方凭据。数据库变更应放在 src/db/migrations/ 中新的编号迁移文件里。报告漏洞请遵循 SECURITY.md。
路线图
请关注 议题和发布版本,了解当前工作。设计说明和早期实验保留在 docs/roadmap 中;在将某项内容视为已交付或待处理之前,请先查看其日期和状态。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。