תיעוד 166
מעבר ל-Claude Agent SDK
מדריך למעבר של ה-SDK של Claude Code ב-TypeScript וב-Python אל Claude Agent SDK
#סקירה
שם ה-SDK של Claude Code שונה ל-Claude Agent SDK, והתיעוד שלו אורגן מחדש. השינוי משקף את היכולות הרחבות יותר של ה-SDK לבניית סוכני AI מעבר למשימות קידוד.
מעבירים מ-OpenAI Agents SDK במקום? מתכון המעבר מ-OpenAI Agents SDK ממפה כל פרימיטיב אל Claude Agent SDK באמצעות דוגמה אחת מעובדת.
#מה השתנה
| היבט | ישן | חדש |
|---|---|---|
| שם החבילה (TS/JS) | @anthropic-ai/claude-code | @anthropic-ai/claude-agent-sdk |
| חבילת Python | claude-code-sdk | claude-agent-sdk |
| מיקום התיעוד | תיעוד Claude Code | תיעוד Claude Code → מקטע ייעודי של Agent SDK |
#שלבי המעבר
#מעבר של פרויקט TypeScript או JavaScript
- הסרת החבילה הישנה:
npm uninstall @anthropic-ai/claude-code- התקנת החבילה החדשה:
npm install @anthropic-ai/claude-agent-sdk- עדכון הייבוא:
שנו את כל הייבוא מ-@anthropic-ai/claude-code ל-@anthropic-ai/claude-agent-sdk:
// לפני
import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-code";
// אחרי
import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";- עדכון package.json:
אם @anthropic-ai/claude-code עדיין מופיע ב-package.json, החליפו אותו ב-@anthropic-ai/claude-agent-sdk ועדכנו גם את טווח הגרסאות, לדוגמה מ-"^0.0.42" ל-"^0.3.0".
- עיון בשינויים שוברים
בצעו את שינויי הקוד הנדרשים כדי להשלים את המעבר.
#מעבר של פרויקט Python
- הסרת החבילה הישנה:
pip uninstall -y claude-code-sdkאם החבילה הישנה אינה מותקנת, pip מדפיס WARNING: Skipping claude-code-sdk as it is not installed. זה צפוי, ואפשר להמשיך לשלב הבא.
- התקנת החבילה החדשה:
pip install claude-agent-sdkאם claude-code-sdk מופיע ב-requirements.txt או ב-pyproject.toml, החליפו אותו ב-claude-agent-sdk.
- עדכון הייבוא:
שנו את כל הייבוא מ-claude_code_sdk ל-claude_agent_sdk:
# לפני
from claude_code_sdk import query, ClaudeCodeOptions
# אחרי
from claude_agent_sdk import query, ClaudeAgentOptions- עיון בשינויים שוברים
בצעו את שינויי הקוד הנדרשים כדי להשלים את המעבר.
#שינויים שוברים
אזהרה
כדי לשפר בידוד והגדרה מפורשת, Claude Agent SDK v0.1.0 מציג שינויים שוברים למשתמשים שעוברים מ-Claude Code SDK.
#Python: השם ClaudeCodeOptions שונה ל-ClaudeAgentOptions
מה השתנה: הטיפוס ClaudeCodeOptions ב-SDK של Python שונה שמו ל-ClaudeAgentOptions.
מעבר:
# לפני (claude-code-sdk)
from claude_code_sdk import query, ClaudeCodeOptions
options = ClaudeCodeOptions(model="claude-opus-4-7", permission_mode="acceptEdits")
# אחרי (claude-agent-sdk)
from claude_agent_sdk import query, ClaudeAgentOptions
options = ClaudeAgentOptions(model="claude-opus-4-7", permission_mode="acceptEdits")#הנחיית המערכת כבר לא ברירת מחדל
מה השתנה: ה-SDK כבר לא משתמש כברירת מחדל בהנחיית המערכת של Claude Code.
מעבר:
TypeScript:
import { query } from "@anthropic-ai/claude-agent-sdk";
// לפני (v0.0.x) - השתמש כברירת מחדל בהנחיית המערכת של Claude Code
const before = query({ prompt: "Hello" });
// אחרי (v0.1.0) - משתמש כברירת מחדל בהנחיית מערכת מצומצמת
// כדי לקבל את ההתנהגות הישנה, בקשו במפורש את ה-preset של Claude Code:
const presetResult = query({
prompt: "Hello",
options: {
systemPrompt: { type: "preset", preset: "claude_code" }
}
});
// או השתמשו בהנחיית מערכת מותאמת אישית:
const customResult = query({
prompt: "Hello",
options: {
systemPrompt: "You are a helpful coding assistant"
}
});Python:
from claude_agent_sdk import query, ClaudeAgentOptions
import asyncio
async def main():
# לפני (v0.0.x) - השתמש כברירת מחדל בהנחיית המערכת של Claude Code
async for message in query(prompt="Hello"):
print(message)
# אחרי (v0.1.0) - משתמש כברירת מחדל בהנחיית מערכת מצומצמת
# כדי לקבל את ההתנהגות הישנה, בקשו במפורש את ה-preset של Claude Code:
async for message in query(
prompt="Hello",
options=ClaudeAgentOptions(
system_prompt={"type": "preset", "preset": "claude_code"} # השתמשו ב-preset
),
):
print(message)
# או השתמשו בהנחיית מערכת מותאמת אישית:
async for message in query(
prompt="Hello",
options=ClaudeAgentOptions(system_prompt="You are a helpful coding assistant"),
):
print(message)
asyncio.run(main())#ברירת המחדל של מקורות ההגדרות
ברירת המחדל הזו השתנתה לזמן קצר ב-v0.1.0 כך שלא נטענו הגדרות ממערכת הקבצים, ואז השינוי בוטל, ולכן אין צורך בפעולת מעבר.
התנהגות נוכחית: השמטת settingSources ב-query() טוענת הגדרות של משתמש, פרויקט ומערכת קבצים מקומית, בהתאמה ל-CLI. זה כולל את ~/.claude/settings.json, .claude/settings.json, .claude/settings.local.json, קבצי CLAUDE.md, ופקודות מותאמות אישית.
כדי לרוץ בבידוד מהגדרות מערכת הקבצים, העבירו settingSources: [], או setting_sources=[] ב-Python. ראו שליטה בהגדרות מערכת הקבצים עם settingSources כדי לדעת מה כל מקור טוען.
בידוד חשוב במיוחד לצינורות CI/CD, ליישומים פרוסים, לסביבות בדיקה ולמערכות מרובות דיירים, שבהן התאמות מקומיות לא אמורות לזלוג פנימה.
הערה
SDK של Python בגרסה 0.1.59 ומוקדמות יותר התייחס לרשימה ריקה כמו להשמטת האפשרות, לכן שדרגו לפני שמסתמכים על
setting_sources=[]. ראו מה settingSources לא שולט לגבי קלטים שנקראים גם כאשרsettingSourcesהוא[].
#הצעדים הבאים
- עיינו בסקירת Agent SDK כדי ללמוד על התכונות הזמינות
- עיינו במדריך העזר של TypeScript SDK לתיעוד API מפורט
- עיינו במדריך העזר של Python SDK לתיעוד ייעודי ל-Python
- למדו על כלים מותאמים אישית ועל שילוב MCP