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

תיעוד 141

שינוי פרומפטי מערכת

בחר בין ה-preset של claude_code לבין system prompt מותאם אישית, והתאם אישית את ההתנהגות באמצעות CLAUDE.md, סגנונות פלט (output styles), append, או פרומפט מותאם אישית לחלוטין.

פרומפטי מערכת (system prompts) מגדירים את ההתנהגות, היכולות וסגנון התגובה של Claude. התחל מה-preset של claude_code עבור כלי קידוד דמויי CLI או סביבת פיתוח (IDE) שבהם אדם צופה ומכוון את העבודה. כתוב פרומפט משלך עבור סוכנים בעלי ממשק (surface), זהות או מודל הרשאות שונים.

#כיצד פועלים פרומפטי מערכת

פרומפט מערכת (system prompt) הוא ערכת ההוראות הראשונית שמעצבת את האופן שבו Claude מתנהג לאורך שיחה. ל-Agent SDK יש שלוש נקודות התחלה עבורו:

  • ברירת מחדל מינימלית: כאשר אינך מגדיר systemPrompt ב-TypeScript או system_prompt ב-Python, ה-SDK משתמש בפרומפט מינימלי שמכסה קריאה לכלים (tool calling) אך משמיט את שאר התוכן של ה-preset של claude_code, כולל הוראות האבטחה והבטיחות שלו ואת ההקשר שלו לגבי תיקיית העבודה והסביבה. זה שונה מ-claude -p, שמשתמש ב-system prompt של Claude Code כברירת מחדל. אם אתה מבצע הגירה מה-CLI ורוצה התנהגות תואמת, הגדר את ה-preset של claude_code.
  • ה-preset של claude_code: ה-system prompt שבו משתמש ה-CLI של Claude Code, עם הוראות שימוש בכלים, הוראות אבטחה ובטיחות, והקשר לגבי תיקיית העבודה והסביבה. הגדר systemPrompt: { type: "preset", preset: "claude_code" } ב-TypeScript או system_prompt={"type": "preset", "preset": "claude_code"} ב-Python, עם אפשרות ל-append כדי להוסיף הוראות משלך בסוף.
  • מחרוזת מותאמת אישית: פרומפט שאתה כותב בעצמך. ה-SDK שולח רק את מה שאתה מספק.

#החלטה על נקודת התחלה

הגורם המכריע הוא עד כמה הסוכן שלך דומה ל-Claude Code: סוכן קידוד הפועל בתוך מאגר קוד (repository), כאשר אדם צופה בפלט המוזרם ומכוון את העבודה. ככל שהמוצר שלך רחוק יותר מכך, כך תרצה יותר לכתוב פרומפט משלך.

מה שאתה בונהמה להשתמשמה אתה מקבל
כלי קידוד דמוי CLI או סביבת פיתוח (IDE) שבו אדם צופה ומכוון, וברירות המחדל של Claude Code הן מה שאתה רוצהה-preset של claude_codeהפרומפט של Claude Code, כולל הנחיות לכלים, כללי בטיחות והקשר סביבתי
אותו סוג של כלי, בתוספת כללים ספציפיים למוצר כמו תקני קידוד, פורמט פלט או הקשר של התחוםה-preset של claude_code עם appendכל מה שצוין למעלה, בתוספת ההוראות שלך שמתווספות אחרי ה-preset. שום דבר אינו מוסר, ולכן זוהי ההתאמה האישית בסיכון הנמוך ביותר
סוכן בעל ממשק, זהות או מודל הרשאות שונים, או סוכן שאינו מיועד לקידודמחרוזת פרומפט מותאמת אישיתרק מה שאתה כותב. אתה לוקח אחריות על החלפת הנחיות הכלים והוראות הבטיחות שהסוכן שלך עדיין זקוק להן
לולאת קריאה לכלים רזה ללא פרסונה של סוכן, שבה אתה מספק את כל ההתנהגות בפרומפט המשתמשללא אפשרות systemPromptברירת המחדל המינימלית: תמיכה בקריאה לכלים ותו לא

