תיעוד 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.mdPython:
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 עם append | systemPrompt מותאם אישית |
|---|---|---|---|---|
| התמדה (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())#ראה גם
- סגנונות פלט (Output styles): יצירה, ניהול ושיתוף של סגנונות פלט עבור ה-CLI, כולל פורמט הקובץ ומיקומי האחסון
- כיצד Claude זוכר את הפרויקט שלך: מה לשים ב-
CLAUDE.md, היכן למקם אותו וכיצד לכתוב הוראות פרויקט יעילות - מדריך ה-TypeScript SDK: טיפוס ה-
Optionsהמלא, כוללsystemPrompt,settingSourcesו-settings - מדריך ה-Python SDK: טיפוס ה-
ClaudeAgentOptionsהמלא, כוללsystem_promptו-setting_sources - הגדרות (Settings): מדריך ה-
settings.json, כולל היכן מאוחסנים סגנונות פלט ותצורות אחרות