رفتن به محتوا

تغییرِ system promptها

system promptها رفتار، قابلیت‌ها و سبکِ پاسخِ Claude را تعریف می‌کنند. برای ابزارهای کدنویسیِ CLI یا IDE-مانند که انسانی کار را تماشا و هدایت می‌کند، از presetِ claude_code شروع کن. برای ایجنت‌هایی با سطح (surface)، هویت یا مدلِ مجوزِ متفاوت، پرامپتِ خودت را بنویس.

این صفحه این‌ها را پوشش می‌دهد:

چطور system promptها کار می‌کنند

Section titled “چطور system promptها کار می‌کنند”

یک system prompt مجموعه‌دستورالعملِ آغازینی است که شکل می‌دهد چطور Claude در سراسرِ یک مکالمه رفتار کند. Agent SDK سه نقطه‌ی شروع برای آن دارد:

  • پیش‌فرضِ کمینه: وقتی systemPrompt را در TypeScript یا system_prompt را در Python تنظیم نمی‌کنی، SDK از یک پرامپتِ کمینه استفاده می‌کند که tool calling را پوشش می‌دهد اما دستورالعمل‌های کدنویسی، سبکِ پاسخ و کانتکستِ پروژه‌ی Claude Code را حذف می‌کند. این با claude -p فرق دارد، که به‌صورتِ پیش‌فرض از پرامپتِ کاملِ Claude Code استفاده می‌کند. اگر داری از CLI مهاجرت می‌کنی و رفتارِ مطابق می‌خواهی، presetِ claude_code را تنظیم کن.
  • presetِ claude_code: system promptِ کاملی که Claude Code CLI استفاده می‌کند، با دستورالعمل‌های استفاده از ابزار، راهنماهای سبک و قالب‌بندیِ کد، قواعدِ لحن و verbosityِ پاسخ، دستورالعمل‌های امنیت و ایمنی، و کانتکست درباره‌ی دایرکتوریِ کاری و محیط. مقدارِ systemPrompt: { type: "preset", preset: "claude_code" } را در TypeScript یا system_prompt={"type": "preset", "preset": "claude_code"} را در Python تنظیم کن، اختیاراً با append تا دستورالعمل‌های خودت را در انتها اضافه کنی.
  • رشته‌ی سفارشی: پرامپتی که خودت می‌نویسی. SDK فقط آنچه را تو فراهم می‌کنی می‌فرستد.

نقطه‌ی شروع را انتخاب کن

Section titled “نقطه‌ی شروع را انتخاب کن”

عاملِ تعیین‌کننده این است که ایجنتِ تو چقدر به Claude Code شبیه است: یک ایجنتِ کدنویسی که در یک مخزن عمل می‌کند، با انسانی که خروجیِ stream را تماشا و کار را هدایت می‌کند. هر چه محصولت از آن دورتر باشد، بیشتر می‌خواهی پرامپتِ خودت را بنویسی.

تو داری می‌سازیاستفاده کنچه چیزی می‌گیری
یک ابزارِ کدنویسیِ CLI یا IDE-مانند که انسانی تماشا و هدایت می‌کند، و پیش‌فرض‌های Claude Code همان است که می‌خواهیpresetِ claude_codeپرامپتِ کاملِ Claude Code: راهنماییِ ابزار، قواعدِ ایمنی، پاسخ‌های سازگار با ترمینال، آگاهی از قراردادهای مخزن
همان نوع ابزار، به‌علاوه‌ی قواعدِ مخصوصِ محصول مثلِ استانداردهای کدنویسی، قالبِ خروجی، یا کانتکستِ حوزهpresetِ claude_code با appendهمه‌ی موارد بالا، با دستورالعمل‌های تو که بعد از preset اضافه شده. چیزی حذف نمی‌شود، پس این کم‌خطرترین سفارشی‌سازی است
یک ایجنت با سطح، هویت یا مدلِ مجوزِ متفاوت، یا یک ایجنتِ غیرکدنویسیرشته‌ی پرامپتِ سفارشیفقط آنچه می‌نویسی. مسئولیتِ جایگزینیِ راهنماییِ ابزار و دستورالعمل‌های ایمنی که ایجنتت همچنان لازم دارد بر عهده‌ی توست
یک حلقه‌ی tool-callingِ نازک بدونِ persona، که همه‌ی رفتار را در پرامپتِ کاربر تأمین می‌کنیبدونِ گزینه‌ی systemPromptپیش‌فرضِ کمینه: پشتیبانیِ tool-calling و نه چیزِ دیگر