"שונה מ-Claude Code" פירושו בדרך כלל אחד מהבאים:

  • ממשק שונה: הפלט אינו נקרא בטרמינל על ידי האדם שהפעיל אותו. ממשקי צ'אט, צרכני פלט מובנה ואוטומציה שאינה של קידוד זקוקים כל אחד לפרומפט שמתאים לאופן שבו הפלט שלהם מוצג ונבדק. אוטומציית קידוד ללא השגחה, כמו משימת CI שמתקנת שגיאות lint או בודקת diffs, עדיין מתאימה ל-preset מכיוון שהעבודה עצמה היא מה שה-preset נכתב עבורו.
  • זהות שונה: הסוכן לא אמור להציג את עצמו כ-Claude Code. בוט תמיכה, עוזר לניתוח נתונים, או כל סוכן ספציפי לתחום מסוים זקוק לשם, היקף ופרסונה משלו.
  • מודל הרשאות שונה: הסוכן פועל באופן אוטונומי ללא אדם שמאשר כל שלב, או פועל על קבוצה מצומצמת של משאבים. הפרומפט של Claude Code מניח שיש אדם בלולאה עם גישה לערכת כלים מלאה.
  • משימות שאינן קידוד: רוב הפרומפט של Claude Code הוא הנחיות קידוד. עבור סוכני מחקר, תוכן או תפעול, הנחיות אלו מתחרות בהוראות שאתה באמת צריך.

טבלת ההשוואה בהמשך הדף מציגה מה כל שיטת התאמה אישית משמרת.

#התאמה אישית של התנהגות הסוכן

סגנונות פלט (output styles), הוספה עם append ומחרוזת פרומפט מותאמת אישית משנים כל אחד את ה-system prompt ישירות. הקובץ CLAUDE.md נוקט בדרך אחרת: ה-SDK קורא אותו ומזריק את תוכנו לתוך השיחה כהקשר של הפרויקט, ולא לתוך ה-system prompt, כך שהוא מעצב את ההתנהגות לצד כל system prompt שתבחר. מיומנויות (Skills), נקודות יירוט (hooks) והרשאות (permissions) מעצבים גם הם התנהגות מחוץ ל-system prompt ומכוסים בעמודים משלהם.

#קובצי CLAUDE.md עבור הוראות ברמת הפרויקט

קובצי CLAUDE.md מעניקים ל-Claude הקשר והוראות קבועים לפרויקט. ה-SDK מזריק את תוכנם לתוך השיחה ומשאיר את ה-system prompt ללא שינוי, כך שהם עובדים עם כל תצורת system prompt. למידע על מה לשים ב-CLAUDE.md, היכן למקם אותו וכיצד לכתוב הוראות יעילות, ראה מתי להוסיף ל-CLAUDE.md ואת שאר הדף כיצד Claude זוכר את הפרויקט שלך. סעיף זה עוסק במה שספציפי ל-SDK: כיצד CLAUDE.md נטען.

ה-SDK קורא את CLAUDE.md כאשר מקור ההגדרות המתאים מופעל: 'project' טוען את CLAUDE.md או .claude/CLAUDE.md מתיקיית העבודה, ו-'user' טוען את ~/.claude/CLAUDE.md. אפשרויות ברירת המחדל של query() מפעילות את שני המקורות, כך ש-CLAUDE.md נטען באופן אוטומטי. אם אתה מגדיר את settingSources ב-TypeScript או את setting_sources ב-Python במפורש, כלול את המקורות שאתה צריך. טעינת CLAUDE.md נשלטת על ידי מקורות הגדרות (setting sources), ולא על ידי ה-preset של claude_code.

#טעינת CLAUDE.md באמצעות ה-SDK

