מדריך קלוד קוד בעברית

תיעוד 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
חבילת Pythonclaude-code-sdkclaude-agent-sdk
מיקום התיעודתיעוד Claude Codeתיעוד Claude Code → מקטע ייעודי של Agent SDK

#שלבי המעבר

#מעבר של פרויקט TypeScript או JavaScript

  1. הסרת החבילה הישנה:
npm uninstall @anthropic-ai/claude-code
  1. התקנת החבילה החדשה:
npm install @anthropic-ai/claude-agent-sdk
  1. עדכון הייבוא:

שנו את כל הייבוא מ-@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";
  1. עדכון package.json:

אם @anthropic-ai/claude-code עדיין מופיע ב-package.json, החליפו אותו ב-@anthropic-ai/claude-agent-sdk ועדכנו גם את טווח הגרסאות, לדוגמה מ-"^0.0.42" ל-"^0.3.0".

  1. עיון בשינויים שוברים

בצעו את שינויי הקוד הנדרשים כדי להשלים את המעבר.

#מעבר של פרויקט Python

  1. הסרת החבילה הישנה:
pip uninstall -y claude-code-sdk

אם החבילה הישנה אינה מותקנת, pip מדפיס WARNING: Skipping claude-code-sdk as it is not installed. זה צפוי, ואפשר להמשיך לשלב הבא.

  1. התקנת החבילה החדשה:
pip install claude-agent-sdk

אם claude-code-sdk מופיע ב-requirements.txt או ב-pyproject.toml, החליפו אותו ב-claude-agent-sdk.

  1. עדכון הייבוא:

שנו את כל הייבוא מ-claude_code_sdk ל-claude_agent_sdk:

# לפני
from claude_code_sdk import query, ClaudeCodeOptions

# אחרי
from claude_agent_sdk import query, ClaudeAgentOptions
  1. עיון בשינויים שוברים

בצעו את שינויי הקוד הנדרשים כדי להשלים את המעבר.

#שינויים שוברים

אזהרה

כדי לשפר בידוד והגדרה מפורשת, 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 הוא [].

#הצעדים הבאים