7> Panduan untuk migrasi Claude Code TypeScript dan Python SDKs ke Claude Agent SDK7> Panduan untuk migrasi Claude Code TypeScript dan Python SDKs ke Claude Agent SDK
8 8
9<h2 id="overview">9<h2 id="overview">
10 Ringkasan10 Ikhtisar
11</h2>11</h2>
12 12
13Claude Code SDK telah diubah namanya menjadi **Claude Agent SDK** dan dokumentasinya telah diorganisir ulang. Perubahan ini mencerminkan kemampuan SDK yang lebih luas untuk membangun agen AI di luar sekadar tugas pengkodean.13Claude Code SDK telah diubah namanya menjadi **Claude Agent SDK** dan dokumentasinya telah diorganisir ulang. Perubahan ini mencerminkan kemampuan SDK yang lebih luas untuk membangun agen AI di luar sekadar tugas pengkodean.
14 14
15Bermigrasi dari OpenAI Agents SDK? [Resep migrasi OpenAI Agents SDK](https://platform.claude.com/cookbook/claude-agent-sdk-04-migrating-from-openai-agents-sdk) memetakan setiap primitif ke Claude Agent SDK melalui satu contoh yang telah dikerjakan.
16
15<h2 id="what’s-changed">17<h2 id="what’s-changed">
16 Apa yang Berubah18 Apa yang Berubah
17</h2>19</h2>
18 20
19| Aspek | Lama | Baru |21| Aspek | Lama | Baru |
20| :--------------------- | :-------------------------- | :------------------------------- |22| :--------------------- | :-------------------------- | :------------------------------------------------------------------------------- |
21| **Nama Paket (TS/JS)** | `@anthropic-ai/claude-code` | `@anthropic-ai/claude-agent-sdk` |23| **Nama Paket (TS/JS)** | `@anthropic-ai/claude-code` | `@anthropic-ai/claude-agent-sdk` |
22| **Paket Python** | `claude-code-sdk` | `claude-agent-sdk` |24| **Paket Python** | `claude-code-sdk` | `claude-agent-sdk` |
23| **Lokasi Dokumentasi** | Dokumentasi Claude Code | API Guide → Bagian Agent SDK |25| **Lokasi Dokumentasi** | Claude Code docs | Claude Code docs → bagian [Agent SDK](/docs/id/agent-sdk/overview) yang didedikasikan |
24
25<Note>
26 **Perubahan Dokumentasi:** Dokumentasi Agent SDK telah dipindahkan dari dokumentasi Claude Code ke API Guide di bawah bagian [Agent SDK](/id/agent-sdk/overview) yang didedikasikan. Dokumentasi Claude Code sekarang fokus pada alat CLI dan fitur otomasi.
27</Note>
28 26
29<h2 id="migration-steps">27<h2 id="migration-steps">
30 Langkah-Langkah Migrasi28 Langkah-Langkah Migrasi
58import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";56import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";
59```57```
60 58
61**4. Perbarui dependensi package.json:**59**4. Perbarui package.json:**
62
63Jika Anda memiliki paket yang terdaftar di `package.json` Anda, perbarui:
64
65Sebelumnya:
66
67```json theme={null}
68{
69 "dependencies": {
70 "@anthropic-ai/claude-code": "^0.0.42"
71 }
72}
73```
74
75Sesudahnya:
76 60
77```json theme={null}61Jika `@anthropic-ai/claude-code` masih tercantum dalam `package.json` Anda, gantikan dengan `@anthropic-ai/claude-agent-sdk` dan perbarui juga rentang versinya, misalnya dari `"^0.0.42"` menjadi `"^0.3.0"`.
78{
79 "dependencies": {
80 "@anthropic-ai/claude-agent-sdk": "^0.2.0"
81 }
82}
83```
84 62
85**5. Tinjau [perubahan yang merusak](#breaking-changes)**63**5. Tinjau [perubahan yang merusak](#breaking-changes)**
86 64
93**1. Uninstall paket lama:**71**1. Uninstall paket lama:**
94 72
95```bash theme={null}73```bash theme={null}
96pip uninstall claude-code-sdk74pip uninstall -y claude-code-sdk
97```75```
98 76
77Jika paket lama tidak terinstal, pip mencetak `WARNING: Skipping claude-code-sdk as it is not installed.` Itu adalah hal yang diharapkan dan Anda dapat melanjutkan ke langkah berikutnya.
78
99**2. Install paket baru:**79**2. Install paket baru:**
100 80
101```bash theme={null}81```bash theme={null}
102pip install claude-agent-sdk82pip install claude-agent-sdk
103```83```
104 84
85Jika `claude-code-sdk` tercantum dalam `requirements.txt` atau `pyproject.toml` Anda, gantikan dengan `claude-agent-sdk`.
86
105**3. Perbarui impor Anda:**87**3. Perbarui impor Anda:**
106 88
107Ubah semua impor dari `claude_code_sdk` ke `claude_agent_sdk`:89Ubah semua impor dari `claude_code_sdk` ke `claude_agent_sdk`:
114from claude_agent_sdk import query, ClaudeAgentOptions96from claude_agent_sdk import query, ClaudeAgentOptions
115```97```
116 98
117**4. Perbarui nama tipe:**99**4. Tinjau [perubahan yang merusak](#breaking-changes)**
118
119Ubah `ClaudeCodeOptions` menjadi `ClaudeAgentOptions`:
120
121```python theme={null}
122# Sebelumnya
123from claude_code_sdk import query, ClaudeCodeOptions
124
125options = ClaudeCodeOptions(model="claude-opus-4-7")
126
127# Sesudahnya
128from claude_agent_sdk import query, ClaudeAgentOptions
129
130options = ClaudeAgentOptions(model="claude-opus-4-7")
131```
132
133**5. Tinjau [perubahan yang merusak](#breaking-changes)**
134 100
135Buat perubahan kode apa pun yang diperlukan untuk menyelesaikan migrasi.101Buat perubahan kode apa pun yang diperlukan untuk menyelesaikan migrasi.
136 102
137<h2 id="breaking-changes">103<h2 id="breaking-changes">
138 Perubahan yang merusak104 Perubahan yang merusak kompatibilitas
139</h2>105</h2>
140 106
141<Warning>107<Warning>
142 Untuk meningkatkan isolasi dan konfigurasi eksplisit, Claude Agent SDK v0.1.0 memperkenalkan perubahan yang merusak bagi pengguna yang bermigrasi dari Claude Code SDK. Tinjau bagian ini dengan hati-hati sebelum bermigrasi.108 Untuk meningkatkan isolasi dan konfigurasi eksplisit, Claude Agent SDK v0.1.0 memperkenalkan perubahan yang merusak kompatibilitas bagi pengguna yang bermigrasi dari Claude Code SDK.
143</Warning>109</Warning>
144 110
145<h3 id="python-claudecodeoptions-renamed-to-claudeagentoptions">111<h3 id="python-claudecodeoptions-renamed-to-claudeagentoptions">
146 Python: ClaudeCodeOptions diubah nama menjadi ClaudeAgentOptions112 Python: ClaudeCodeOptions diganti nama menjadi ClaudeAgentOptions
147</h3>113</h3>
148 114
149**Apa yang berubah:** Tipe Python SDK `ClaudeCodeOptions` telah diubah nama menjadi `ClaudeAgentOptions`.115**Apa yang berubah:** Tipe SDK Python `ClaudeCodeOptions` telah diganti nama menjadi `ClaudeAgentOptions`.
150 116
151**Migrasi:**117**Migrasi:**
152 118
162options = ClaudeAgentOptions(model="claude-opus-4-7", permission_mode="acceptEdits")128options = ClaudeAgentOptions(model="claude-opus-4-7", permission_mode="acceptEdits")
163```129```
164 130
165**Mengapa ini berubah:** Nama tipe sekarang cocok dengan branding "Claude Agent SDK" dan memberikan konsistensi di seluruh konvensi penamaan SDK.
166
167<h3 id="system-prompt-no-longer-default">131<h3 id="system-prompt-no-longer-default">
168 Prompt sistem tidak lagi default132 System prompt tidak lagi default
169</h3>133</h3>
170 134
171**Apa yang berubah:** SDK tidak lagi menggunakan prompt sistem Claude Code secara default.135**Apa yang berubah:** SDK tidak lagi menggunakan system prompt Claude Code secara default.
172 136
173**Migrasi:**137**Migrasi:**
174 138
176 ```typescript TypeScript theme={null}140 ```typescript TypeScript theme={null}
177 import { query } from "@anthropic-ai/claude-agent-sdk";141 import { query } from "@anthropic-ai/claude-agent-sdk";
178 142
179 // SEBELUMNYA (v0.0.x) - Menggunakan prompt sistem Claude Code secara default143 // SEBELUMNYA (v0.0.x) - Menggunakan system prompt Claude Code secara default
180 const before = query({ prompt: "Hello" });144 const before = query({ prompt: "Hello" });
181 145
182 // SESUDAHNYA (v0.1.0) - Menggunakan prompt sistem minimal secara default146 // SESUDAHNYA (v0.1.0) - Menggunakan system prompt minimal secara default
183 // Untuk mendapatkan perilaku lama, secara eksplisit minta preset Claude Code:147 // Untuk mendapatkan perilaku lama, secara eksplisit minta preset Claude Code:
184 const presetResult = query({148 const presetResult = query({
185 prompt: "Hello",149 prompt: "Hello",
188 }152 }
189 });153 });
190 154
191 // Atau gunakan prompt sistem kustom:155 // Atau gunakan system prompt kustom:
192 const customResult = query({156 const customResult = query({
193 prompt: "Hello",157 prompt: "Hello",
194 options: {158 options: {
198 ```162 ```
199 163
200 ```python Python theme={null}164 ```python Python theme={null}
201 # SEBELUMNYA (v0.0.x) - Menggunakan prompt sistem Claude Code secara default165 from claude_agent_sdk import query, ClaudeAgentOptions
166 import asyncio
167
168
169 async def main():
170 # SEBELUMNYA (v0.0.x) - Menggunakan system prompt Claude Code secara default
202 async for message in query(prompt="Hello"):171 async for message in query(prompt="Hello"):
203 print(message)172 print(message)
204 173
205 # SESUDAHNYA (v0.1.0) - Menggunakan prompt sistem minimal secara default174 # SESUDAHNYA (v0.1.0) - Menggunakan system prompt minimal secara default
206 # Untuk mendapatkan perilaku lama, secara eksplisit minta preset Claude Code:175 # Untuk mendapatkan perilaku lama, secara eksplisit minta preset Claude Code:
207 from claude_agent_sdk import query, ClaudeAgentOptions
208
209 async for message in query(176 async for message in query(
210 prompt="Hello",177 prompt="Hello",
211 options=ClaudeAgentOptions(178 options=ClaudeAgentOptions(
214 ):181 ):
215 print(message)182 print(message)
216 183
217 # Atau gunakan prompt sistem kustom:184 # Atau gunakan system prompt kustom:
218 async for message in query(185 async for message in query(
219 prompt="Hello",186 prompt="Hello",
220 options=ClaudeAgentOptions(system_prompt="You are a helpful coding assistant"),187 options=ClaudeAgentOptions(system_prompt="You are a helpful coding assistant"),
221 ):188 ):
222 print(message)189 print(message)
190
191
192 asyncio.run(main())
223 ```193 ```
224</CodeGroup>194</CodeGroup>
225 195
226**Mengapa ini berubah:** Memberikan kontrol dan isolasi yang lebih baik untuk aplikasi SDK. Anda sekarang dapat membangun agen dengan perilaku kustom tanpa mewarisi instruksi yang berfokus pada CLI dari Claude Code.
227
228<h3 id="settings-sources-default">196<h3 id="settings-sources-default">
229 Default sumber pengaturan197 Default sumber pengaturan
230</h3>198</h3>
231 199
232Default ini secara singkat diubah di v0.1.0 dan kemudian dikembalikan, jadi tidak ada tindakan migrasi yang diperlukan.200Default ini secara singkat diubah di v0.1.0 untuk tidak memuat pengaturan filesystem dan kemudian dikembalikan, jadi tidak ada tindakan migrasi yang diperlukan.
233
234**Perilaku saat ini:** Menghilangkan `settingSources` pada `query()` memuat pengaturan pengguna, proyek, dan sistem file lokal, cocok dengan CLI. Ini termasuk `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, file CLAUDE.md, dan perintah kustom.
235 201
236Untuk menjalankan terisolasi dari pengaturan sistem file, teruskan array kosong:202**Perilaku saat ini:** Menghilangkan `settingSources` pada `query()` memuat pengaturan pengguna, proyek, dan filesystem lokal, sesuai dengan CLI. Ini mencakup `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, file CLAUDE.md, dan perintah kustom.
237 203
238<CodeGroup>204Untuk menjalankan terisolasi dari pengaturan filesystem, teruskan `settingSources: []`, atau `setting_sources=[]` di Python. Lihat [Control filesystem settings with settingSources](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) untuk mengetahui apa yang dimuat setiap sumber.
239 ```typescript TypeScript theme={null}
240 import { query } from "@anthropic-ai/claude-agent-sdk";
241
242 const isolatedResult = query({
243 prompt: "Hello",
244 options: {
245 settingSources: [] // Tidak ada pengaturan sistem file yang dimuat
246 }
247 });
248
249 // Atau muat hanya sumber tertentu:
250 const projectOnlyResult = query({
251 prompt: "Hello",
252 options: {
253 settingSources: ["project"] // Hanya pengaturan proyek
254 }
255 });
256 ```
257
258 ```python Python theme={null}
259 from claude_agent_sdk import query, ClaudeAgentOptions
260
261 async for message in query(
262 prompt="Hello",
263 options=ClaudeAgentOptions(setting_sources=[]), # Tidak ada pengaturan sistem file yang dimuat
264 ):
265 print(message)
266
267 # Atau muat hanya sumber tertentu:
268 async for message in query(
269 prompt="Hello",
270 options=ClaudeAgentOptions(
271 setting_sources=["project"] # Hanya pengaturan proyek
272 ),
273 ):
274 print(message)
275 ```
276</CodeGroup>
277 205
278Isolasi sangat penting untuk pipeline CI/CD, aplikasi yang diterapkan, lingkungan pengujian, dan sistem multi-tenant di mana kustomisasi lokal tidak boleh bocor.206Isolasi sangat penting untuk pipeline CI/CD, aplikasi yang diterapkan, lingkungan pengujian, dan sistem multi-tenant di mana kustomisasi lokal tidak boleh bocor.
279 207
280<Note>208<Note>
281 SDK v0.1.0 secara singkat default ke tidak ada pengaturan yang dimuat; ini dikembalikan dalam rilis berikutnya. Python SDK 0.1.59 dan lebih awal memperlakukan daftar kosong sama dengan menghilangkan opsi, jadi upgrade sebelum mengandalkan `setting_sources=[]`. Lihat [Apa yang settingSources tidak kontrol](/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca bahkan ketika `settingSources` adalah `[]`.209 Python SDK 0.1.59 dan lebih awal memperlakukan daftar kosong sama dengan menghilangkan opsi, jadi tingkatkan sebelum mengandalkan `setting_sources=[]`. Lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca bahkan ketika `settingSources` adalah `[]`.
282</Note>210</Note>
283 211
284<h2 id="why-the-rename">
285 Mengapa Pengubahan Nama?
286</h2>
287
288Claude Code SDK awalnya dirancang untuk tugas pengkodean, tetapi telah berkembang menjadi kerangka kerja yang kuat untuk membangun semua jenis agen AI. Nama baru "Claude Agent SDK" lebih mencerminkan kemampuannya:
289
290* Membangun agen bisnis (asisten hukum, penasihat keuangan, dukungan pelanggan)
291* Membuat agen pengkodean khusus (bot SRE, pengulas keamanan, agen tinjauan kode)
292* Mengembangkan agen kustom untuk domain apa pun dengan penggunaan alat, integrasi MCP, dan banyak lagi
293
294<h2 id="getting-help">
295 Mendapatkan Bantuan
296</h2>
297
298Jika Anda mengalami masalah apa pun selama migrasi:
299
300**Untuk TypeScript/JavaScript:**
301
3021. Periksa bahwa semua impor diperbarui untuk menggunakan `@anthropic-ai/claude-agent-sdk`
3032. Verifikasi bahwa package.json Anda memiliki nama paket baru
3043. Jalankan `npm install` untuk memastikan dependensi diperbarui
305
306**Untuk Python:**
307
3081. Periksa bahwa semua impor diperbarui untuk menggunakan `claude_agent_sdk`
3092. Verifikasi bahwa requirements.txt atau pyproject.toml Anda memiliki nama paket baru
3103. Jalankan `pip install claude-agent-sdk` untuk memastikan paket terinstal
311
312<h2 id="next-steps">212<h2 id="next-steps">
313 Langkah Berikutnya213 Langkah Berikutnya
314</h2>214</h2>
315 215
316* Jelajahi [Ringkasan Agent SDK](/id/agent-sdk/overview) untuk mempelajari fitur yang tersedia216* Jelajahi [Ringkasan Agent SDK](/docs/id/agent-sdk/overview) untuk mempelajari fitur yang tersedia
317* Lihat [Referensi SDK TypeScript](/id/agent-sdk/typescript) untuk dokumentasi API terperinci217* Lihat [Referensi SDK TypeScript](/docs/id/agent-sdk/typescript) untuk dokumentasi API terperinci
318* Tinjau [Referensi SDK Python](/id/agent-sdk/python) untuk dokumentasi khusus Python218* Tinjau [Referensi SDK Python](/docs/id/agent-sdk/python) untuk dokumentasi khusus Python
319* Pelajari tentang [Custom Tools](/id/agent-sdk/custom-tools) dan [Integrasi MCP](/id/agent-sdk/mcp)219* Pelajari tentang [Custom Tools](/docs/id/agent-sdk/custom-tools) dan [Integrasi MCP](/docs/id/agent-sdk/mcp)