一、核心设计哲学:“给 Claude 一台真正的计算机”

Claude Agent SDK 的核心设计理念极为简洁而深刻——让 Claude 拥有对真实计算环境的原生访问能力。这不是让模型仅仅生成文本,而是让它能够:

  • 执行 Bash 命令
  • 读写和编辑文件
  • 搜索代码与网页
  • 操作 Jupyter Notebook
  • 与用户交互提问
  • 生成子 Agent 并行处理子任务

这一理念的本质是:Agent 不再是"描述应该做什么",而是"动手去做、观察结果、迭代改进"——这恰恰模仿了人类实际工作的方式。


二、五大人类价值观驱动的架构

整个 SDK 的架构由五个核心原则支撑:

原则 含义
人类决策权威 人类始终保有最终控制权;Agent 是能力的放大器,而非替代者
安全与防御 采用纵深防御(Defense-in-Depth),多层保护机制
可靠执行 行为可预测、可调试、可审计
能力放大 扩展人类能力边界,而非取代人类判断
情境适应 Agent 能根据不同环境和约束动态调整行为

三、简单优于复杂——拒绝"多 Agent 超级集群"

这是 Anthropic 最鲜明的设计立场:

一个单线程的主循环 + 严谨的工具集与规划能力,比复杂的多 Agent 协作更可控、更可靠。

SDK 明确拒绝追求复杂的多 Agent Swarm 趋势,主张:

  • 先用单次 LLM 调用 + 工具使用解决问题
  • 只有当简单模式确实无法胜任时,才升级到多 Agent 编排
  • 复杂性是最后手段,不是起点

这与其他框架(如 CrewAI、AutoGen)的"多 Agent 优先"思路形成鲜明对比。


四、Unix 哲学的传承

SDK 深受 Unix 哲学影响,遵循三个核心信条:

  1. 小而专注的工具(Small, single-purpose tools)——每个 Tool 只做一件事,做好一件事
  2. 组合产生力量(Composable combination)——工具之间可以自由组合,产生远超单体的能力
  3. 可脚本化与可理解(Scriptable & understandable)——行为容易理解、修改和脚本化

这使得 SDK 具备高度的可组合性、可脚本化和可扩展性


五、架构层次——从 API 到 Agent 的本质区别

Claude API vs Claude Agent SDK

维度 Claude API Claude Agent SDK
交互模型 函数调用:发送 prompt → 收到 response 进程循环:观察→决策→行动→迭代
工具执行 需手动实现 tool loop SDK 自动处理整个循环
状态 无状态(默认) 有状态会话 + 历史管理
上下文管理 开发者自行管理 自动压缩(compaction)+ 内存持久化
适用场景 单步任务(聊天、摘要、分类) 多步自主工作(分析、编码、调研)

本质区别:API 是返回值的函数,Agent SDK 是达成目标的进程


六、核心抽象与组件

两种交互模式

  1. query()——无状态模式:适用于一次性任务(CI 脚本、自动化流水线)
  2. ClaudeSDKClient——有状态模式:适用于多轮交互、长时运行任务

核心抽象

  • Agent:自主决策实体,LLM 自主选择工具、规划步骤、迭代推进
  • Tool:原子化可调用函数,固定接口、无内部决策(类比系统调用)
  • Result:SDK 内部处理结果格式化、错误包装、对话管理
  • Session:有状态容器,保留对话历史、沙箱状态、跨交互输出

20+ 内置工具

分为六大类:

文件操作: Read, Write, Edit, Glob
搜索能力: Grep, WebSearch, WebFetch
代码执行: Bash, NotebookEdit
用户交互: AskUserQuestion
进程管理: Monitor(监控后台脚本)
多Agent:  Agent(生成子Agent)

开发者无需自己实现——它们是生产级、开箱即用的。


七、Agent Loop——核心执行模式

整个 SDK 的运行核心是 观察→决策→行动循环

┌──────────────────────────────────────────┐
│  1. 发送 prompt + 上下文给 Claude        │
│  2. Claude 发出结构化工具调用请求         │
│  3. SDK 执行工具,收集结果               │
│  4. 将结果返回给 Claude 观察             │
│  5. Claude 决定下一步行动或宣告完成       │
│  └──────────循环直到任务完成─────────────┘

这个循环自动处理:

  • 工具执行与错误恢复
  • 上下文压缩(接近 token 限制时自动摘要历史)
  • 会话持久化与恢复
  • 对话历史管理

八、三层关注分离——Tool Use 模式

工具使用的设计遵循严格的关注分离

┌──────────────────────────────────────┐
│  模型层:决定"尝试做什么"              │  ← Claude 的推理
├──────────────────────────────────────┤
│  权限层:决定"允许做什么"              │  ← Hooks + Rules
├──────────────────────────────────────┤
│  工具层:决定"如何执行"                │  ← Tool 实现
└──────────────────────────────────────┘

这种分离确保:

  • 行为可预测(模型不能绕过权限)
  • 权限可审计(不嵌入代码,外化到配置)
  • 工具可替换(实现细节与决策逻辑解耦)

九、纵深防御——安全架构

三层防护模型

第1层: Prompts      → 通过指令引导行为
第2层: Permissions  → 通过规则强制工具访问控制
第3层: Sandboxing   → 通过OS级隔离限制执行环境

权限评估流程

Hooks(优先检查)→ Deny Rules(阻止违规)→ bypassPermissions(即使绕过也遵守 deny)

权限模式

  • ask:每次工具使用需用户确认(交互式)
  • bypassPermissions:自动允许(开发模式)
  • 自定义 can_use_tool 回调:细粒度控制

关键设计决策:即使启用 bypassPermissions,deny rules 仍然生效——安全永远不能被完全绕过


十、Human-in-the-Loop——默认人类在场

