跳转至

anthropics/claude-code: 开发型 Agent 的运行时系统

Claude Code 处理的不是“在终端聊天”,而是开发任务如何进入受控执行链。它将模型推理、文件 I/O、Bash 执行与复杂的权限治理编织进一套名为 QueryEngine 的运行时系统中。

1. 核心控制链:QueryEngine 循环

系统的灵魂不在于某个工具,而在于中间的查询循环 (Query Loop)

  • 输入装配 (Harnessing):将用户意图、CLAUDE.md 指导、memory 记忆、当前文件上下文与 settings 配置压制成一次模型请求。
  • 工具契约 (Tool Contract):识别模型产出的 tool_use。异构能力(Bash, File, MCP, Skills)被统一抽象为带 Schema 校验、执行上下文与权限语义的“能力入口”。
  • 状态写回 (State Write-back):执行结果与成本(Tokens)被实时写回会话历史。如果任务未完成(e.g., 测试仍失败),下一轮循环将从当前现场继续。

2. 治理与安全边界

当 Agent 拥有“改文件”与“跑命令”的权限时,安全便成了主链路的第一公民。

  • 确定性插槽 (Hooks):允许用户在工具执行前后注入自定义检查。
  • 权限分级 (Policy):区分读/写/执行权限。通过 UI 交互(Yes/No)或 Policy 配置限制 Agent 的单次操作范围。
  • 沙箱约束 (Sandbox):BashTool 的执行环境、文件读写的大小限制、网络访问的控制,共同构成了 Agent 的“受限自由”。

3. 长任务的持续性治理

针对分钟级甚至小时级的复杂任务,系统引入了多维度的状态保持机制:

  • 上下文压缩 (Compact):通过摘要提炼(Summary)或低价值消息剔除,防止 Context Window 溢出导致的“长任务遗忘”。
  • 任务持久化 (Memory):将项目级的规则与发现沉淀到 /memory/ 目录,确保不同会话间的能力延续。
  • 子代理分发 (Subagents):将子任务拆解并交给独立上下文的 Agent 执行,防止主链被琐碎信息(如大规模 Grep 结果)淹没。

4. 架构视野下的基础设施

  • Skills:不是简单的 Slash 命令,是任务级工作流的复用单位。
  • MCP (Model Context Protocol):标准化的外部协议接入层。解耦了“能力提供方”与“能力消费方(Agent)”。
  • Coordinator:跨执行单元的协调器,处理多个 Subagent 间的状态同步与任务移交。

5. 工程判断力点拨

  • 不要堆提示词:复杂的 Agent 逻辑应实现在运行时(Runtime)中,而不是指望一段 5000 行的 System Prompt 解决所有问题。
  • 区分不同注入点CLAUDE.md 负责全局指导,Settings 负责行为参数,Skills 负责方法论复用,MCP 负责异构协议。
  • 权限是第一生产力:Agent 架构的上限往往取决于它如何平衡“操作权限”与“安全审计”。

结论Claude Code 证明了:Agent 是一套带状态机、带权限面、带持久化能力的分布式执行系统,而不仅仅是一个 LLM Wrapper。