«متفاوت از Claude Code» معمولاً یکی از این‌هاست:

  • سطحِ متفاوت: خروجی توسطِ کسی که آن را تریگر کرده در ترمینال خوانده نمی‌شود. واسط‌های چت، مصرف‌کننده‌های structured-output، و automationِ غیرکدنویسی هرکدام به پرامپتی نیاز دارند که با نحوه‌ی render و بازبینیِ خروجی‌شان جور باشد. automationِ کدنویسیِ بی‌نظارت، مثلِ یک jobِ CI که خطاهای lint را رفع می‌کند یا diffها را بازبینی می‌کند، همچنان با preset جور است چون خودِ کار همان چیزی است که preset برایش نوشته شده.
  • هویتِ متفاوت: ایجنت نباید خودش را به‌عنوانِ Claude Code معرفی کند. یک باتِ پشتیبانی، یک دستیارِ تحلیلِ داده، یا هر ایجنتِ مخصوصِ حوزه به نام، دامنه و personaِ خودش نیاز دارد.
  • مدلِ مجوزِ متفاوت: ایجنت خودمختار و بدونِ تأییدِ انسانی هر گام اجرا می‌شود، یا روی مجموعه‌ی باریکی از منابع عمل می‌کند. پرامپتِ Claude Code فرض می‌گیرد انسانی در حلقه با دسترسی به مجموعه‌ابزارِ کامل حضور دارد.
  • کارهای غیرکدنویسی: بیشترِ پرامپتِ Claude Code راهنماییِ کدنویسی است. برای ایجنت‌های تحقیق، محتوا یا operations، آن راهنمایی با دستورالعمل‌هایی که واقعاً نیاز داری رقابت می‌کند.

جدولِ مقایسه نشان می‌دهد هر روشِ سفارشی‌سازی چه چیزی را حفظ می‌کند.

رفتارِ ایجنت را سفارشی کن

Section titled “رفتارِ ایجنت را سفارشی کن”

output styleها، append و یک رشته‌ی پرامپتِ سفارشی هرکدام مستقیماً system prompt را عوض می‌کنند. CLAUDE.md مسیرِ متفاوتی می‌رود: SDK آن را می‌خواند و محتوایش را به‌عنوانِ کانتکستِ پروژه به مکالمه تزریق می‌کند، نه به system prompt، پس رفتار را در کنارِ هر system promptی که انتخاب کنی شکل می‌دهد. Skillها، hookها و permissionها هم رفتار را بیرونِ system prompt شکل می‌دهند و در صفحه‌های خودشان پوشش داده شده‌اند.

فایل‌های CLAUDE.md برای دستورالعمل‌های سطح‌پروژه

Section titled “فایل‌های CLAUDE.md برای دستورالعمل‌های سطح‌پروژه”

فایل‌های CLAUDE.md به Claude کانتکست و دستورالعمل‌های پایدارِ پروژه می‌دهند. SDK محتوای‌شان را به مکالمه تزریق می‌کند، نه به system prompt، پس با هر پیکربندیِ system promptی کار می‌کنند. برای اینکه چه چیزی در CLAUDE.md بگذاری، کجا قرارش بدهی، و چطور دستورالعمل‌های مؤثر بنویسی، به چطور Claude پروژه‌ات را به یاد می‌سپارد نگاه کن. این بخش آنچه مخصوصِ SDK است را پوشش می‌دهد: نحوه‌ی بارگذاریِ CLAUDE.md.

