news 2026/8/31 13:00:40

Claude Subconscious状态文件完全解读:conversations.json与session-*.json里有什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Subconscious状态文件完全解读:conversations.json与session-*.json里有什么

Claude Subconscious状态文件完全解读:conversations.json与session-*.json里有什么

【免费下载链接】claude-subconsciousGive Claude Code a subconscious项目地址: https://gitcode.com/GitHub_Trending/cl/claude-subconscious

Claude Subconscious 是一个为 Claude Code 提供"潜意识"的背景智能体插件:它在后台观看你的会话、读取代码、积累跨会话记忆,并在每次提示前"低语"回引导建议。这个插件把本地的会话状态保存在两个小文件里——conversations.jsonsession-*.json,它们就藏在项目的.letta/claude/目录中。本文带你完整读懂这两个文件里到底存了什么、由哪个脚本写入,以及它们如何配合让智能体实现跨会话记忆。

状态文件存放在哪里?

这两个文件属于持久化状态(Durable State),统一存放在当前项目目录下的.letta/claude/文件夹中。如果你设置了LETTA_HOME环境变量,路径会改为{LETTA_HOME}/.letta/claude/,方便把所有项目的状态集中到一处。

路径的生成逻辑见 getDurableStateDir:

项目目录/ └── .letta/ └── claude/ ├── conversations.json ← 会话 → 对话 的映射表(一个项目一个) └── session-{sessionId}.json ← 每个 Claude Code 会话一份同步状态

需要注意的是:这里的.letta/claude/只是会话记账(把 Claude Code 会话映射到 Letta 对话),不是独立的智能体记忆。真正的长期记忆块存在 Letta 服务端,由 README 的 State Management 章节 明确说明。

conversations.json:会话到对话的映射表

conversations.json 是整个插件的"通讯录":它把每个 Claude Code 的session_id映射到对应的 LettaconversationId,并记录当时使用的agentId

结构定义见 ConversationEntry 接口,一个典型内容长这样:

{ "abc123def456": { "conversationId": "conv-xxxxxxxx", "agentId": "agent-yyyyyyyy" }, "old789session": "conv-zzzzzzzz" }

几个值得了解的行为:

  • 首次会话:由 session_start.ts 调用 Letta API 创建新对话后写入映射;
  • 老格式兼容:早期版本只存一个字符串("sessionId": "conv-xxx"),新版会检测并自动升级为带agentId的对象格式,见 getOrCreateConversation;
  • 智能体变更自愈:如果你换了LETTA_AGENT_ID,插件发现映射里的agentId对不上,会自动清掉旧条目并创建新对话;
  • 只查不建:同步脚本在需要时也会用 lookupConversation 从该文件找回conversationId,例如 sync_letta_memory.ts 中的兜底恢复。

session-*.json:每个会话的同步进度状态

session-{sessionId}.json逐会话的同步游标,字段定义见 SyncState 接口:

{ "lastProcessedIndex": 12, "sessionId": "abc123def456", "conversationId": "conv-xxxxxxxx", "lastBlockValues": { "user_preferences": "用户偏好显式类型标注……", "pending_items": "Phase 1 测试完成……" }, "lastSeenMessageId": "msg-01J9K7..." }
字段作用
lastProcessedIndex记录会话记录(JSONL)已发送到后台智能体的位置,实现增量同步,不重复发送
conversationId缓存该会话对应的 Letta 对话,省去查映射表
lastBlockValues缓存上次同步时的记忆块内容,用于做差异对比(diff),只把变化的块注入上下文
lastSeenMessageId记住最后一次已展示的消息 ID,防止后台"低语"消息重复注入

该文件的读写由 loadSyncState 与 saveSyncState 完成;会话开始时由 saveSessionState 以lastProcessedIndex: -1初始化(代表"从头开始")。

一次完整的状态流转

🔄 三个钩子按顺序协作,把这两个文件串成闭环:

  1. SessionStart(session_start.ts):读conversations.json查缓存 → 没有则创建新对话并写回 → 落盘新的session-{id}.json
  2. Stop(send_messages_to_letta.ts):每次 Claude Code 响应结束后,按lastProcessedIndex截取增量记录,交给后台 SDK 工作进程,成功后更新状态文件;
  3. UserPromptSubmit / PreToolUse(sync_letta_memory.ts、pretool_sync.ts):对比lastBlockValueslastSeenMessageId,只把新增/变化的记忆块与消息通过 stdout 注入给 Claude。

换句话说:conversations.json回答"这个会话属于哪段对话",session-*.json回答"这段对话同步到哪了"。两者都很小、纯 JSON,可以直接打开查看。

排查与清理建议

  • 状态文件异常或缺失时,插件会回退到"从头开始"(lastProcessedIndex: -1)或重新创建对话,不会阻塞使用;
  • 调试钩子行为请看临时日志目录$TMPDIR/letta-claude-sync-$UID/,里面有session_start.logsend_messages.log等,命令见 README 的 Debugging 章节;
  • 想重置某个会话的记忆同步进度,只需让对应会话的session-*.jsonconversations.json中的条目重新生成即可——它们都只是本地缓存,真正的记忆在 Letta 服务端。

📌 理解这两个状态文件后,你基本就掌握了 Claude Subconscious 的记忆链路:本地文件负责"记账",Letta 智能体负责"记住",而钩子脚本负责把两者缝合在一起。

【免费下载链接】claude-subconsciousGive Claude Code a subconscious项目地址: https://gitcode.com/GitHub_Trending/cl/claude-subconscious

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 13:00:26

Getting Real:用真实反馈取代虚假需求,打造高效开发流程

在软件开发这个行当里,我们最不缺的就是“想得太多、写得太多、做出来却太少”。需求文档写了几十页,原型图改了七八版,技术方案评审了两轮,结果一上线,用户根本不买账。这种落差不是个例,而是普遍现象。问…

作者头像 李华
网站建设 2026/8/31 13:00:04

HyperMesh与Inspire集成:拓扑优化、网格质量与尺寸标注实践指南

做结构仿真的工程师,日常流程一般是 CAD 建模 → 导入 HyperMesh 画网格 → 加载荷约束求解。但到了概念设计阶段,或者需要快速探索多个结构方案的时候,直接靠手工建模效率就很低。Altair HyperWorks 体系里,有两个工具正好能补上…

作者头像 李华
网站建设 2026/8/31 12:57:01

C#上位机MODBUS TCP通讯实战:从协议报文到源码实现

简介:本资源是一套面向C#初学者与工业通信开发者的MODBUS TCP客户端实战示例,聚焦阻塞式同步通信场景,解决RFID读写器等工业设备的标准化TCP协议接入问题。资源包共110个文件,含36个核心C#源码文件(实现Socket连接、功…

作者头像 李华
网站建设 2026/8/31 12:56:45

基于LangChain与LangGraph的智能客服Agent架构实战拆解

简介:本资源是一套基于LangChain与LangGraph框架实现的工业级智能客服Agent系统开源工程,面向AI应用开发者、LLM工程实践者及对话系统学习者,解决多模块协同建模难、状态跟踪不连贯、人机协作决策模糊等实际落地痛点。压缩包共27个文件&#…

作者头像 李华
网站建设 2026/8/31 12:53:00

映客2020春招算法B卷解析:核心考点与备考策略

春招季节,算法岗的笔试永远是绕不过去的坎。看到“映客2020春招算法B卷”这个标题,估计不少准备面试的朋友第一反应是想找原题,但我更想聊的是这份试卷背后真正值得研究的东西:它考察的算法知识点分布、出题风格以及解题思路。映客…

作者头像 李华