AI编码助手长期记忆系统

Trapic Core是一个自托管的MCP服务器,为AI编码助手提供结构化长期记忆功能,通过标签和关键词搜索自动恢复会话上下文。

  • by trapicAi
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 nickjazz/trapic-core

使用说明

陷阱核心

AI编码助手的自托管长期记忆。

你的AI在会话之间会忘记一切。Trapic Core是一个 主控程序 修复该问题的服务器——决策、约定和发现被捕获为结构化跟踪,通过标签和关键字进行搜索,并在会话开始时自动调用。

没有矢量数据库。没有嵌入。无API成本。

目录

快速开始

git clone https://github.com/trapicAi/trapic-core.git
cd trapic-core
docker compose up

服务器运行于 http://localhost:3000/mcp.连接您的AI工具:

{
  "mcpServers": {
    "trapic": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

另存为 .mcp.json 在您的项目根目录中(Claude Code、Cursor、Windsurf)或添加到 claude_desktop_config.json (克劳德桌面)。

运作原理

传统的RAG将所有内容嵌入向量中,并希望余弦相似性能找到正确的答案。Trapic采用了一种不同的方法——人工智能在编写时构建知识,人工智能在搜索时推断出正确的查询。中间的数据库保持简单。

每条知识轨迹:

type:        decision | convention | fact | state | preference
content:     "Chose CSS custom properties over Tailwind theme config"
context:     "Tailwind doesn't support runtime theme switching"
tags:        [topic:theming, topic:css, project:my-app, branch:main]
confidence:  high | medium | low

标签与 project: / branch: 使用AND逻辑(必须全部匹配)。 topic: 标签使用OR逻辑(任何匹配计数)。结合全文搜索和新近度评分。

MCP工具

工具 说明
trapic-create 创建知识追踪
trapic-search 按标签、关键字、类型、时间范围搜索
trapic-recall 会话简报——启动时加载项目上下文
trapic-update 更新内容、状态、标签或取代跟踪
trapic-get 按ID获取完整跟踪
trapic-health 健康报告——类型分布、过时率、趋势
trapic-decay 扫描过时的知识(特定类型的半衰期)
trapic-review-stale 确认或弃用过时的跟踪
trapic-import-git 来自git提交历史的Bootstrap知识
Full parameter reference

梯形创建

参数 类型 必填 说明
content string 是 知识内容(最多5000个字符)
context string 否 为什么——因果解释
tags string[] 否 类型+主题+项目/分支标签
confidence high medium low

陷阱搜索

参数 类型 必填 说明
query string 否 关键字搜索(最多500个字符)
tags string[] 否 筛选标签(项目/分支=AND,主题=OR)
status active superseded deprecated
types string[] 否 按跟踪类型筛选
time_days number 否 仅过去N天
limit number No 最大结果数(默认值:10,最大值:50)

陷阱式召回

参数 类型 必填 说明
context string 是 你正在做什么
project string 否 项目名称到范围
tags string[] 否 其他筛选器标签
max_contexts number No 最大上下文簇数(默认值:5,最大值:10)

梯形更新

参数 类型 必填 说明
trace_id UUID 是 要更新的跟踪
content string 否 新内容
context string 否 新上下文
status active superseded deprecated
superseded_by UUID 否 替换跟踪的ID
tags string[] 否 新标签
confidence high medium low

陷阱得到

参数 类型 必填 说明
trace_id UUID 是 跟踪ID

陷阱健康

参数 类型 必填 说明
project string 否 项目名称到范围
tags string[] 否 其他筛选器标签

陷波衰变

参数 类型 必填 说明
project string 否 项目名称到范围
tags string[] 否 其他筛选器标签
threshold number No 衰减分数阈值(默认值:0.3)
dry_run boolean 否 仅预览(默认值: true)

trapic评论过时

参数 类型 必填 说明
trace_id UUID 是 过时的跟踪ID
action confirm deprecate 是
reason string 否 操作原因

trapic导入git

参数 类型 必填 说明
url string 是 Git存储库URL(HTTPS)
project string 是 项目名称
branch string 否 分支(默认值: main)
max_commits number No 最大提交数(默认值:100,最大值:500)
since string 否 在此日期之后(YYYY-MM-DD)
dry_run boolean 否 仅预览(默认值: true)

数据库

三个后端,可通过以下方式切换 TRAPIC_DB_ADAPTER:

后端 最适合 扩展 全文搜索
SQLite (默认) 本地开发,单用户 单实例 FTS5
PostgreSQL 生产,团队 水平(多个副本) tsvector+GIN
MariaDB 生产,团队 水平(多个副本) FULLTEXT索引

SQLite

零配置。输入数据 ./data/trapic.db.

docker compose up

PostgreSQL

cp .env.example .env  # set PG_PASSWORD
docker compose -f docker-compose.postgres.yml up
环境变量 默认值 描述
TRAPIC_PG_HOST localhost 主持人
TRAPIC_PG_PORT 5432 港口
TRAPIC_PG_USER trapic 用户
TRAPIC_PG_PASSWORD -- 密码
TRAPIC_PG_DATABASE trapic 数据库

MariaDB

cp .env.example .env  # set MARIADB_PASSWORD
docker compose -f docker-compose.mariadb.yml up
环境变量 默认值 描述
TRAPIC_MARIADB_HOST localhost 主持人
TRAPIC_MARIADB_PORT 3306 港口
TRAPIC_MARIADB_USER trapic 用户
TRAPIC_MARIADB_PASSWORD -- 密码
TRAPIC_MARIADB_DATABASE trapic 数据库

认证

默认情况下打开(localhost,不需要身份验证)。通过设置管理员密码启用用户管理:

TRAPIC_ADMIN_PASSWORD=my-secret docker compose up

然后打开 http://localhost:3000/admin 创建用户和团队。

auth的工作原理

状态 行为
无用户,无管理员密码 打开模式 --所有请求均已接受
管理员密码已设置,还没有用户 打开模式--在以下位置创建用户 /admin
数据库中存在用户 需要承载令牌 (sk-...)

用户和API密钥

  1. 打开管理UI(/admin)
  2. 创建用户-获取自动生成的API密钥(sk-...)
  3. 使用密钥配置MCP客户端:
{
  "mcpServers": {
    "trapic": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "headers": {
        "Authorization": "Bearer sk-a1b2c3d4..."
      }
    }
  }
}

API密钥存储为SHA-256散列。明文密钥在创建时只显示一次。

团队

同一团队中的用户可以看到彼此的痕迹。

Team: backend-team
  ├── alice (sees bob's traces)
  └── bob   (sees alice's traces)

一个用户可以属于多个团队。

管理员API

所有端点都需要 Authorization: Bearer <TRAPIC_ADMIN_PASSWORD>.

方法 端点 描述
GET /admin/api/users 列出用户
POST /admin/api/users 创建用户
DELETE /admin/api/users/:id 删除用户
POST /admin/api/users/:id/regenerate 重新生成API密钥
GET /admin/api/teams 列出团队
POST /admin/api/teams 创建团队
DELETE /admin/api/teams/:id 删除团队
GET /admin/api/teams/:id/members 列出成员
POST /admin/api/teams/:id/members 添加成员
DELETE /admin/api/teams/:id/members/:userId 删除成员

部署

码头工人

公众形象: ghcr.io/trapicAi/trapic-core:latest

# SQLite (default)
docker compose up

# PostgreSQL
docker compose -f docker-compose.postgres.yml up

# MariaDB
docker compose -f docker-compose.mariadb.yml up

Kubernetes

清单在 k8s/.

SQLite (单个副本):

kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/pvc.yaml
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml

MariaDB (可扩展):

# Create secret first (copy from example, fill in passwords)
cp k8s/mariadb-secret.example.yaml k8s/mariadb-secret.yaml
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/mariadb-secret.yaml
kubectl apply -f k8s/mariadb.yaml
kubectl apply -f k8s/deployment-mariadb.yaml
kubectl apply -f k8s/service.yaml

Node.js

npm install && npm run build && npm start

配置

环境变量 默认值 描述
TRAPIC_PORT 3000 服务器端口
TRAPIC_HOST 127.0.0.1 绑定地址(0.0.0.0 揭露)
TRAPIC_DB_ADAPTER sqlite sqlite, postgres,或 mariadb
TRAPIC_DB ./data/trapic.db SQLite数据库路径
TRAPIC_USER local-user 默认用户ID(打开模式)
TRAPIC_ADMIN_PASSWORD -- 在以下位置启用管理UI /admin

建筑

┌─────────────┐                    ┌──────────────┐                  ┌──────────────┐
│  AI Client  │  ── MCP/HTTP ──►   │ Trapic Core  │  ── adapter ──►  │   Database   │
│ Claude Code │  POST /mcp         │  MCP Server  │                  │ SQLite / PG  │
│ Cursor, etc │  ◄── JSON ──       │              │                  │  / MariaDB   │
└─────────────┘                    └──────────────┘                  └──────────────┘
  • 协议: 模型上下文协议 (流式HTTP)
  • 搜索:结构化标签+全文搜索,无嵌入
  • 衰变:特定类型的半衰期(状态:30d,决定:90d,惯例:180d,事实:365d)
  • 安全:API密钥哈希(SHA-256),管理速率限制,恒定时间身份验证比较

云版本

不想自己主持? trapic.ai 提供具有OAuth登录和团队协作的托管版本。

使用 Trapic插件 一键设置。

许可证

麻省理工学院