כדי לטעון את CLAUDE.md, הגדר את settingSources כך שיכלול את הרמה שבה אתה שומר את ה-CLAUDE.md שלך. הדוגמה להלן טוענת CLAUDE.md ברמת הפרויקט לצד ה-preset של claude_code, כך של-Claude יש גם את פרומפט סוכן הקידוד וגם את המוסכמות של הפרויקט שלך:

TypeScript:

import { query } from "@anthropic-ai/claude-agent-sdk";

const messages = [];

for await (const message of query({
  prompt: "Add a new React component for user profiles",
  options: {
    systemPrompt: {
      type: "preset",
      preset: "claude_code" // Use Claude Code's system prompt
    },
    settingSources: ["project"] // Loads CLAUDE.md from project
  }
})) {
  messages.push(message);
}

// Now Claude has access to your project guidelines from CLAUDE.md

Python:

import asyncio

from claude_agent_sdk import query, ClaudeAgentOptions

messages = []


async def main():
    async for message in query(
        prompt="Add a new React component for user profiles",
        options=ClaudeAgentOptions(
            system_prompt={
                "type": "preset",
                "preset": "claude_code",  
# Use Claude Code's system prompt
            },
            setting_sources=["project"],  
# Loads CLAUDE.md from project
        ),
    ):
        messages.append(message)


asyncio.run(main())

# Now Claude has access to your project guidelines from CLAUDE.md

כאשר אתה מריץ אחת מהדוגמאות, ה-SDK מזרים הודעות בזמן ש-Claude עובד: הודעת אתחול מערכת (system init message), הודעות עוזר (assistant messages), הודעות משתמש שנושאות תוצאות כלים, והודעת תוצאה סופית עם תוצאת ההפעלה (session).

הקובץ CLAUDE.md נשמר לאורך כל ההפעלות בפרויקט, משותף עם הצוות שלך באמצעות git, ומתגלה אוטומטית ללא שינויי קוד. הוא אינו נטען אם אתה מעביר מערך settingSources ריק.

#סגנונות פלט עבור תצורות קבועות

סגנונות פלט (Output styles) הם תצורות שמורות שמשנות את ה-system prompt של Claude. הם מאוחסנים כקובצי markdown וניתן לעשות בהם שימוש חוזר בין הפעלות ופרויקטים.

#יצירת סגנון פלט

סגנון פלט הוא קובץ markdown עם frontmatter עבור מטא-דאטה, ולאחריו תוכן הפרומפט. שמור אותו ב-~/.claude/output-styles/ עבור סגנון ברמת המשתמש שזמין בכל פרויקט, או ב-.claude/output-styles/ בתוך המאגר שלך עבור סגנון ברמת הפרויקט שתוכל לשמור ב-commit ולשתף עם הצוות שלך.

סגנון פלט מותאם אישית משמיט את הוראות הנדסת התוכנה של ה-preset של claude_code ומשתמש בהוראות שלך. כדי לשמור אותן ולהוסיף את ההוראות שלך עליהן, הגדר keep-coding-instructions: true ב-frontmatter. הוראות אלו נמצאות רק ב-system prompt המלא של Claude Code, ולכן להגדרה זו אין השפעה בהפעלה שמשתמשת ב-system prompt הקצר יותר, אותו אתה קובע כפעיל או כבוי באמצעות CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT. שמור אותן כאשר הסוכן שלך עדיין מבצע עבודת הנדסת תוכנה. השמט אותן כאשר אתה מחליף את התפקיד לחלוטין.

הדוגמה להלן מגדירה פרסונת סקירת קוד ששומרת על הוראות הקידוד, מכיוון שסקירת קוד עדיין מפיקה תועלת מהנחיות האבטחה ואיכות הקוד של Claude Code. שמור אותה בתור ~/.claude/output-styles/code-reviewer.md כדי להפוך אותה לזמינה בכל הפרויקטים:

---
name: Code Reviewer
description: Thorough code review assistant
keep-coding-instructions: true
---