SDK مقدارِ CLAUDE.md را وقتی می‌خواند که setting sourceِ مطابق فعال باشد: 'project' مقدارِ CLAUDE.md یا .claude/CLAUDE.md را از دایرکتوریِ کاری بارگذاری می‌کند، و 'user' مقدارِ ~/.claude/CLAUDE.md را بارگذاری می‌کند. گزینه‌های پیش‌فرضِ query() هر دو source را فعال می‌کنند، پس CLAUDE.md خودکار بارگذاری می‌شود. اگر settingSources را در TypeScript یا setting_sources را در Python صریحاً تنظیم کنی، sourceهایی که نیاز داری را بگنجان. بارگذاریِ CLAUDE.md توسطِ setting sourceها کنترل می‌شود، نه توسطِ presetِ claude_code.

برای بارگذاریِ CLAUDE.md، settingSources را طوری تنظیم کن که سطحی که CLAUDE.mdِ تو در آن زندگی می‌کند را در بر بگیرد. مثالِ زیر یک CLAUDE.mdِ سطح‌پروژه را در کنارِ presetِ claude_code بارگذاری می‌کند، پس Claude هم پرامپتِ کاملِ ایجنتِ کدنویسی و هم قراردادهای پروژه‌ی تو را دارد:

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
from claude_agent_sdk import query, ClaudeAgentOptions
messages = []
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)
# Now Claude has access to your project guidelines from CLAUDE.md

CLAUDE.md در سراسرِ همه‌ی نشست‌های یک پروژه پایدار است، از طریقِ git با تیمت به اشتراک گذاشته می‌شود، و بدونِ تغییرِ کد خودکار کشف می‌شود. اگر یک آرایه‌ی settingSourcesِ خالی پاس بدهی بارگذاری نمی‌شود.

Output styleها برای پیکربندی‌های پایدار

Section titled “Output styleها برای پیکربندی‌های پایدار”

output styleها پیکربندی‌های ذخیره‌شده‌ای هستند که system promptِ Claude را تغییر می‌دهند. آن‌ها به‌صورتِ فایل‌های markdown ذخیره می‌شوند و می‌توان آن‌ها را در میانِ نشست‌ها و پروژه‌ها دوباره استفاده کرد.

یک output style فایلِ markdownی است با frontmatter برای metadata، و در پی آن محتوای پرامپت. آن را در ~/.claude/output-styles/ برای یک styleِ سطح‌کاربر که در هر پروژه در دسترس است ذخیره کن، یا در .claude/output-styles/ در مخزنت برای یک styleِ سطح‌پروژه که می‌توانی commit و با تیمت به اشتراک بگذاری.

به‌صورتِ پیش‌فرض، یک output styleِ سفارشی دستورالعمل‌های مهندسیِ نرم‌افزارِ presetِ claude_code را با دستورالعمل‌های خودت جایگزین می‌کند. برای نگه‌داشتنِ آن‌ها و لایه‌کردنِ دستورالعمل‌هایت روی آن، مقدارِ keep-coding-instructions: true را در frontmatter تنظیم کن. وقتی ایجنتت همچنان کارِ مهندسیِ نرم‌افزار می‌کند آن‌ها را نگه دار. وقتی کاملاً نقش را جایگزین می‌کنی آن‌ها را بگذار کنار.

مثالِ زیر یک personaِ code-review تعریف می‌کند که دستورالعمل‌های کدنویسی را نگه می‌دارد، چون بازبینیِ کد همچنان از راهنماییِ امنیت و کیفیتِ کدِ 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)

پس از ساخت، output styleها را از این راه‌ها فعال کن:

  • CLI: دستورِ /config را اجرا کن و یک output style انتخاب کن
  • Settings: مقدارِ outputStyle را در .claude/settings.local.json تنظیم کن
  • TypeScript SDK: مقدارِ outputStyle را درونِ شیءِ inlineِ settingsی که به query() پاس داده می‌شود تنظیم کن، یا settings را به فایلِ تنظیماتی اشاره بده که آن را تنظیم می‌کند. outputStyle یک فیلدِ سطح‌بالای Options نیست

