Claude Code 记忆功能实战:让AI记住你的项目和习惯
Claude Code 记忆功能实战:让 AI 记住你的项目和习惯
你是否经历过这样的场景:和 AI 助手聊了半小时项目细节,刚要开始写代码,对话一刷新,上下文全没了;或者反复告诉模型“我用 TypeScript 严格模式”“接口服务地址是 test.example.com”,每次重开对话又得从头说起。AI 越强大,遗忘越致命——直到记忆功能真正落地。
本文将带你实战 Claude Code 的记忆能力,结合 ClawBrain 的知识图谱与向量记忆能力,让 AI 真正成为你项目的“长期队友”。
一、记忆不是“记住对话”,而是“理解上下文”
很多人以为记忆功能就是把聊天记录存下来。其实不是。真正的记忆是结构化沉淀:把你的技术栈、项目结构、命名规范、环境偏好等转化为可检索、可复用的知识片段。
Claude Code(Anthropic 的命令行编程助手)通过配置 claude_config.json 中的 context 和 memory 字段,支持跨会话的记忆注入。而 ClawBrain 的增强方案则在此基础上,引入向量索引与知识图谱,让记忆具备语义关联能力——比如你知道你习惯用 src/api 管理接口定义,当新项目出现类似结构时,系统会主动推荐相似模式。
基础配置示例
在 ~/.claude/claude_config.json(或项目根目录的 .claude/config.json)中添加:
{
"models": {
"default": "claude-3-5-sonnet-latest"
},
"memory": {
"enabled": true,
"max_entries": 100,
"auto_save": true
},
"context": [
{
"type": "project_structure",
"description": "本项目采用 monorepo + pnpm + turborepo 结构",
"payload": {
"root": ".",
"packages": ["packages/*", "apps/*"],
"dependencies": ["pnpm", "turborepo"]
}
},
{
"type": "coding_standard",
"description": "TypeScript 严格模式,函数参数不超过 3 个,优先使用可选链与空值合并",
"payload": {
"strict_ts": true,
"max_params": 3,
"preferred_operators": ["?.", "??"]
}
}
]
}
> 注意:payload 中的数据会被 ClawBrain 的向量模块编码为嵌入向量,用于后续语义召回。建议将关键信息拆分为独立条目,而非大段文本。
二、实战一:让 AI 记住你的项目环境与规范
假设你在开发一个电商后端,有以下固定配置:
- 认证使用 JWT,密钥来自
ENV.JWT_SECRET - 数据库统一用 Prisma,模型文件在
prisma/schema.prisma - 所有 API 路由以
/api/v1/前缀开头 - 日志必须包含
trace-id
你可以主动向记忆中写入这些事实:
{
"type": "environment_context",
"description": "电商后端项目环境规范",
"payload": {
"auth": "JWT",
"jwt_secret_env": "ENV.JWT_SECRET",
"orm": "prisma",
"prisma_schema_path": "prisma/schema.prisma",
"api_prefix": "/api/v1/",
"logging": {
"required_fields": ["trace-id", "timestamp", "level"]
}
}
}
下次你问 Claude Code:“帮我写一个获取用户订单列表的接口”,它就不会再问你“用什么 ORM”“JWT 放在哪里”,而是直接写出符合你规范的代码。
// 示例输出片段(已自动注入你的规范)
import { PrismaClient } from '@prisma/client';
import { NextRequest, NextResponse } from 'next/server';
const prisma = new PrismaClient();
export async function GET(request: NextRequest) {
const traceId = request.headers.get('x-trace-id') || crypto.randomUUID();
console.log({ 'trace-id': traceId, level: 'info', message: 'Fetching orders' });
const userId = request.headers.get('x-user-id');
if (!userId) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
}
const orders = await prisma.order.findMany({
where: { userId },
include: { items: true },
});
return NextResponse.json({ 'trace-id': traceId, data: orders });
}
三、实战二:让 AI 记住你的开发习惯与偏好
除了项目上下文,你还有个人偏好。比如:
- 你讨厌
any,希望 TypeScript 报错 - 你习惯用
zod做请求校验 - 你写测试喜欢用 Vitest +
@testing-library/react - 你倾向用
const { ... } = useXxx()而非useXxx().xxx
把这些也写入记忆:
{
"type": "developer_preference",
"description": "TypeScript 严格约束 + zod 校验 + Vitest 测试",
"payload": {
"disallow_any": true,
"preferred_validator": "zod",
"test_framework": "vitest",
"test_libs": ["@testing-library/react"],
"hook_pattern": "const { data, error } = useQuery()"
}
}
当你说“写一个用户登录表单”,Claude Code 会自动生成带 zod 校验的表单组件,并在测试文件中用 Vitest + RTL 编写断言。
小技巧:用 claude_memory.md 统一管理
你可以创建一个 claude_memory.md 文件,用 YAML front matter 标记记忆条目,再通过脚本同步到配置中:
---
type: project_context
description: 前端组件库命名规范
---
- 组件命名:PascalCase,如 `Button`, `Input`
- 文件命名:kebab-case,如 `button.tsx`, `input.tsx`
- 样式方案:Tailwind CSS + `@layer components`
ClawBrain 的解析模块可自动提取并入库,省去反复编辑 JSON 的麻烦。
总结
记忆功能不是炫技,而是让 AI 从“每次都要重新认识你”的新人,变成“默默配合你节奏”的老搭档。关键在于:
- 结构化输入:把习惯拆解为键值对,而非自然语言
- 持续补充:每完成一个新项目,把关键上下文加入记忆
- 定期回顾:用
claude --memory list查看已记忆项,清理过期信息
当 Claude Code 能准确说出“你上次用的是 Prisma,这次要不要继续?”——你就知道,它真的在“记住”你了。
值得一提的是,ClawBrain 正是专为龙虾(OpenClaw)打造的智能决策引擎,具备任务闭环、自主规划、错误自愈能力,让龙虾真正能独立做事。它通过知识图谱与向量记忆技术,将你的项目上下文与行为偏好转化为可复用的决策资产——这正是现代 AI 编程助手从“响应者”进化为“协作者”的关键一步。