You are an expert code reviewer.

For every code submission:
1. Check for bugs and security issues
2. Evaluate performance
3. Suggest improvements
4. Rate code quality (1-10)

#הפעלת סגנון פלט

לאחר שנוצר, הפעל סגנונות פלט באמצעות:

  • CLI: הרץ /config ובחר סגנון פלט
  • הגדרות: הגדר את outputStyle ב-.claude/settings.local.json
  • TypeScript SDK: הגדר את outputStyle בתוך אובייקט ה-settings המוטמע שמועבר אל query(), או כוון את settings לקובץ הגדרות שמגדיר זאת. outputStyle אינו שדה ברמה העליונה של Options:
const options = { settings: { outputStyle: "Explanatory" } };

ל-Python SDK אין אפשרות לבחור סגנון פלט באופן תכנותי. עבור פריסות מבוססות קוד בלבד שבהן אינך יכול לכתוב ל-.claude/settings.local.json, השתמש במקום זאת ב-append או במחרוזת פרומפט מותאמת אישית.

הערה למשתמשי SDK: סגנונות פלט נטענים כאשר אתה כולל settingSources: ['user'] או settingSources: ['project'] (ב-TypeScript) / setting_sources=["user"] או setting_sources=["project"] (ב-Python) באפשרויות שלך.

#הוספה ל-preset של claude_code באמצעות append

באפשרותך להשתמש ב-preset של Claude Code עם מאפיין append כדי להוסיף את ההוראות המותאמות אישית שלך תוך שמירה על כל הפונקציונליות המובנית.

TypeScript:

import { query } from "@anthropic-ai/claude-agent-sdk";

const messages = [];

for await (const message of query({
  prompt: "Help me write a Python function to calculate fibonacci numbers",
  options: {
    systemPrompt: {
      type: "preset",
      preset: "claude_code",
      append: "Always include detailed docstrings and type hints in Python code."
    }
  }
})) {
  messages.push(message);
  if (message.type === "assistant") {
    console.log(message.message.content);
  }
}

Python:

import asyncio

from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

messages = []


async def main():
    async for message in query(
        prompt="Help me write a Python function to calculate fibonacci numbers",
        options=ClaudeAgentOptions(
            system_prompt={
                "type": "preset",
                "preset": "claude_code",
                "append": "Always include detailed docstrings and type hints in Python code.",
            }
        ),
    ):
        messages.append(message)
        if isinstance(message, AssistantMessage):
            print(message.content)


asyncio.run(main())

#שיפור שמירת פרומפטים במטמון בין משתמשים ומכונות

כברירת מחדל, שתי הפעלות שמשתמשות באותו preset של claude_code ובאותו טקסט append עדיין אינן יכולות לחלוק רשומת מטמון פרומפט (prompt cache entry) אם הן רצות מתיקיות עבודה שונות. הסיבה לכך היא שה-preset מטמיע הקשר ספציפי להפעלה בתוך ה-system prompt לפני טקסט ה-append שלך: תיקיית העבודה, האם מדובר במאגר git, הפלטפורמה, ה-shell הפעיל, גרסת מערכת ההפעלה ונתיבי זיכרון אוטומטי (auto memory paths). כל הבדל בהקשר זה יוצר system prompt שונה והחטאת מטמון (cache miss). תוכן הקובץ CLAUDE.md אינו משפיע על מטמון ה-system prompt מכיוון שה-SDK מזריק אותו לתוך השיחה, ולא לתוך ה-system prompt.

כדי להפוך את ה-system prompt לזהה בין הפעלות, הגדר excludeDynamicSections: true ב-TypeScript או "exclude_dynamic_sections": True ב-Python. ההקשר הספציפי להפעלה עובר להודעת המשתמש הראשונה, ומשאיר רק את ה-preset הסטטי ואת טקסט ה-append שלך ב-system prompt, כך שתצורות זהות חולקות רשומת מטמון בין משתמשים ומכונות.

