Claude Code 的 Computer Use 功能让 AI 直接操控桌面环境:点击按钮、输入文字、截图分析界面状态。AI 能看见屏幕并操作鼠标键盘,带来的安全风险同样真实:误删文件、点错按钮、泄露敏感信息。为此,Claude Code 设计了一套九层安全关卡系统,每一层都可以独立拦截危险操作。底层通过 Python Bridge 实现跨语言通信,TypeScript 代理驱动 Python 执行器完成实际的桌面交互。
跨会话记忆:四种类型与自动提取机制
权限决策的五层防线
Context 压缩的四级策略
上下文窗口是真实存在的硬约束
所有 LLM 都有上下文限制。Claude 3.5 Sonnet 标称 200k tokens,但系统提示词占约 20k,工具定义占约 15k,固定开销就吃掉 35k 左右。留给对话的空间大约 165k tokens,如果每轮对话平均 4k tokens,50 轮就会把窗口用尽。
传统的截断策略粗暴丢弃早期消息,问题很明显:用户说过的重要信息凭空消失,模型可能重复询问已经回答过的问题,或者做出与前文矛盾的判断。长对话场景下,这种信息丢失会直接导致任务失败。
Claude Code 用四级渐进式压缩应对这个问题。四级策略从轻到重依次触发,核心目标是在有限的 token 预算内尽可能保留对任务有用的信息。
多 Agent 编排的四种路径
单 Agent 的瓶颈
考虑一个典型场景:把项目的所有 TypeScript 文件迁移到 strict 模式,同时更新 ESLint 配置,然后运行测试确认无回归。单 Agent 只能顺序执行——修改 tsconfig、修改 ESLint、修改文件、运行测试,每一步等上一步完成。对于一个有 200 个文件的项目,这个过程可能需要十几分钟。
多 Agent 的价值在于把这类任务拆解为可并行的子任务。Explore Agent 扫描文件识别修改点,多个 Fork Agent 并行修改不同文件组,Plan Agent 协调顺序避免冲突,Verification Agent 运行测试验证结果。并行化、专业化、隔离性,这是多 Agent 编排解决的核心问题。
系统提示词的动态组装与三级缓存
20k tokens 的缓存难题
Claude Code 的系统提示词约 20k tokens,每次 API 调用都要发送。这个数字本身不夸张,但叠加两个约束就变成了工程问题。第一个约束是动态性:系统提示词需要包含当前日期、项目结构、Git 状态、MCP 服务器指令、CLAUDE.md 用户指令,这些内容每轮对话都可能变化。第二个约束是成本:20k tokens 的提示词如果不做缓存优化,每个会话的延迟和 API 费用会成倍增加。
解决方案是将系统提示词拆分为静态可缓存区域和动态可变区域,通过缓存边界标记分隔。静态部分(角色定义、系统规则、任务指导、工具说明、风格约束)在全球范围内共享缓存,动态部分(会话指引、记忆系统、环境信息、MCP 指令、Token 预算)按会话级缓存。这样每次 API 调用时,静态部分可以直接复用缓存,只有动态部分需要重新计算。
React + Ink 构建的终端界面
终端里的 React 应用
Claude Code 的终端界面不是传统的 CLI 逐行输出,而是一个完整的 React 应用。它通过 Ink 框架(React 的终端渲染器)实现了组件化 UI、Flexbox 布局、双缓冲渲染和交互式对话框。选择 Ink 而非 ncurses 或 blessed 这类传统终端 UI 库,核心原因是复用 React 生态:组件化思想、状态管理、生命周期、以及开发者的熟悉度。
Ink 的架构分为四层。React Components 通过自定义的 React Reconciler 转换为 Ink Host Config 调用,Host Config 使用 Yoga 布局引擎计算 Flexbox 布局(基于终端字符单位),最终 Terminal Renderer 将布局结果转换为 ANSI 转义序列输出到 stdout。这个架构让终端 UI 开发体验接近 Web 前端,同时保持了终端应用的性能特征。
从定义到执行的七步工具管道
条件激活与动态发现的 Skills 系统
超越 Prompt 的 Agent 运行时
同样的模型,不同的体验
一个反直觉的现象:用 GPT-4 模型搭配 OpenAI 的 Codex CLI,效果尚可;用 GPT-4 模型搭配 Anthropic 的 Claude Code,效果更好。自家模型配自家 Agent 应该是最佳组合,但实际表现不如搭配竞争对手的 Agent。
常见的猜测是”Claude Code 的 Prompt 更好”。Prompt 确实有影响,但不是决定性因素。Claude Code 的源码揭示了一个更根本的差异:它不是一个 Prompt 工具,而是一个完整的 Agent 运行时框架。这个框架理解模型的能力边界、工具的执行风险、上下文的压缩策略和用户的意图流转。模型是大脑,Claude Code 是躯体——这个类比虽然粗略,但抓住了核心关系。