Python SDK گزینه‌ای برای انتخابِ برنامه‌نویسیِ output style ندارد. برای استقرارهای فقط-کد که نمی‌توانی در .claude/settings.local.json بنویسی، به‌جای آن از append یا یک رشته‌ی پرامپتِ سفارشی استفاده کن.

نکته برای کاربرانِ SDK: output styleها وقتی بارگذاری می‌شوند که settingSources: ['user'] یا settingSources: ['project'] (در TypeScript) / setting_sources=["user"] یا setting_sources=["project"] (در Python) را در گزینه‌هایت بگنجانی.

می‌توانی presetِ Claude Code را با یک خاصیتِ append به کار ببری تا دستورالعمل‌های سفارشیت را اضافه کنی در حالی که همه‌ی قابلیت‌های توکار حفظ می‌شود.

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);
}
}
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage
messages = []
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)

بهبودِ prompt caching در میانِ کاربران و ماشین‌ها

Section titled “بهبودِ prompt caching در میانِ کاربران و ماشین‌ها”

به‌صورتِ پیش‌فرض، دو نشست که از همان presetِ claude_code و همان متنِ append استفاده می‌کنند، اگر از دایرکتوری‌های کاریِ متفاوت اجرا شوند همچنان نمی‌توانند یک ورودیِ prompt cache را به اشتراک بگذارند. این به این دلیل است که preset کانتکستِ هر-نشست را در system prompt پیش از متنِ appendِ تو جا می‌دهد: دایرکتوریِ کاری، اینکه آیا یک مخزنِ git است، پلتفرم، شلِ فعال، نسخه‌ی OS و مسیرهای auto-memory. هر تفاوتی در آن کانتکست یک system promptِ متفاوت و یک cache miss تولید می‌کند. محتوای CLAUDE.md روی cacheِ system prompt اثر نمی‌گذارد چون SDK آن را به مکالمه تزریق می‌کند، نه به system prompt.

برای اینکه system prompt در میانِ نشست‌ها یکسان شود، مقدارِ excludeDynamicSections: true را در TypeScript یا "exclude_dynamic_sections": True را در Python تنظیم کن. کانتکستِ هر-نشست به اولین پیامِ کاربر منتقل می‌شود و فقط presetِ ایستا و متنِ appendِ تو را در system prompt می‌گذارد، تا پیکربندی‌های یکسان یک ورودیِ cache را در میانِ کاربران و ماشین‌ها به اشتراک بگذارند.

مثالِ زیر یک بلوکِ appendِ مشترک را با excludeDynamicSections جفت می‌کند تا یک ناوگان از ایجنت‌ها که از دایرکتوری‌های متفاوت اجرا می‌شوند بتوانند همان system promptِ کش‌شده را دوباره استفاده کنند:

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
}
}
})) {
// ...
}
from claude_agent_sdk import query, ClaudeAgentOptions
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,
},
),
):
...

Tradeoffها: دایرکتوریِ کاری، پرچمِ git-repo، پلتفرم، شلِ فعال، نسخه‌ی OS و مسیرهای auto-memory همچنان به Claude می‌رسند، اما به‌عنوانِ بخشی از اولین پیامِ کاربر به‌جای system prompt. دستورالعمل‌ها در پیامِ کاربر اندکی وزنِ کمتری نسبت به همان متن در system prompt دارند، پس Claude ممکن است هنگامِ استدلال درباره‌ی دایرکتوریِ کنونی یا مسیرهای auto-memory کمتر به آن‌ها تکیه کند. این گزینه را وقتی فعال کن که دوباره‌استفاده از cache در میانِ نشست‌ها بیش از کانتکستِ محیطیِ بیشینه‌مرجع اهمیت دارد.

برای پرچمِ معادل در حالتِ غیرتعاملیِ CLI، به --exclude-dynamic-system-prompt-sections نگاه کن.