הערה: excludeDynamicSections דורש את @anthropic-ai/claude-agent-sdk בגרסה v0.2.98 ומעלה, או claude-agent-sdk בגרסה v0.1.58 ומעלה עבור Python. הגדר זאת במבנה האובייקט של ה-preset בלבד. ה-SDK מתעלם מכך כאשר אתה מעביר פרומפט מותאם אישית במקום ה-preset. כדי לשמור את ההוראות של פרומפט מותאם אישית במטמון ב-TypeScript SDK, ראה שמירת החלק הסטטי של פרומפט מותאם אישית במטמון.

הדוגמה הבאה משלבת בלוק append משותף עם excludeDynamicSections כך שצי של סוכנים הרצים מתיקיות שונות יוכל לעשות שימוש חוזר באותו system prompt שנשמר במטמון:

TypeScript:

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "Triage the open issues in this repo",
  options: {
    systemPrompt: {
      type: "preset",
      preset: "claude_code",
      append: "You operate Acme's internal triage workflow. Label issues by component and severity.",
      excludeDynamicSections: true
    }
  }
})) {
  // ...
}

Python:

import asyncio

from claude_agent_sdk import query, ClaudeAgentOptions


async def main():
    async for message in query(
        prompt="Triage the open issues in this repo",
        options=ClaudeAgentOptions(
            system_prompt={
                "type": "preset",
                "preset": "claude_code",
                "append": "You operate Acme's internal triage workflow. Label issues by component and severity.",
                "exclude_dynamic_sections": True,
            },
        ),
    ):
        ...


asyncio.run(main())

פשרות: תיקיית העבודה, דגל ה-git-repo, הפלטפורמה, ה-shell הפעיל, גרסת מערכת ההפעלה ונתיבי הזיכרון האוטומטי עדיין מגיעים ל-Claude, אך כחלק מהודעת המשתמש הראשונה ולא מה-system prompt. להוראות בהודעת המשתמש יש משקל מעט נמוך יותר מאשר לאותו טקסט ב-system prompt, ולכן ייתכן ש-Claude יסתמך עליהן פחות בהיסק לגבי התיקייה הנוכחית או נתיבי הזיכרון האוטומטי. הפעל אפשרות זו כאשר שימוש חוזר במטמון בין הפעלות חשוב יותר מהקשר סביבתי סמכותי באופן מקסימלי.

עבור הדגל המקביל במצב CLI לא אינטראקטיבי, ראה --exclude-dynamic-system-prompt-sections.

#פרומפטים מותאמים אישית של המערכת

באפשרותך לספק מחרוזת מותאמת אישית בתור systemPrompt כדי להחליף את ברירת המחדל לחלוטין בהוראות משלך.

TypeScript:

import { query } from "@anthropic-ai/claude-agent-sdk";

const customPrompt = `You are a Python coding specialist.
Follow these guidelines:
- Write clean, well-documented code
- Use type hints for all functions
- Include comprehensive docstrings
- Prefer functional programming patterns when appropriate
- Always explain your code choices`;

const messages = [];

for await (const message of query({
  prompt: "Create a data processing pipeline",
  options: {
    systemPrompt: customPrompt
  }
})) {
  messages.push(message);
  if (message.type === "assistant") {
    console.log(message.message.content);
  }
}

Python:

import asyncio

from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

custom_prompt = """You are a Python coding specialist.
Follow these guidelines:
- Write clean, well-documented code
- Use type hints for all functions
- Include comprehensive docstrings
- Prefer functional programming patterns when appropriate
- Always explain your code choices"""

messages = []


async def main():
    async for message in query(
        prompt="Create a data processing pipeline",
        options=ClaudeAgentOptions(system_prompt=custom_prompt),
    ):
        messages.append(message)
        if isinstance(message, AssistantMessage):
            print(message.content)


