零依赖AI记忆系统,无需API密钥,纯本地存储支持智能搜索,全平台适用。
简单的本地内存 QQ AI 代理的零依赖内存系统是一项面向实际任务的技能,主要用于没有 API 密钥;没有外部服务;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
面向 AI 智能体的零依赖记忆系统。
无需 API 密钥,无需外部服务,无需云依赖——仅靠智能搜索支持的纯本地存储。
┌─────────────────────────────────────────────────┐ │ SIMPLE LOCAL MEMORY │ ├─────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ HOT RAM │ │ COLD STORE │ │ │ │ │ │ │ │ │ │ SESSION- │ │ Indexed │ │ │ │ STATE.json │ │ Memories │ │ │ │ │ │ (JSON + │ │ │ │ (active │ │ Search) │ │ │ │ context) │ │ │ │ │ └─────────────┘ └─────────────┘ │ │ │ │ │ │ └────────────────┼─────────────────┘ │ │ ▼ │ │ ┌─────────────┐ │ │ │ MEMORY.md │ ← 人类可读 │ │ │ + daily/ │ │ │ └─────────────┘ │ │ │ └─────────────────────────────────────────────────┘
快速、活跃的工作记忆
{
"current_task": "...",
"key_context": ["...", "..."],
"pending_actions": ["...", "..."],
"recent_decisions": ["..."],
"last_updated": "2026-03-15T10:30:00Z"
}
优势:
持久化、可搜索的记忆
# 存储一条记忆 memory-store --type preference --content "User prefers dark mode" --importance 0.9 # 搜索记忆 memory-search "what did user say about CSS" # 列出最近的记忆 memory-list --limit 10
存储位置:memories/ 目录下的索引化 JSON 文件
人类可读的长期记忆
workspace/
├── MEMORY.md # 人工整理的关键洞见
├── SESSION-STATE.json # 当前活跃上下文
└── memories/
├── 2026-03-15.json # 当日记忆快照
├── preferences.json # 用户偏好
├── decisions.json # 关键决策
└── lessons.json # 经验教训
npm install -g simple-local-memory cd your-project memory-init
该命令将创建以下文件与目录:
SESSION-STATE.json —— 活跃工作记忆MEMORY.md —— 长期人工整理记忆memories/ —— 记忆存储目录适用于 Claude Code:
# 添加至自定义指令中 当我向您提供重要信息时: 1. 首先写入 SESSION-STATE.json 2. 然后使用 memory-store 存储 3. 最后回复我 每次开启对话时: 1. 先读取 SESSION-STATE.json 2. 使用 memory-search 检索相关记忆 3. 查阅 MEMORY.md 获取背景上下文
适用于 ChatGPT / Cursor:
在系统提示(system prompt)中添加:
You have access to local memory tools: - memory-store: Save important information - memory-search: Find relevant past context - Read SESSION-STATE.json before responding - Update SESSION-STATE.json when user shares preferences
# 初始化记忆系统 memory-init # 存储一条记忆 memory-store --type preference --content "User loves TypeScript" --importance 0.9 # 搜索记忆 memory-search "TypeScript preferences" # 列出最近的记忆 memory-list --limit 10 --type preference # 显示记忆统计信息 memory-stats # 导出记忆 memory-export --format json --output backup.json # 导入记忆 memory-import --file backup.json
关键原则:务必先写入记忆,再响应用户
| 触发条件 | 操作流程 |
|---|---|
| 用户表达偏好 | 更新 SESSION-STATE.json → 存储 → 回复 |
| 用户做出决策 | 更新 SESSION-STATE.json → 存储 → 回复 |
| 用户设定截止时间 | 更新 SESSION-STATE.json → 存储 → 回复 |
| 用户纠正您 | 更新 SESSION-STATE.json → 存储 → 回复 |
为何如此? 若响应过程中发生崩溃而尚未保存,上下文将永久丢失。
{
"date": "2026-03-15",
"memories": [
{
"id": "uuid",
"type": "preference|decision|fact|lesson",
"content": "User prefers dark mode",
"importance": 0.9,
"tags": ["ui", "preferences"],
"timestamp": "2026-03-15T10:30:00Z",
"context": "Discussed during UI setup"
}
]
}
{
"preferences": [
{
"key": "css_framework",
"value": "Tailwind",
"set_at": "2026-03-15T10:30:00Z",
"reason": "User prefers over vanilla CSS"
}
]
}
{
"decisions": [
{
"id": "uuid",
"title": "Use React for frontend",
"reason": "User requested component-based architecture",
"made_at": "2026-03-15T10:30:00Z",
"status": "active"
}
]
}
基于 TF-IDF 的本地搜索:
// 示例搜索逻辑
function searchMemories(query, limit = 5) {
const queryTokens = tokenize(query);
const allMemories = loadAllMemories();
const scored = allMemories.map(memory => {
const score = calculateTFIDF(queryTokens, memory.content);
const recencyBoost = calculateRecencyBoost(memory.timestamp);
const importanceBoost = memory.importance || 0.5;
return {
...memory,
totalScore: score + recencyBoost + importanceBoost
};
});
return scored
.sort((a, b) => b.totalScore - a.totalScore)
.slice(0, limit);
}
User: "Let's use Tailwind for this project, not vanilla CSS" Agent process: 1. 更新 SESSION-STATE.json 中的决策字段 2. 执行:memory-store --type decision --content "Use Tailwind, not vanilla CSS" --importance 0.9 3. 执行:memory-store --type preference --content "User prefers Tailwind over vanilla CSS" --importance 0.95 4. 然后回复:"Got it — Tailwind it is. I've saved this preference."
| 类型 | 适用场景 | 重要性范围 |
|---|---|---|
preference |
用户表达喜好或厌恶 | 0.8–1.0 |
decision |
项目级决策已确定 | 0.9–1.0 |
fact |
关键事实信息 | 0.6–0.8 |
lesson |
从错误中汲取的经验 | 0.9–1.0 |
context |
背景信息 | 0.4–0.6 |
# 检查记忆健康状态 memory-stats # 查看当日记忆 memory-list --date today
# 归档旧记忆 memory-archive --days 7 # 清理重复项 memory-deduplicate # 更新 MEMORY.md 中的洞见 # (手动:浏览 memories/ 并将关键内容补充进 MEMORY.md)
# 导出月度备份 memory-export --format json --output monthly-backup.json # 清理过期的每日记忆文件 memory-cleanup --days 30
搜索无结果:
→ 检查 memories/ 目录是否存在
→ 验证 JSON 文件语法是否有效
→ 尝试更宽泛的搜索关键词
SESSION-STATE.json 过大:
→ 将历史条目迁移至 memory-store
→ 对已完成任务执行归档
→ 仅保留当前活跃上下文
记忆未成功保存:
→ 检查文件写入权限
→ 验证磁盘空间是否充足
→ 检查 JSON 格式是否合法
{
"id": "uuid",
"content": "Use React for frontend",
"related_to": ["uuid-of-other-memory"],
"followed_by": ["uuid-of-decision"]
}
{
"confidence": 0.95,
"source": "explicit_user_statement",
"verified_count": 3
}
{
"expires_at": "2026-04-15T00:00:00Z",
"auto_archive": true
}
| 特性 | Elite | Simple Local |
|---|---|---|
| 是否需要 API 密钥 | 是(OpenAI) | 否 |
| 外部依赖 | LanceDB、Mem0 | 无 |
| 云同步 | 是 | 否(可自行扩展) |
| 向量搜索 | 是 | 基于 TF-IDF 的本地搜索 |
| 自动抽取 | Mem0 | 手动操作 / 简单规则 |
| 部署复杂度 | 中等 | 简单 |
| 隐私性 | 依赖云服务 | 100% 本地 |
| 成本 | 免费额度有限制 | 100% 免费 |
# 从 elite 系统导出 memory-export > elite-backup.json # 转换格式 node convert-elite-to-simple.js elite-backup.json > simple-backup.json # 导入至 simple 系统 memory-import --file simple-backup.json
无需 API 密钥,无需云服务,无需追踪 —— 纯粹的本地记忆。
适用于:
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章