می‌توانی یک رشته‌ی سفارشی به‌عنوانِ systemPrompt فراهم کنی تا پیش‌فرض را به‌طورِ کامل با دستورالعمل‌های خودت جایگزین کنی.

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);
}
}
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 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)

چهار روشِ سفارشی‌سازی در اینکه کجا زندگی می‌کنند، چطور به اشتراک گذاشته می‌شوند، و چه چیزی را از presetِ claude_code حفظ می‌کنند فرق دارند.

قابلیتCLAUDE.mdOutput StyleهاsystemPrompt با appendsystemPromptِ سفارشی
پایداریفایلِ هر-پروژهذخیره به‌صورتِ فایلفقط نشستفقط نشست
قابلیتِ دوباره‌استفادههر-پروژهدر میانِ پروژه‌هاتکرارِ کدتکرارِ کد
مدیریتروی فایل‌سیستمCLI + فایل‌هادر کددر کد
ابزارهای پیش‌فرضحفظ‌شدهحفظ‌شدهحفظ‌شدهاز دست رفته (مگر گنجانده شود)
ایمنیِ توکارنگه‌داشته‌شدهنگه‌داشته‌شدهنگه‌داشته‌شدهباید اضافه شود
کانتکستِ محیطیخودکارخودکارخودکارباید فراهم شود
سطحِ سفارشی‌سازیفقط افزودنیجایگزینی یا گسترشِ پیش‌فرضفقط افزودنیکنترلِ کامل
کنترلِ نسخهبا پروژهبلهبا کدبا کد
دامنهمخصوصِ پروژهکاربر یا پروژهنشستِ کدنشستِ کد

«با append» یعنی استفاده از systemPrompt: { type: "preset", preset: "claude_code", append: "..." } در TypeScript یا system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} در Python. CLAUDE.md خودِ system prompt را عوض نمی‌کند: SDK محتوایش را به‌عنوانِ کانتکستِ پروژه به مکالمه تزریق می‌کند.

نمونه‌بارها و بهترین شیوه‌ها

Section titled “نمونه‌بارها و بهترین شیوه‌ها”

کِی از CLAUDE.md استفاده کنیم

Section titled “کِی از CLAUDE.md استفاده کنیم”

از CLAUDE.md برای دستورالعمل‌هایی استفاده کن که باید روی هر نشست در یک پروژه اعمال شوند، صرفِ‌نظر از اینکه نشست از کدام system prompt استفاده می‌کند: استانداردهای کدنویسی، دستورهای رایج، کانتکستِ معماری و قراردادهای تیم. CLAUDE.md به مخزنت commit می‌شود، پس با کدی که توصیف می‌کند هم‌گام می‌ماند. برای راهنماییِ کامل به کِی به CLAUDE.md اضافه کنیم نگاه کن.

فایل‌های CLAUDE.md وقتی بارگذاری می‌شوند که setting sourceِ project فعال باشد، که برای گزینه‌های پیش‌فرضِ query() همین‌طور است. اگر settingSources را در TypeScript یا setting_sources را در Python صریحاً تنظیم کنی، 'project' را بگنجان تا بارگذاریِ CLAUDE.mdِ سطح‌پروژه ادامه یابد.

کِی از output styleها استفاده کنیم

Section titled “کِی از output styleها استفاده کنیم”

output styleها برای personaهایی هستند که می‌خواهی در میانِ CLI و SDK بدونِ تغییرِ کدِ برنامه دوباره استفاده کنی. چون به‌صورتِ فایل در .claude/output-styles زندگی می‌کنند، همان persona از /config در CLI و از هر نشستِ SDKی که setting sourceِ مطابق را بارگذاری می‌کند در دسترس است.

بهترین برای:

  • تغییراتِ رفتارِ پایدار در میانِ نشست‌ها
  • پیکربندی‌های تیم-مشترک
  • دستیارهای تخصصی مثلِ یک code reviewer، data scientist، یا دستیارِ DevOps
  • تغییراتِ پیچیده‌ی پرامپت که به versioning نیاز دارند