asyncio.run(main())

ב-Python, טען פרומפט מותאם אישית גדול מקובץ באמצעות system_prompt={"type": "file", "path": "..."} במקום להעביר אותו כמחרוזת. ה-Python SDK מעביר פרומפט מחרוזתי כארגומנט שורת פקודה יחיד לתהליך הבן של ה-CLI, ולכן פרומפט שחורג ממגבלת אורך הארגומנטים של מערכת ההפעלה נכשל בעת יצירת התהליך לפני ששליחת בקשת API כלשהי מתבצעת. ב-Linux השגיאה היא Argument list too long. ראה SystemPromptFile עבור ספי המערכת בפלטפורמות שונות וההתנהגות ב-Windows.

#שמירת החלק הסטטי של פרומפט מותאם אישית במטמון

ב-TypeScript SDK, באפשרותך להעביר פרומפט מותאם אישית כמערך של מחרוזות במקום מחרוזת אחת, כאשר המציין SYSTEM_PROMPT_DYNAMIC_BOUNDARY מפריד בין החלק הסטטי לשאר. השתמש בזה כאשר הפרומפט שלך משלב הוראות שהן זהות בכל בקשה יחד עם הקשר שמשתנה בכל בקשה, כגון הלקוח או הפנייה (ticket) שהסוכן מטפל בהם. כאשר אתה מעביר את שני החלקים כמחרוזת אחת, שינוי בחלק שמשתנה בכל בקשה משנה את ה-system prompt כולו, כך שגם ההוראות הסטטיות מחמיצות את המטמון. צורה זו אינה זמינה ב-Python SDK, שאפשרות ה-system_prompt שלו מקבלת מחרוזת, preset או קובץ.

הערה: ה-SDK מפצל את הפרומפט רק כאשר הוא קורא ל-API של Claude ישירות או רץ על Claude Platform on AWS. בכל תצורה אחרת, כגון Amazon Bedrock, Agent Platform של Google Cloud, Microsoft Foundry, או שער LLM (LLM gateway), ובכל פעם שאתה מגדיר CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, ה-SDK שולח את כל הפרומפט כבלוק יחיד, בדיוק כמו העברת מחרוזת אחת.

כדי לפצל את הפרומפט, ייבא את SYSTEM_PROMPT_DYNAMIC_BOUNDARY מ-@anthropic-ai/claude-agent-sdk והעבר אותו כאיבר מערך עצמאי בין שני החלקים. ה-SDK שולח את המחרוזות שלפני המציין כבלוק טקסט אחד ואת המחרוזות שאחריו כבלוק שני, לכל אחד נקודת עצירה למטמון (cache breakpoint) משלו. בדוגמה להלן, סוכן תמיכה טוען את הוראות המיון (triage) שלו מקובץ ומקבל פרטים על פנייה אחת בכל בקשה, כך שההוראות נשארות במטמון בזמן שפרטי הפנייה משתנים:

import { readFile } from "node:fs/promises";
import { query, SYSTEM_PROMPT_DYNAMIC_BOUNDARY } from "@anthropic-ai/claude-agent-sdk";

// Identical on every request
const instructions = await readFile("triage-instructions.md", "utf8");
// Different on every request
const ticketContext = "Customer plan: Enterprise. Other open tickets from this customer: 3.";

for await (const message of query({
  prompt: "Triage ticket 4821",
  options: {
    systemPrompt: [instructions, SYSTEM_PROMPT_DYNAMIC_BOUNDARY, ticketContext]
  }
})) {
  // ...
}

הדף מעקב אחר טוקנים במטמון מתאר את השדות cache_creation_input_tokens ו-cache_read_input_tokens בכל הודעת תוצאה.

