JSON内存存储工具

一个用于GitHub Copilot和MCP客户端的本地JSON内存存储工具,支持上下文工程、自动关键词提取和上下文压缩。

  • by timothywarner-org
  • TypeScript
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 timothywarner-org/copilot-memory-store

使用说明

复制内存存储

A. 本地JSON内存存储 用于GitHub Copilot和MCP客户端的上下文工程。

文档

指南 何时阅读
示例/QUICKSTART.md 在这里开始 -npm命令备忘单
示例/COPILOT_CHAT_examples.md Copilot聊天的50+复制粘贴提示
docs/CONTEXT_MEMORY_TYPES.md 深入了解LLM内存类型以及此项目的工作原理
docs/CODE_WALKTROUGH.md 带流程图的架构概述
docs/CLI_GUIDE.md 交互式REPL命令参考
docs/COPILOT_GUIDE.md 使用GitHub Copilot的内存工具

特性

  • 命令行界面 (memory>)-用于管理内存的交互式REPL
  • MCP服务器 -Stdio服务器公开工具、资源和提示
  • 自定义VS代码代理 -用于自然语言使用的预配置“内存”代理
  • 上下文压缩 -预算受限的上下文注入,可选LLM摘要
  • 汽车关键词 -自动关键字提取以提高搜索相关性

为什么存在

LLM的上下文窗口有限。此工具可帮助您:

  1. 商店 使用自动提取的关键字作为可搜索记忆的重要信息
  2. 搜索 按相关性评分(关键字+标签+最近度)划分的记忆
  3. 压缩 将相关记忆纳入角色预算以进行上下文注入

非常适合教学 上下文工程 -将正确的信息融入有限的法学硕士背景中的艺术。

快速开始

# Install dependencies
npm install

# Copy environment config (tweak MEMORY_PATH / DeepSeek settings as needed)
cp .env.example .env

# Build the project
npm run build

# Run the CLI
npm run dev

# Or run the MCP server
npm run mcp

# Debug presets live in `.vscode/launch.json` (Run → Start Debugging → pick a config)

