从Claude Code源码泄漏看产品设计

一、记忆系统的温度分级 & AutoDream机制
设计亮点
-
memory.md(热数据): 最多 200 行/25KB,每次对话必加载,只存指针不存内容 -
话题文件(温数据): 按需加载,最多 5 个相关文件,但不记代码只记偏好 -
历史对话(冷数据): JSONL 格式存储,Grep 搜索按需检索
// 触发条件minHours: 24, // 距上次整理超过 24 小时minSessions: 5, // 至少有 5 个新会话// 四个阶段Phase 1 — Orient: 了解已有记忆Phase 2 — Gather: 收集新信号Phase 3 — Consolidate: 合并重复、删除已推翻的事实Phase 4 — Prune: 修剪并保持索引在 200 行 / 25KB 以内
-
不是”实时写入”,而是”延迟整理” -
不是”永久保存”,而是“主动遗忘”(删除已推翻的事实),这点非常关键,大部份的记忆系统不会设计主动遗忘的机制 -
不是”越多越好”,而是”精简到 200 行”
// "做梦"的 Agent 被限制了权限- Bash 只能执行只读命令(ls/find/grep/cat)- Edit 和 Write 只能操作 memory 目录内的文件
-
可见但不打扰
-
状态栏显示 “dreaming” 标签 -
可以点击查看正在 review 的 session -
按 x 可以随时杀掉,锁会回滚
// 白天: 往日期日志里追加条目logs/YYYY/MM/YYYY-MM-DD.md// 夜间: 由定时任务调度 /dream 技能做深度整合// 通过 cron 定时触发
-
白天记笔记(append-only 日志) -
晚上复盘整理(定时 dream)
-
深度整理是计算密集任务 -
放在夜间避免影响白天响应速度
-
白天只追加,不修改历史 -
即使整理出错,原始日志仍在
最好的 AI 助手,应该像人类同事一样有工作节奏,而非 24 小时保持同一状态。
二、自主能力类:”主动性的边界感”
// 终端失焦 = 你不在电脑前 = Claude 更大胆地自主行动// 终端聚焦 = 你在看 = 它更多地跟你协商
-
老板在旁边时更谨慎 -
独立工作时更果断 -
这是人类的真实工作方式
-
你不在时完成简单任务 -
回来时只展示结果 -
只在真正需要决策时打断你
-
初期:即使失焦也保守行动 -
熟悉后:逐步提高自主度 -
可以通过配置调整边界
AI Agent 不应该是”无感情的机器”,而应该有”社交智能” – 知道什么时候该主动,什么时候该等待。
// 系统提示词"If you have nothing useful to do on a tick, you MUST call Sleep.Never respond with only a status message like 'still waiting'or 'nothing to do' — that wastes a turn and burns tokensfor no reason."
-
不允许返回”我在等待”之类的空话 -
必须调用 Sleep 工具休眠
-
每个 turn 都消耗 token -
空转是浪费 -
用工具强制而非依赖提示词
-
主动 ≠ 话唠 -
主动 = 有价值的行动 -
没有价值的行动 = 不行动
好的主动性是”发现有价值的事并去做”,而非”时刻刷存在感”。
三、协作能力类:工具权限强制职责分离
// 源码文件: coordinator/coordinatorMode.ts"Never write 'based on your findings' or 'based on the research.'These phrases delegate understanding to the worker instead ofdoing it yourself."// ❌ 禁止 - 偷懒委派Agent({ prompt: "Based on your findings, fix the auth bug" })// ✅ 推荐 - 精确指令Agent({prompt: "Fix the null pointer in src/auth/validate.ts:42.The user field on Session is undefined when sessions expirebut the token remains cached. Add a null check before user.idaccess — if null, return 401 with 'Session expired'.Commit and report the hash."})
-
不是简单转发任务 -
必须自己消化 worker 的发现 -
给出精确到行号的指令
-
协调者只有 3 个工具:Agent、SendMessage、TaskStop -
没有 Bash、Write、Edit – 无法”亲自动手” -
架构强制”只能思考和指挥”
-
管理者的价值 = 理解深度,而非权限大小 -
“Based on your findings” 是推卸理解责任 -
好的管理是”我理解了,你这样做”
权力不等于权限。好的管理者应该”理解最深”,而非”权限最大”。
// 源码文件: setup.ts// 启动时创建一个 Unix Domain Socket// 路径写入 ~/.claude/sessions/.json// 其他实例通过这个路径可以找到你、给你发消息// 寻址方式to: "researcher" // 按名字(teammate)to: "uds:/path/sock" // 按本地 socketto: "*" // 广播给所有实例
-
不是一个 Agent 做所有事 -
而是多个专业化 Agent 协作 -
研究 Agent → 丰富 Agent → 文案 Agent → CRM Agent
-
UDS 是操作系统级的 IPC 机制 -
可靠、高效、标准 -
未来可以接入其他工具
-
按名字寻址(teammate)- 语义清晰 -
按路径寻址(uds)- 精确控制 -
广播(*)- 简化多播
未来的 AI 生态不是”一个超级 Agent”,而是”专业化 Agent 的协作网络”。
四、跨设备能力类:”会话的连续性”
// 两个方向--remote: 本地会话 → 云端--teleport: 云端 → 本地// 自动处理- 检测 Git 仓库,clone 或打包 bundle- Replay 对话记录到本地- Checkout 同一个 Git 分支- 自动 stash 脏工作区- 注入系统消息:"This session is being continued from another machine."
-
公司电脑干到一半 -
回家想继续 -
所有上下文跟着你走
-
Git 状态同步 -
脏工作区处理(自动 stash) -
分支切换 -
上下文 replay
"This session is being continued from another machine.Application state may have changed.The updated working directory is ${getOriginalCwd()}"
AI Agent 不应该被”物理位置”限制。会话应该跟着用户走,而非绑定到设备。
五、用户体验类:”细节的人性化”
// 源码文件: buddy/companion.tsconst SALT = 'friend-2026-401' // 2026年4月1日的朋友// 用户ID + 盐值 → FNV-1a 哈希 → Mulberry32 PRNG// 依次生成: 稀有度、物种、眼睛、帽子、闪光、属性// 完全确定,无法刷号// "灵魂"(名字和性格): 首次由模型生成,存配置// "骨骼"(物种、稀有度、属性): 每次从哈希计算,不存配置// 18 种物种、5 档稀有度、1% 闪光率// 5 项属性: DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK
-
每个用户永远只有一只宠物 -
传说级真的稀有(1% 概率) -
无法通过删配置文件刷号
// "骨骼"每次从哈希重新计算,不存配置// 即使修改配置文件,下次启动仍是同一只
// 选择 7 天窗口(4月1-7日)而非单一时间点// "24h rolling wave across timezones.// Sustained Twitter buzz instead of a single UTC-midnight spike,// gentler on soul-gen load."
-
24 小时滚动覆盖时区 -
持续的社交热度,而非尖峰 -
对 soul-gen(AI 生成性格)服务器更温和
情感价值和陪伴,成为了 Claude 的一个重要方向,不仅提供工具价值,也提供情感价值。
// 源码文件: hooks/useVoice.ts// 自动提取项目相关的领域词汇:- Git 分支名- 最近操作的文件名- 常见技术术语// 作为 keyterms 发给 STT 服务(Deepgram Nova 3)// 提高识别准确率// 最多 50 个词
-
不是通用 STT,而是项目感知的 STT -
知道你在哪个仓库工作 -
知道你最近在修改哪些文件
-
不需要用户手动添加词汇表 -
系统自动从 Git、文件历史中提取 -
动态更新,跟随项目变化
-
最多 50 个 keyterms -
不是”越多越好” -
避免过多 hint 反而降低准确率
好的语音识别不是”准确识别所有语音”,而是”理解用户正在做什么,然后识别相关语音”。
六、选择Agentic Search 而非 RAG
设计亮点
-
完全抛弃向量数据库和 Embedding -
使用最朴素的 Grep 文本搜索 -
让 AI 自己决定搜什么、怎么搜
“Claude Code doesn’t use RAG currently. In our testing we found that agentic search out-performed RAG for the kinds of things people use Code for.”
“我曾经用 RAG 为开发团队构建了知识搜索 AI。最初反馈很好。但几个月后,没人用了。原因很简单:它给不出用户想要的答案。它一直返回稍微偏离目标的信息。
原因是:用户需要的信息没有在预处理中准备好。它引用了混合噪音的垃圾信息,给出了错误答案。”
-
RAG:一次性检索 → 可能遗漏关键信息 -
Agentic Search:迭代探索 → 构建完整理解
让 AI 像人类工程师一样”思考 → 探索 → 验证 → 修正”,而非依赖预先准备的索引。
不是”RAG 或 Agentic Search 哪个更好”,而是”在给定场景下,什么检索策略能让 AI 构建最准确的理解?”
夜雨聆风