ה-SDK מרכיב את הבלוקים מהמערך באופן הבא:

  • ה-SDK מחבר את המחרוזות בכל צד של המציין עם שורה ריקה ביניהן ומסיר את המציין עצמו, כך שטקסט המציין אינו מגיע ל-Claude.
  • אם אתה כולל את המציין יותר מפעם אחת, הראשון שבהם משמש לפיצול וה-SDK מסיר את האחרים.
  • אם אתה משמיט את המציין, ה-SDK מחבר את כל המחרוזות לבלוק אחד, בדיוק כמו העברת מחרוזת אחת.

#השוואה בין ארבע הגישות

ארבע שיטות ההתאמה האישית נבדלות במקום שבו הן קיימות, כיצד הן משותפות ומה הן משמרות מתוך ה-preset של claude_code.

מאפייןCLAUDE.mdסגנונות פלט (Output Styles)systemPrompt עם appendsystemPrompt מותאם אישית
התמדה (Persistence)קובץ לכל פרויקטנשמרים כקבציםהפעלה (session) בלבדהפעלה (session) בלבד
שימוש חוזר (Reusability)לכל פרויקטבין פרויקטיםשכפול קודשכפול קוד
ניהול (Management)במערכת הקבציםCLI + קבציםבקודבקוד
כלי ברירת מחדלנשמריםנשמריםנשמריםאובדים (אלא אם נכללים)
בטיחות מובניתנשמרתנשמרתנשמרתיש להוסיף
הקשר סביבתיאוטומטיאוטומטיאוטומטייש לספק
רמת התאמה אישיתתוספות בלבדהחלפה או הרחבה של ברירת המחדלתוספות בלבדשליטה מלאה
בקרת גרסאותעם הפרויקטכןעם הקודעם הקוד
טווח (Scope)ספציפי לפרויקטמשתמש או פרויקטהפעלת קודהפעלת קוד

"עם append" פירושו שימוש ב-systemPrompt: { type: "preset", preset: "claude_code", append: "..." } ב-TypeScript או system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} ב-Python. הקובץ CLAUDE.md אינו משנה את ה-system prompt עצמו: ה-SDK מזריק את תוכנו לתוך השיחה כהקשר של הפרויקט.

#שילוב גישות

הגישות משתלבות זו בזו. סגנון פלט קבוע או CLAUDE.md קובעים את ההתנהגות ארוכת הטווח, ו-append מוסיף שכבה של הוראות ספציפיות להפעלה מבלי לגעת בתצורה השמורה.

#שילוב סגנון פלט עם תוספות ספציפיות להפעלה

הדוגמה להלן מניחה שסגנון פלט של סוקר קוד (Code Reviewer) כבר פעיל. בלוק ה-append מוסיף שכבה של תחומי מיקוד ספציפיים להפעלה על גבי הפרסונה, כך שהפעלת סקירה בודדת יכולה לתעדף OAuth ואחסון טוקנים מבלי לשנות את סגנון הפלט השמור:

TypeScript:

import { query } from "@anthropic-ai/claude-agent-sdk";

// Assuming "Code Reviewer" output style is active (via /config or settings)
// Add session-specific focus areas
const messages = [];

for await (const message of query({
  prompt: "Review this authentication module",
  options: {
    systemPrompt: {
      type: "preset",
      preset: "claude_code",
      append: `
        For this review, prioritize:
        - OAuth 2.0 compliance
        - Token storage security
        - Session management
      `
    }
  }
})) {
  messages.push(message);
}

Python:

import asyncio

from claude_agent_sdk import query, ClaudeAgentOptions

# Assuming "Code Reviewer" output style is active (via /config or settings)
# Add session-specific focus areas
messages = []


async def main():
    async for message in query(
        prompt="Review this authentication module",
        options=ClaudeAgentOptions(
            system_prompt={
                "type": "preset",
                "preset": "claude_code",
                "append": """
                For this review, prioritize:
                - OAuth 2.0 compliance
                - Token storage security
                - Session management
                """,
            }
        ),
    ):
        messages.append(message)


asyncio.run(main())

#ראה גם