مثال‌ها:

  • ساختنِ یک دستیارِ اختصاصیِ بهینه‌سازیِ SQL
  • ساختنِ یک code reviewerِ امنیت‌محور
  • توسعه‌ی یک دستیارِ آموزشی با pedagogyِ مشخص

کِی از systemPrompt با append استفاده کنیم

Section titled “کِی از systemPrompt با append استفاده کنیم”

از append وقتی استفاده کن که presetِ claude_code از قبل برای محصولت جور است و فقط نیاز داری دستورالعمل‌های اضافی را لایه کنی. راهنماییِ ابزار، قواعدِ ایمنی و قراردادهای کدنویسیِ preset را بدونِ پیاده‌سازیِ دوباره نگه می‌داری.

بهترین برای:

  • افزودنِ استانداردها یا ترجیحاتِ مشخصِ کدنویسی
  • سفارشی‌کردنِ قالب‌بندیِ خروجی
  • افزودنِ دانشِ مخصوصِ حوزه
  • تغییرِ verbosityِ پاسخ
  • تقویتِ رفتارِ پیش‌فرضِ Claude Code بدونِ از دست‌دادنِ دستورالعمل‌های ابزار

کِی از systemPromptِ سفارشی استفاده کنیم

Section titled “کِی از systemPromptِ سفارشی استفاده کنیم”

از یک پرامپتِ سفارشی وقتی استفاده کن که سطح، هویت یا مدلِ مجوزِ ایجنتت از Claude Code فرق دارد، همان‌طور که در نقطه‌ی شروع را انتخاب کن توصیف شد. مجموعه‌دستورالعملِ کامل، شاملِ هر راهنماییِ ابزار و قواعدِ ایمنی که ایجنتت نیاز دارد، را تو تعریف می‌کنی.

بهترین برای:

  • کنترلِ کامل روی رفتارِ Claude
  • کارهای تخصصیِ تک‌نشستی
  • آزمایشِ استراتژی‌های جدیدِ پرامپت
  • موقعیت‌هایی که ابزارهای پیش‌فرض لازم نیستند
  • ساختنِ ایجنت‌های تخصصی با رفتارِ یکتا

این روش‌ها ترکیب‌پذیرند. یک output style یا CLAUDE.mdِ پایدار رفتارِ بلندمدت را تنظیم می‌کند، و append دستورالعمل‌های مخصوصِ نشست را روی آن لایه می‌کند بدونِ دست‌زدن به پیکربندیِ ذخیره‌شده.

ترکیبِ یک output style با افزودنی‌های مخصوصِ نشست

Section titled “ترکیبِ یک output style با افزودنی‌های مخصوصِ نشست”

مثالِ زیر فرض می‌گیرد یک output styleِ Code Reviewer از قبل فعال است. بلوکِ append حوزه‌های تمرکزِ مخصوصِ نشست را روی persona لایه می‌کند، پس یک نشستِ بازبینیِ واحد می‌تواند OAuth و ذخیره‌سازیِ توکن را در اولویت بگذارد بدونِ تغییرِ output styleِ ذخیره‌شده:

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);
}
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 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)
  • Output styles: ساختن، مدیریت و اشتراکِ output styleها برای CLI، شاملِ قالبِ فایل و مکان‌های ذخیره‌سازی
  • چطور Claude پروژه‌ات را به یاد می‌سپارد: چه چیزی در CLAUDE.md بگذاری، کجا قرارش بدهی، و چطور دستورالعمل‌های مؤثرِ پروژه بنویسی
  • مرجعِ TypeScript SDK: typeِ کاملِ Options، شاملِ systemPrompt، settingSources و settings
  • مرجعِ Python SDK: typeِ کاملِ ClaudeAgentOptions، شاملِ system_prompt و setting_sources
  • Settings: مرجعِ settings.json، شاملِ اینکه output styleها و دیگر پیکربندی‌ها کجا ذخیره می‌شوند