一、泄漏事件概述​

2026年3月31日,安全研究员 Chaofan Shou (@shoucccc) 发现 Anthropic 在发布 npm 包时,意外将完整 TypeScript 源码通过.map文件对外暴露。​

已被多个 GitHub 仓库镜像:​

根本原因​

Bun 构建器默认开启 source map 生成,Anthropic 忘记在构建配置或.npmignore中排除.map文件。​

二、技术架构全景​

整体技术栈​

三、工具系统设计​

插件化权限门控架构​

每个能力被封装为独立 Tool,统一通过getAllBaseTools()注册,经过多重过滤:​

功能 Gate → 用户类型 Gate → 环境变量 Gate → 权限拒绝规则​

核心工具(约40个):​

  • •BashTool— Shell 命令执行​
  • •FileReadTool/FileEditTool— 文件操作​
  • •AgentTool— 子智能体生成​
  • •LSP 集成工具、Web Fetch 工具等​

85个 slash 命令覆盖:Git 工作流、代码审查、内存管理、多智能体编排​

四、权限系统深度解析​

四种权限模式​

三级风险分类:LOW/MEDIUM/HIGH​

受保护文件(不可自动编辑):.gitconfig、.bashrc、.zshrc、.mcp.json、.claude.json等​

五、多智能体编排系统("Swarm"架构)​

通过CLAUDE_CODE_COORDINATOR_MODE=1激活。​

架构设计​

关键机制​

  • •Team Memory:跨 Agent 共享内存空间​
  • •AsyncLocalStorage:进程内 Agent 的上下文隔离​
  • •tmux/iTerm2 panes:进程级 Agent 的可视化​
  • •颜色分配:多 Agent 视觉区分​
  • •功能由tengu_amber_flintfeature flag 门控​

六、三层内存架构(解决"上下文熵增")​

这是对抗 AI 长会话混乱化的核心工程方案:​

七、autoDream — 后台记忆整合系统​

路径:services/autoDream/​

三门触发机制(三个条件同时满足)​

1.用户空闲时间超过阈值​

2.新增记忆碎片超过数量阈值​

3.上次整合距今时间足够长​

整合行为​

  • •合并分散的观察记录​
  • •消除逻辑矛盾​
  • •将模糊洞察转化为确定事实​
  • •通过 forked subagent 执行,防止污染主 Agent 上下文​

八、系统提示架构​

系统提示不是单一字符串,而是运行时动态组装:​

九、未发布功能(44个 Feature Flags)​

十、内部员工特权系统​

识别标识:USER_TYPE === 'ant'​

专属能力:​

  • •Staging API 访问​
  • •内部 beta headers​
  • •Undercover Mode 自动激活​
  • •/security-review命令​
  • •ConfigTool/TungstenTool​
  • •Debug prompt 转储至~/.config/claude/dump-prompts/​

Undercover Mode(utils/undercover.ts)​

禁止出现:​

  • •内部模型代号(Capybara、Tengu 等动物名)​
  • •未发布版本号(如opus-4-7、sonnet-4-8)​
  • •内部项目名称、Slack 频道、内部短链接​

十一、彩蛋:虚拟宠物系统 "Buddy"​

完整的虚拟宠物系统:​

  • •18种物种,有稀有度等级和闪光变体​
  • •物种由Mulberry32 PRNG基于用户ID哈希确定——同一用户永远得到同一宠物​
  • •1% 闪光概率,独立于稀有度判定​
  • •ASCII 精灵(5行高 × 12字符宽,含多帧动画)​
  • •计划:2026年4月1-7日预告,2026年5月正式上线​

十二、核心工程经验总结​

给 AI Agent 开发者的 5 条经验​

1."On Distribution" 技术选型— 选择 AI 模型擅长的技术,让 AI 高质量参与自身开发​

2.分层内存设计— 用索引+按需加载防止上下文熵增,而非把一切塞进会话​

3.插件化工具架构— 每个能力独立封装 + 多维度权限门控,比单体架构更安全可扩展​

4.多 Agent 需要权限邮箱— Worker Agent 危险操作必须上报 Coordinator 审批,而非自主决策​

5.系统提示模块化— 静态/动态分离设计可大幅节省缓存成本​

给 npm 包维护者的教训​


参考来源​