Claude Code SDK 已更名为 Claude Agent SDK,反映其超越编码任务的更广泛能力。包名变更,同时有三处破坏性变更需要注意。

核心机制

包名变更:

语言旧包名新包名
TypeScript@anthropic-ai/claude-code@anthropic-ai/claude-agent-sdk
Pythonclaude-code-sdkclaude-agent-sdk
Python 导入from claude_code_sdk import ...from claude_agent_sdk import ...
Python 类型ClaudeCodeOptionsClaudeAgentOptions

三处破坏性变更:

  1. Python ClaudeCodeOptions 重命名为 ClaudeAgentOptions
  2. 系统提示不再默认使用 claude_code preset(改为最小提示)
  3. settingSources 默认值:v0.1.0 短暂改为空(不加载),后续版本恢复为加载 user/project/local

关键细节

TypeScript 迁移:

npm uninstall @anthropic-ai/claude-code
npm install @anthropic-ai/claude-agent-sdk
// 只需更新 import 路径,其他代码无需修改
import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

Python 迁移:

pip uninstall claude-code-sdk
pip install claude-agent-sdk
# 更新导入和类型名
from claude_agent_sdk import query, ClaudeAgentOptions  # 原 ClaudeCodeOptions

恢复旧版系统提示行为:

# 旧版默认使用 claude_code preset,新版需显式设置
options = ClaudeAgentOptions(
    system_prompt={"type": "preset", "preset": "claude_code"}
)

隔离文件系统配置(CI/CD、多租户):

options = ClaudeAgentOptions(setting_sources=[])  # 不加载任何文件系统配置

注意:Python SDK 0.1.59 及更早版本将空列表等同于省略(即加载所有来源),需升级后才能依赖 setting_sources=[] 的隔离效果。

与其他概念的关联

实践要点

  • TypeScript 迁移最简单:只需更新 import 路径,API 完全兼容
  • Python 迁移需要同时更新包名、导入路径和类型名(ClaudeCodeOptions → ClaudeAgentOptions)
  • 从 CLI(claude -p)迁移到 SDK 时,需显式设置 preset: "claude_code" 保持相同行为
  • 生产环境和 CI 建议显式设置 settingSources 而非依赖默认值,避免环境差异