SDK 的架构默认假设 Agent 应在关键决策点暂停等待人类审批

  • AskUserQuestion 工具让 Agent 主动向人类求助
  • 权限系统默认 ask 模式而非自动执行
  • Hooks 可以在任何工具调用前拦截并要求人类确认
  • 完全自主运行是显式配置的选择,不是默认行为

这体现了 Anthropic 的核心信念:Agent 是人类意志的延伸,而非独立行动者


十一、多层可扩展性——四种扩展机制

SDK 不依赖单一扩展点,而是提供分层栈

机制 用途 特点
MCP(Model Context Protocol) 连接外部工具与服务 标准化协议,跨 Agent 共享
Plugins 扩展 CLI 命令 增加新交互方式
Skills 可复用的 Agent 能力 类似"脚本化技能包"
Hooks 拦截生命周期事件 安全审计、行为修改、日志

为什么四种? 不同场景有不同的约束(上下文成本、隔离需求、延迟要求)。单一机制无法适配所有场景。

Hooks 的丰富能力

Hooks 可返回三种结果:

  • Allow:放行执行
  • Deny:阻止工具调用
  • AllowWithModification:允许但变换输入(如脱敏、限流)

支持的事件类型:PreToolUsePostToolUseStopSessionStartSessionEndUserPromptSubmit


十二、多 Agent 编排——隔离式子 Agent

设计特征

  • 每个子 Agent 拥有独立隔离的上下文(无直接内存共享)
  • 子 Agent 可并行运行以提升性能
  • 父 Agent 编排:决定生成哪些子 Agent、如何合并结果
  • 无内置共享状态——协调通过父 Agent 流转

为什么强制隔离?

隔离 → 降低错误爆炸半径
隔离 → 行为更可预测
隔离 → 迫使显式编排(而非隐式耦合)
隔离 → 更易调试和审计

三种编排模式

  1. Orchestrator-Worker:中心 LLM 分解任务、委派专门子 Agent
  2. Parallelization:多个 Agent 并行处理独立子任务、合并结果
  3. Routing/Classifying:分类 Agent 将请求路由到专门处理 Agent

十三、状态管理——会话、压缩与记忆

会话(Session)

  • 跨多轮保留对话历史
  • 维护沙箱状态(文件系统、变量)
  • 支持按 ID 恢复会话

自动上下文压缩(Context Compaction)

Token用量增长 → 接近限制 → 自动触发压缩
→ Claude摘要旧消息 → 替换完整历史为摘要 → 继续对话

Anthropic 推荐服务端压缩(通过 Managed Agents)而非 SDK 端压缩,以获得更好的 token 利用率。

持久记忆(Memory Tool)

  • Claude 可跨会话创建、读取、更新、删除持久文件
  • 长运行 Agent 能积累知识而无需将所有信息保留在上下文中
  • 实现了"学习与积累"而非"每次从零开始"

十四、透明性与可审查性

每一步 Agent 行为都被记录和可追溯:

  • 工具调用的完整输入/输出日志
  • Hooks 提供审计入口点
  • 会话历史完整保留
  • 上下文压缩过程可见

这满足了调试需求和企业级审计合规要求。


十五、优雅降级——鲁棒性设计

SDK 内建了多层容错机制:

  • 工具失败时的错误恢复逻辑
  • API 限流时的重试策略
  • 上下文压缩时的降级处理
  • 子 Agent 失败不影响父 Agent 继续
  • Hook 失败有明确的行为定义

十六、架构全景图

┌─────────────────────────────────────────────────────────┐
│            Claude Agent SDK (Python / TypeScript)        │
├─────────────────────────────────────────────────────────┤
│   高层 API: query() ─ 无状态    | ClaudeSDKClient ─ 有状态│
├─────────────────────────────────────────────────────────┤
│            Agent Loop: 观察 → 决策 → 行动 循环            │
├─────────────────────────────────────────────────────────┤
│   内置工具(20+): 文件 | 搜索 | 执行 | 交互 | 监控 | 子Agent │
├─────────────────────────────────────────────────────────┤
│   ┌───────────────────────────────────────────────┐     │
│   │      权限层: Hooks + Rules + can_use_tool     │     │
│   └───────────────────────────────────────────────┘     │
│   ┌───────────────────────────────────────────────┐     │
│   │      沙箱层: OS级隔离 (文件/网络/进程)         │     │
│   └───────────────────────────────────────────────┘     │
├─────────────────────────────────────────────────────────┤
│   扩展机制: MCP | Plugins | Skills | Hooks              │
├─────────────────────────────────────────────────────────┤
│   状态管理: Sessions | Compaction | Memory              │
├─────────────────────────────────────────────────────────┤
│   多Agent: 隔离子Agent ─ 并行 | 编排 | 路由              │
├─────────────────────────────────────────────────────────┤
│   可选: Managed Agents (服务端托管运行时)                  │
└─────────────────────────────────────────────────────────┤

十七、设计理念总结——一句话概括

构建简单、透明、可控、工具增强的 Agent——只有当简单模式确实无法满足需求时,才升级到复杂的多 Agent 系统。

Claude Agent SDK 的设计哲学可以提炼为七个关键词:

关键词 内涵
Simple 单循环优先,复杂是最后手段
Transparent 每步可追溯、可审计
Controllable 人类在场默认,权限纵深防御
Tool-augmented 给 Claude 一台计算机,而非一个聊天框
Composable Unix 哲学,小工具自由组合
Isolated 子 Agent 强制隔离,降低爆炸半径
Extensible 四层扩展机制适配不同约束

这正是 Anthropic 在 Agent 领域的独特立场——保守而安全、简洁而有力,与追求最大自主性的路线形成了清晰的设计哲学分野。


参考来源


文档整理日期:2026-06-09

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