Bỏ qua để đến nội dung

Migrate từ Claude Code SDK sang Claude Agent SDK

Bài viết được dịch tự động từ bài viết gốc, chưa được kiểm tra lại bởi con người. Chỉ những bài viết có dấu tick xanh cạnh tiêu đề là đã được kiểm tra.

Claude Code SDK đã được đổi tên thành Claude Agent SDK và tài liệu của nó đã được tổ chức lại. Thay đổi này phản ánh khả năng rộng hơn của SDK trong việc xây dựng AI agent, không chỉ giới hạn ở các tác vụ coding.

Khía cạnhMới
Tên package (TS/JS)@anthropic-ai/claude-code@anthropic-ai/claude-agent-sdk
Package Pythonclaude-code-sdkclaude-agent-sdk
Vị trí tài liệuTài liệu Claude CodeAPI Guide → mục Agent SDK

1. Gỡ package cũ:

Terminal window
npm uninstall @anthropic-ai/claude-code

2. Cài package mới:

Terminal window
npm install @anthropic-ai/claude-agent-sdk

3. Cập nhật import:

Đổi mọi import từ @anthropic-ai/claude-code sang @anthropic-ai/claude-agent-sdk:

// Before
import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-code";
// After
import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

4. Cập nhật dependency trong package.json:

Nếu bạn có package này trong package.json, cập nhật nó:

Trước:

{
"dependencies": {
"@anthropic-ai/claude-code": "^0.0.42"
}
}

Sau:

{
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.3.0"
}
}

5. Xem lại breaking change

Thực hiện các thay đổi code cần thiết để hoàn tất việc migrate.

1. Gỡ package cũ:

Terminal window
pip uninstall -y claude-code-sdk

Nếu package cũ chưa được cài, pip sẽ in WARNING: Skipping claude-code-sdk as it is not installed. Đó là điều bình thường, bạn có thể tiếp tục bước tiếp theo.

2. Cài package mới:

Terminal window
pip install claude-agent-sdk

3. Cập nhật import:

Đổi mọi import từ claude_code_sdk sang claude_agent_sdk:

# Before
from claude_code_sdk import query, ClaudeCodeOptions
# After
from claude_agent_sdk import query, ClaudeAgentOptions

4. Cập nhật tên type:

Đổi ClaudeCodeOptions thành ClaudeAgentOptions:

# Before
from claude_code_sdk import query, ClaudeCodeOptions
options = ClaudeCodeOptions(model="claude-opus-4-7")
# After
from claude_agent_sdk import query, ClaudeAgentOptions
options = ClaudeAgentOptions(model="claude-opus-4-7")

5. Xem lại breaking change

Thực hiện các thay đổi code cần thiết để hoàn tất việc migrate.

Python: ClaudeCodeOptions đổi tên thành ClaudeAgentOptions

Phần tiêu đề “Python: ClaudeCodeOptions đổi tên thành ClaudeAgentOptions”

Thay đổi: Type ClaudeCodeOptions của Python SDK đã được đổi tên thành ClaudeAgentOptions.

Cách migrate:

# BEFORE (claude-code-sdk)
from claude_code_sdk import query, ClaudeCodeOptions
options = ClaudeCodeOptions(model="claude-opus-4-7", permission_mode="acceptEdits")
# AFTER (claude-agent-sdk)
from claude_agent_sdk import query, ClaudeAgentOptions
options = ClaudeAgentOptions(model="claude-opus-4-7", permission_mode="acceptEdits")

Lý do thay đổi: Tên type giờ khớp với thương hiệu “Claude Agent SDK” và mang lại sự nhất quán trong quy ước đặt tên của SDK.

Thay đổi: SDK không còn dùng system prompt của Claude Code làm mặc định.

Cách migrate:

import { query } from "@anthropic-ai/claude-agent-sdk";
// BEFORE (v0.0.x) - Used Claude Code's system prompt by default
const before = query({ prompt: "Hello" });
// AFTER (v0.1.0) - Uses minimal system prompt by default
// To get the old behavior, explicitly request Claude Code's preset:
const presetResult = query({
prompt: "Hello",
options: {
systemPrompt: { type: "preset", preset: "claude_code" }
}
});
// Or use a custom system prompt:
const customResult = query({
prompt: "Hello",
options: {
systemPrompt: "You are a helpful coding assistant"
}
});
from claude_agent_sdk import query, ClaudeAgentOptions
import asyncio
async def main():
# BEFORE (v0.0.x) - Used Claude Code's system prompt by default
async for message in query(prompt="Hello"):
print(message)
# AFTER (v0.1.0) - Uses minimal system prompt by default
# To get the old behavior, explicitly request Claude Code's preset:
async for message in query(
prompt="Hello",
options=ClaudeAgentOptions(
system_prompt={"type": "preset", "preset": "claude_code"} # Use the preset
),
):
print(message)
# Or use a custom system prompt:
async for message in query(
prompt="Hello",
options=ClaudeAgentOptions(system_prompt="You are a helpful coding assistant"),
):
print(message)
asyncio.run(main())

Lý do thay đổi: Mang lại khả năng kiểm soát và cô lập tốt hơn cho ứng dụng SDK. Giờ bạn có thể xây dựng agent với hành vi tuỳ biến mà không kế thừa các chỉ dẫn tập trung vào CLI của Claude Code.

Mặc định này đã bị đổi trong thời gian ngắn ở v0.1.0 rồi được revert lại, nên không cần hành động migrate gì.

Hành vi hiện tại: Bỏ qua settingSources trên query() sẽ tải settings ở cấp user, project, và local từ filesystem, khớp với CLI. Bao gồm ~/.claude/settings.json, .claude/settings.json, .claude/settings.local.json, các file CLAUDE.md, và custom command.

Để chạy cô lập khỏi settings trên filesystem, truyền một mảng rỗng:

import { query } from "@anthropic-ai/claude-agent-sdk";
const isolatedResult = query({
prompt: "Hello",
options: {
settingSources: [] // No filesystem settings loaded
}
});
// Or load only specific sources:
const projectOnlyResult = query({
prompt: "Hello",
options: {
settingSources: ["project"] // Only project settings
}
});
from claude_agent_sdk import query, ClaudeAgentOptions
import asyncio
async def main():
async for message in query(
prompt="Hello",
options=ClaudeAgentOptions(setting_sources=[]), # No filesystem settings loaded
):
print(message)
# Or load only specific sources:
async for message in query(
prompt="Hello",
options=ClaudeAgentOptions(
setting_sources=["project"] # Only project settings
),
):
print(message)
asyncio.run(main())

Tính cô lập này đặc biệt quan trọng cho pipeline CI/CD, ứng dụng deployed, môi trường test, và hệ thống multi-tenant nơi các tuỳ biến cục bộ không nên bị rò rỉ vào.

Claude Code SDK ban đầu được thiết kế cho các tác vụ coding, nhưng nó đã phát triển thành một framework mạnh mẽ để xây dựng mọi loại AI agent. Tên mới “Claude Agent SDK” phản ánh tốt hơn khả năng của nó:

  • Xây dựng agent nghiệp vụ (trợ lý pháp lý, tư vấn tài chính, hỗ trợ khách hàng)
  • Tạo agent coding chuyên biệt (bot SRE, security reviewer, agent review code)
  • Phát triển agent tuỳ biến cho bất kỳ lĩnh vực nào với tool use, tích hợp MCP, và nhiều hơn nữa

Nếu bạn gặp vấn đề trong quá trình migrate:

Với TypeScript/JavaScript:

  1. Kiểm tra mọi import đã được cập nhật để dùng @anthropic-ai/claude-agent-sdk
  2. Xác nhận package.json có tên package mới
  3. Chạy npm install để đảm bảo dependency đã được cập nhật

Với Python:

  1. Kiểm tra mọi import đã được cập nhật để dùng claude_agent_sdk
  2. Xác nhận requirements.txt hoặc pyproject.toml có tên package mới
  3. Chạy pip install claude-agent-sdk để đảm bảo package đã được cài