官方文档把 Claude Code 的记忆位置分成 3 类:项目记忆、用户记忆和项目本地记忆。这个数字只能说明“记忆从哪里来”,不能证明所有会话、所有 Agent 都会安全复用同一份上下文;要完成 Claude Code Projects 共享记忆验收,你必须测试跨会话复现、规则变更、权限边界、分支隔离和工作区恢复。Anthropic 官方记忆文档明确说明了不同记忆位置及加载方式。
这篇文章适合三类人:
- 个人开发者:希望减少重复说明,并稳定复用项目约定。
- 小型研发团队:需要让多个 Agent 和成员获得一致但可控的工程上下文。
- 平台管理员:负责云端工作区、身份权限、密钥、会话恢复和审计记录。
先把“共享记忆”拆成 5 个验收对象
很多验收失败,是因为把项目名称、聊天记录、Git 文件和 Claude Code memory 混在了一起。你应先把对象分层,否则测试结果无法解释。
| 对象 | 典型载体 | 主要作用 | 验收重点 |
|---|---|---|---|
| 项目知识 | Project knowledge 中的文档、代码、规范 | 为项目内多个聊天提供背景资料 | 新会话能否检索到正确版本 |
| 项目级指令 | CLAUDE.md、项目指令 |
约束目录、命令、编码和协作方式 | 是否被加载、是否与子目录规则冲突 |
| 个人记忆 | 用户级 CLAUDE.md 或个人配置 |
保存跨项目的个人偏好 | 是否误写入团队共享范围 |
| 会话历史 | 当前聊天、会话 ID、恢复记录 | 延续一次工作过程 | 中断后是否能恢复原任务上下文 |
| 工程外部状态 | Git、任务清单、日志、数据库、制品目录 | 保存可审计、可回滚的真实状态 | 工作区重建后是否仍然存在 |
Projects 的官方帮助文档说明,项目知识会用于该项目中的聊天;但不同聊天之间的上下文不会自动共享,除非信息已经加入项目知识库。Projects 使用说明因此,“模型在当前会话里看到了内容”只能证明一次读取成功,不能证明长期共享记忆已经验收通过。
你还要区分云端项目和 Claude Code CLI。Projects 里的知识库、项目指令与 Claude Code 工作目录中的 CLAUDE.md 不是同一个存储层;后者会按照当前目录向上查找,并且可能受到工作目录、导入路径和权限设置影响。
个人用户如何证明跨会话复用有效?
个人开发者最容易遇到的假象是:第一次对话里已经告诉过模型测试命令,第二次会话却仍然要求你重新说明。此时不要立刻判断记忆功能失效,先确认规则到底写入了哪里、当前目录是否一致、文件是否处于最新版本。
建议使用一组固定的验收任务,连续跑完以下步骤:
-
建立最小规则集。
在项目级CLAUDE.md中只写几条可验证规则,例如测试命令、主目录用途、禁止修改的文件夹和提交前检查项。不要一开始塞入长篇架构说明,否则无法判断是哪条规则起作用。 -
记录初始状态。
保存当前工作目录、Git 分支、提交哈希、记忆文件版本和会话 ID。可以先执行pwd、git status --short、git branch --show-current,并把输出保存到验收记录中。 -
启动全新会话。
在同一项目目录打开新会话,让 Agent 解释“项目如何运行、测试命令是什么、哪些目录不能改”。要求它指出读取过的文件,而不是只接受一句“我知道了”。 -
验证实际行为。
让 Agent 执行一个低风险任务,例如只运行测试、检查目录或生成计划。真正的证据是它是否使用了文件中的命令和路径,而不是回答是否听起来合理。 -
修改一条规则。
把测试命令从旧值改成新值,提交或明确记录文件版本,然后再次开启新会话。若 Agent 仍使用旧命令,你要检查缓存、工作目录、分支和项目知识版本,而不是把问题简单归结为模型遗忘。 -
加入冲突规则测试。
在父目录和子目录分别设置不同规则,确认当前工作位置下哪一层生效。官方文档说明,Claude Code 会从当前工作目录向上查找记忆文件,也会在读取子目录文件时发现嵌套规则。记忆查找规则 -
保留行为证据。
记录 Agent 读取的文件、执行的命令、输出结果和 Git 状态。口头确认只能作为辅助信息,不能作为上线验收证据。
⚠️ 提醒:旧信息仍被使用时,优先检查“当前会话实际加载了哪些文件”和“当前分支是否包含最新规则”,不要先假设模型违反了共享记忆。
个人开发者可以把验收结果分成三档:
- ✅ 通过:新会话能读到当前规则,并在实际命令和目录选择中正确使用。
- ⚠️ 待观察:能回答规则内容,但还没有通过真实操作验证。
- ❌ 不通过:仍使用旧规则、找不到项目文件,或不同目录启动后行为明显不一致。
小型团队如何划分知识、任务与分支?
让多个 Agent 获得一致的 Claude Code 项目上下文,关键不在于把所有资料放进一个大文件,而在于把不同生命周期的信息分开。
建议采用下面的分层方式:
- 稳定工程规范:放进版本控制中的
CLAUDE.md,例如构建命令、测试要求、目录边界和代码风格。 - 任务状态:放进
progress.md、任务清单或项目管理系统,记录负责人、阻塞项、已完成检查和下一步动作。 - 临时决策:放进带日期和责任人的决策记录,避免把一次性的讨论永久写进项目规则。
- 个人偏好:放在用户级记忆中,不要为了方便直接提交到团队仓库。
- 敏感配置:使用受控的环境变量、凭证存储或工作区注入机制,不写进共享知识。
Projects 支持项目知识和项目指令,也支持在团队环境中管理项目可见性与成员权限;项目创建者可以按成员分享,而不是只能把内容公开给所有人。Projects 功能与共享说明
团队验收至少要安排两个身份和两个工作目录:
- 成员 A 使用主分支执行只读分析。
- 成员 B 或 Agent 使用独立分支处理修改。
- 两者读取同一份稳定规范,但不能默认共享未提交文件。
- 两个 Agent 生成的日志、测试报告和构建产物必须进入不同目录。
这里有一个常见误区:Git 分支不是完整隔离。 分支主要隔离版本化文件,不会自动隔离环境变量、MCP 服务、缓存、外部数据库、网络权限、工作区级别的凭证和共享制品目录。即使两个 Agent 使用不同分支,也可能同时改写同一个外部状态。
团队上线前,可按以下条件决策:
- 若规范已经稳定、需要所有 Agent 遵循同一套命令,则写入项目级
CLAUDE.md。 - 若内容只代表某个成员的偏好,则放入个人记忆,否则回退到共享文件之外。
- 若任务会产生修改,则为每个 Agent 分配独立工作目录或 Git Worktree,否则回退到单 Agent 串行执行。
- 若多个 Agent 需要读取同一任务状态,则使用可审查的外部状态文件;若只依赖聊天记录,则回退到人工交接。
- 若两个 Agent 共享同一密钥或写入同一部署环境,则先拆分权限,否则回退到只读模式。
Claude Code 的权限系统支持允许或拒绝具体工具,也提供不同权限模式;相关规则可以通过设置文件分发,但权限配置和共享记忆仍然是两套验收对象。身份与访问管理文档
平台管理员如何验收云端多 Agent 工作区?
平台管理员不能只验证“会话能不能继续”,还要确认恢复后身份、文件、分支和网络权限是否仍然符合预期。云端多 Agent 工作区本质上是长期运行与状态恢复问题,记忆只是其中一层。
建议按 4 个边界分别检查:
1.身份边界
确认每个成员、Agent 和工作区使用的身份是否可追踪。至少要能回答:
- 当前会话属于哪个成员或服务账号?
- 使用了哪种认证方式?
- 会话恢复后身份是否发生变化?
- 被移除的成员是否仍能读取项目知识或外部工具?
Claude Code 的官方安装文档列出了本地环境、身份验证和企业部署方式;这些信息适合用来建立平台基线,但不能替代你自己的权限验收。Claude Code 设置文档
2.文件边界
确认工作区重建后,代码、记忆文件、任务清单和日志是否都在预期位置。不要只检查文件是否存在,还要检查版本:
pwd
git status --short
git branch --show-current
git log -1 --oneline
如果恢复后的工作区缺少 CLAUDE.md,Agent 可能仍能继续聊天,但已经失去项目级工程约束。
3.分支边界
恢复测试至少覆盖以下状态:
- 有已提交变更的分支;
- 有未提交变更的工作区;
- 有未跟踪文件的工作区;
- Agent 正在并行修改另一个分支;
- 工作区被重建后重新拉取代码。
每种状态都记录 Git 状态、任务编号和产物目录。不要把“分支名称恢复正确”当成“任务状态完整恢复”。
4.网络与密钥边界
检查 Agent 是否仍能访问必要服务,以及是否意外获得超出任务范围的网络权限。官方网络代理文档列出了 Claude Code 可能需要访问的服务地址,并提醒企业网络环境需要配置代理和证书。代理配置文档
共享记忆中禁止出现以下内容:
- API 令牌、私钥和长期凭证;
- 内部服务地址及未公开端口;
- 个人邮箱、账号标识和本地绝对路径;
- 临时测试数据、客户数据和生产环境连接串;
- 某个成员才适用的个人偏好。
如果项目知识规模增长,Projects 可能自动启用 RAG,通过检索相关内容而不是一次性加载全部资料。官方说明 RAG 会在项目知识接近上下文限制时自动启用,并可能将知识容量扩展到原来的 10 倍;这意味着管理员还要验证“正确文档是否被检索”,不能只验证文件已经上传。Projects 的 RAG 说明
记忆没有生效时,先查哪一层?
故障定位建议固定为以下顺序,从最容易证明的问题开始:
- 文件未加载:检查
/memory显示的文件列表、文件名称和语法。 - 路径不在当前范围:确认启动目录、父目录关系,以及是否使用了额外工作目录。
- 规则冲突:比较父目录、项目目录、子目录和用户级规则。
- 内容版本错误:检查 Git 分支、提交哈希、同步时间和项目知识中的文件版本。
- 上下文被压缩或切换:要求 Agent 重新读取外部状态文件,而不是依赖旧聊天内容。Anthropic 的提示工程文档也建议,在长任务或上下文切换后,让 Agent 从进度文件、测试文件和 Git 日志重新发现状态。长任务与上下文管理建议
- 权限被拒绝:确认 Agent 是否只能读取文件、是否被禁止执行命令,或是否没有访问某个目录。
- 外部状态不可用:检查网络、MCP 服务、数据库、制品目录和凭证是否仍然存在。
为每次故障保存以下字段:
- 会话 ID;
- 工作目录;
- Agent 身份;
- 记忆文件版本;
- Git 分支和提交哈希;
git status输出;- 实际读取的文件;
- 实际执行的命令;
- 权限提示或拒绝信息;
- 云端工作区重建前后的差异。
CLI 支持继续最近会话,也支持通过会话 ID 恢复指定会话;但“能恢复会话”只证明会话入口可用,不代表文件、分支和外部状态都已经恢复。CLI 参数参考
上线前建立周期性复验机制
共享记忆不是一次配置完成后永久可靠的功能。Claude Code、Projects、云端工作区镜像、权限策略和 Agent 配置发生变化后,都可能改变最终行为。
你可以建立一套固定复验周期:
- 每次规则变更后:执行跨会话复用和旧规则淘汰测试。
- 每次 Agent 配置变更后:执行工具权限、工作目录和分支隔离测试。
- 每次工作区镜像更新后:执行重建、会话恢复和依赖安装测试。
- 每次成员权限变化后:执行项目知识、代码目录和网络访问测试。
- 定期抽查:扫描记忆文件、日志和任务记录中的敏感信息。
最低验收清单可以这样设置:
个人级
- [ ] 新会话能读取当前项目约定。
- [ ] 测试命令和目录说明会影响实际操作。
- [ ] 修改规则后旧版本不再被采用。
- [ ] 个人偏好没有进入团队共享文件。
- [ ] 记忆文件可以通过 Git 或其他方式回滚。
小团队级
- [ ] 不同成员和 Agent 能获得一致的稳定上下文。
- [ ] 规范、任务状态和临时决策分开保存。
- [ ] 并行分支、工作目录和产物目录不互相覆盖。
- [ ] 每个任务都有负责人和可追溯的会话记录。
- [ ] Agent 权限与共享记忆范围分别验收。
平台级
- [ ] 成员身份、工作区身份和 Agent 身份可追踪。
- [ ] 会话中断后,文件、分支和任务状态都能恢复。
- [ ] 密钥不进入项目知识、
CLAUDE.md或日志。 - [ ] 网络和工具权限符合最小授权原则。
- [ ] 新版本 Claude Code 和云端工作区都通过固定任务集复验。
如果你还在整理远程开发环境,可以先阅读 Kvmzen 帮助中心,把工作区交付、登录方式和运维责任写进自己的验收记录。对于需要长期运行 Agent 的团队,也建议把本地工作区与 Mac 云租用方案分开评估:前者适合已有环境,后者更适合需要稳定 Mac 运行环境、远程访问和临时扩容的场景。
FAQ:把长尾问题变成验收动作
新建会话后,Projects 中的知识还能被 Claude Code 调用吗?
可以,但前提是内容已经进入项目知识或项目指令,而不是只存在某一次聊天里。验收时要创建新会话,用固定任务检查它是否读取正确文件、采用正确命令并遵守项目约束。只看聊天界面是否能看到历史记录,不能证明共享记忆已经稳定生效。
项目级记忆与用户级偏好应当怎样区分?
项目记忆面向代码库和团队协作,适合保存架构、测试命令、目录约束和提交规则;个人记忆面向你的跨项目偏好,适合保存输出格式或个人工具习惯。两者混用会带来范围泄漏:个人偏好可能影响团队 Agent,团队规则也可能污染其他项目。
怎样让多个 Agent 读取同一套工程上下文?
把稳定规范放进项目级 CLAUDE.md 或项目知识,把任务进度放入可审查的状态文件,再让每个 Agent 在自己的工作目录中读取。共享上下文不应等同于共享所有权限。每个 Agent 仍要拥有独立分支、产物目录、工具授权和提交责任。
项目知识中怎样阻止令牌和内部信息扩散?
建立禁止写入清单,并在 CLAUDE.md、项目知识、日志和任务文件中执行扫描。令牌、私钥、内部地址、个人路径和客户数据都不应进入共享记忆。必要配置应通过受控环境变量、短期凭证或密钥管理机制注入,并在成员权限变更后重新检查。
云端工作区被重建后,怎样确认任务状态没有丢失?
恢复时不能只执行继续会话命令。你还要核对工作目录、身份、文件版本、Git 分支、未提交变更、任务清单、测试结果和网络权限。建议先读取外部状态文件,再运行一项固定的集成测试。聊天恢复成功但 Git 状态缺失,仍应判定为恢复失败。
共享记忆验收后,真正需要比较的是你当前方案的完整成本:本地环境可能受设备开机、网络连通、多人协作和权限配置限制;普通远程主机又可能缺少稳定的 Mac 工具链、图形化调试体验和长期工作区一致性。若你需要的是临时测试、远程 Mac 运行环境或多 Agent 工作区验证,直接租用 Kvmzen 的 Mac 环境,通常比临时改造个人电脑或反复重建云端环境更容易保持一致;但长期稳定重负载、必须接入物理设备或需要完全自主管理硬件时,自购 Mac 仍然更合适。
把上面的个人级、小团队级和平台级清单复制到你的项目发布流程中,并为每次 Claude Code、Projects 或云端工作区变更保留复验记录。这样你验收的就不只是“模型有没有记住”,而是记忆、身份、文件、分支和恢复状态是否都能被证明。