请注意: project-memory.json 包含一些研讨会演示记忆。删除它(或点 MEMORY_PATH 如果你想从一个空的商店开始,在你第一次真正跑步之前。

VS代码GitHub副本集成

1.建设项目

npm run build

2.配置MCP服务器

该项目包括一个预配置的 .vscode/mcp.json:

{
  "servers": {
    "copilot-memory": {
      "type": "stdio",
      "command": "node",
      "args": ["./dist/mcp-server.js"],
      "env": {
        "MEMORY_PATH": "project-memory.json"
      }
    }
  }
}

跑 npm run build 每当您更改服务器时,编译 dist/mcp-server.js 保持最新状态。

3.使用内存代理(推荐)

该项目包括一个自定义 内存代理 在 .github/agents/memory-agent.agent.md 这使得使用记忆工具变得自然。

要使用:

  1. 在VS Code中打开Copilot聊天
  2. 点击代理下拉菜单(显示“代理”、“询问”等)
  3. 选择 “记忆”
  4. 自然聊天!

对话示例:

You: Remember that I prefer functional components over class components
Agent: [Calls memory_write] Saved your preference for functional React components.

You: What preferences do I have stored?
Agent: [Calls memory_search] Based on your stored memories, you prefer...

You: Help me refactor auth.ts
Agent: [Calls memory_search first for context] I found some relevant context about your authentication preferences...

4.直接工具参考(替代)

您还可以直接参考工具 #:

#memory_write text: "We use PostgreSQL" tags: ["decision", "database"]
#memory_search query: "database"

5.重新加载VS代码

在任何配置更改后,重新加载VS代码:

  • 按 Ctrl+Shift+P (或 Cmd+Shift+P 在Mac上)
  • 跑 “开发人员:重新加载窗口”

MCP服务器功能

工具(7)

工具 说明
memory_write 在项目内存中添加、保存、存储或记住信息
memory_search 从项目记忆中搜索、查找、回忆或查找信息
memory_compress 在预算范围内从相关记忆中创建紧凑的上下文
memory_delete 软删除内存(墓碑,可恢复)
memory_purge 通过id、标签或子字符串匹配进行硬删除
memory_export 将所有记录导出为JSON
inject_context 为任务自动注入成形上下文 (使用DeepSeek LLM)

资源(2)

资源 URI 描述
stats memory://stats 实时统计数据(计数、顶部标签)
recent memory://recent 最近添加了10个记忆

提示(3)

注: VS Code GitHub Copilot目前不支持MCP提示。 使用MCP检查器或其他MCP客户端测试提示。

提示 描述
summarize-memories 生成一个主题的记忆摘要
remember-decision 架构决策的结构化模板
inject-context 自动注入相关内存作为任务的上下文

用DeepSeek塑造上下文

这 inject-context 提示支持 LLM驱动的上下文整形 通过DeepSeek:

{
  "task": "refactor the auth module",
  "budget": 1500,
  "shape": true
}

当 shape: true:

  • 原始记忆被转化为 针对特定任务的可操作指南
  • 输出具有清晰的标题结构(## Context for:, ### Key Constraints)
  • 无关的记忆被过滤掉了
  • 如果未配置DeepSeek,则回退到确定性压缩

这使得上下文注入更直观——而不是原始内存转储, 你会得到专注的指导,比如:

## Context for: Auth Module Refactor

### Preferences
- Use JWT tokens (15min access, 7 day refresh)
- Passwords hashed with bcrypt, cost factor 12

### Key Constraints
- Three-layer architecture: Controller → Service → Repository
- All validation via Zod at API boundary

配置

编辑 .env:

# Required: where memories are stored
MEMORY_PATH=.copilot-memory.json

# Optional: for LLM-assisted compression
DEEPSEEK_API_KEY=your-key-here
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat

中的MCP配置 .vscode/mcp.json 点在 project-memory.json 这样你就可以运送一个预先装满的样品库了。以(权力)否决 MEMORY_PATH 在您的环境中,如果您希望CLI和MCP服务器共享不同的文件。

MCP检查员

交互式调试和测试MCP服务器:

# Launch inspector (opens web UI)
npm run inspect

# Or with live TypeScript reloading
npm run inspect:dev

检查员允许您:

  • 浏览所有工具、资源和提示
  • 执行工具并查看响应
  • 查看原始JSON-RPC消息流量

CLI命令

看 docs/CLI_GUIDE.md 详细用法和示例。

命令 描述
add [--tags a,b] <text> 添加内存
search <query> [--limit N] [--raw] 搜索记忆
compress <query> [--budget N] [--llm] 压缩上下文
delete <id> 软删除
purge --id/--tag/--match 硬删除
export 转储JSON
stats 显示统计信息

上下文工程演示

这 memory_compress 该工具演示了关键的上下文工程概念:

  1. 相关性评分 -按关键字匹配+标签匹配+最近度排名的记忆
  2. 预算约束 -将上下文设置为字符限制(200-8000个字符)
  3. 确定性压缩 -无LLM的可预测截断
  4. LLM辅助压缩 -可选DeepSeek摘要,实现更智能的压缩

建筑

.github/
├── agents/
│   └── memory-agent.agent.md  # Custom VS Code agent definition
├── prompts/                   # Reusable Copilot prompt files
│   ├── add-memory.prompt.md
│   ├── retrieve-memory.prompt.md
│   └── inject-memory.prompt.md
└── copilot-instructions.md    # Onboarding for AI coding agents
.vscode/
├── launch.json
├── mcp.json
└── settings.json
docs/
├── CODE_WALKTHROUGH.md   # Architecture walkthrough + diagrams
├── CLI_GUIDE.md          # CLI usage guide
└── COPILOT_GUIDE.md      # VS Code Copilot usage guide
examples/
├── QUICKSTART.md         # npm commands cheatsheet
├── COPILOT_CHAT_EXAMPLES.md  # 50+ prompt examples
└── scenarios/            # Pre-built memory files for workshops
    ├── react-developer.json
    ├── api-backend.json
    └── team-decisions.json
src/
├── cli.ts                # Interactive REPL
├── mcp-server.ts         # MCP stdio server (tools, resources, prompts)
├── memoryStore.ts        # Core storage, search, compression
└── deepseek.ts           # Optional LLM compression + context shaping

npm脚本

脚本 描述
npm run dev 使用tsx运行CLI(开发模式)
npm run build 将TypeScript编译为dist/
npm run mcp 使用tsx运行MCP服务器
npm run inspect 启动MCP检查器
npm run inspect:dev 带有tsx的检查器(实时重新加载)

开发工作流程

任务 建议行动
在本地编辑并运行CLI npm run dev 或VS代码“CLI(通过tsx的TypeScript)”调试配置
为Copilot提供MCP工具 npm run mcp 在发展过程中;重建与 npm run build 对于基于dist的配置
探索MCP表面积 npm run inspect 或 npm run inspect:dev
更新文档/说明 保留 docs/ 和 .github/copilot-instructions.md 同步

外部资源

作者

蒂姆·华纳

许可证

麻省理工学院