使用说明
复制内存存储
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的上下文窗口有限。此工具可帮助您:
- 商店 使用自动提取的关键字作为可搜索记忆的重要信息
- 搜索 按相关性评分(关键字+标签+最近度)划分的记忆
- 压缩 将相关记忆纳入角色预算以进行上下文注入
非常适合教学 上下文工程 -将正确的信息融入有限的法学硕士背景中的艺术。
快速开始
# 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 这使得使用记忆工具变得自然。
要使用:
- 在VS Code中打开Copilot聊天
- 点击代理下拉菜单(显示“代理”、“询问”等)
- 选择 “记忆”
- 自然聊天!
对话示例:
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 该工具演示了关键的上下文工程概念:
- 相关性评分 -按关键字匹配+标签匹配+最近度排名的记忆
- 预算约束 -将上下文设置为字符限制(200-8000个字符)
- 确定性压缩 -无LLM的可预测截断
- 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 同步 |
外部资源
作者
蒂姆·华纳
许可证
麻省理工学院
