تغییرِ system promptها
system promptها رفتار، قابلیتها و سبکِ پاسخِ Claude را تعریف میکنند. برای ابزارهای کدنویسیِ CLI یا IDE-مانند که انسانی کار را تماشا و هدایت میکند، از presetِ claude_code شروع کن. برای ایجنتهایی با سطح (surface)، هویت یا مدلِ مجوزِ متفاوت، پرامپتِ خودت را بنویس.
این صفحه اینها را پوشش میدهد:
- چطور system promptها کار میکنند، با یک جدولِ تصمیم برای انتخاب بینِ preset، preset با
append، و یک پرامپتِ سفارشی - سفارشیکردنِ رفتارِ ایجنت با فایلهای CLAUDE.md، output styleها،
append، یا یک رشتهی سفارشی - مقایسهی چهار رویکرد از نظرِ پایداری، دامنه، و آنچه حفظ میکنند
- ترکیبِ رویکردها برای لایهبندیِ روشهای سفارشیسازی روی هم
چطور 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 با SDK
Section titled “بارگذاریِ CLAUDE.md با SDK”برای بارگذاریِ 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.mdfrom 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.mdCLAUDE.md در سراسرِ همهی نشستهای یک پروژه پایدار است، از طریقِ git با تیمت به اشتراک گذاشته میشود، و بدونِ تغییرِ کد خودکار کشف میشود. اگر یک آرایهی settingSourcesِ خالی پاس بدهی بارگذاری نمیشود.
Output styleها برای پیکربندیهای پایدار
Section titled “Output styleها برای پیکربندیهای پایدار”output styleها پیکربندیهای ذخیرهشدهای هستند که system promptِ Claude را تغییر میدهند. آنها بهصورتِ فایلهای markdown ذخیره میشوند و میتوان آنها را در میانِ نشستها و پروژهها دوباره استفاده کرد.
یک output style بساز
Section titled “یک output style بساز”یک 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 Reviewerdescription: Thorough code review assistantkeep-coding-instructions: true---
You are an expert code reviewer.
For every code submission:1. Check for bugs and security issues2. Evaluate performance3. Suggest improvements4. Rate code quality (1-10)یک output style را فعال کن
Section titled “یک output style را فعال کن”پس از ساخت، 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) را در گزینههایت بگنجانی.
Append به presetِ claude_code
Section titled “Append به presetِ claude_code”میتوانی 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 نگاه کن.
system promptهای سفارشی
Section titled “system promptهای سفارشی”میتوانی یک رشتهی سفارشی بهعنوانِ 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)مقایسهی چهار رویکرد
Section titled “مقایسهی چهار رویکرد”چهار روشِ سفارشیسازی در اینکه کجا زندگی میکنند، چطور به اشتراک گذاشته میشوند، و چه چیزی را از presetِ claude_code حفظ میکنند فرق دارند.
| قابلیت | CLAUDE.md | Output Styleها | systemPrompt با append | systemPromptِ سفارشی |
|---|---|---|---|---|
| پایداری | فایلِ هر-پروژه | ذخیره بهصورتِ فایل | فقط نشست | فقط نشست |
| قابلیتِ دوبارهاستفاده | هر-پروژه | در میانِ پروژهها | تکرارِ کد | تکرارِ کد |
| مدیریت | روی فایلسیستم | 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
- کارهای تخصصیِ تکنشستی
- آزمایشِ استراتژیهای جدیدِ پرامپت
- موقعیتهایی که ابزارهای پیشفرض لازم نیستند
- ساختنِ ایجنتهای تخصصی با رفتارِ یکتا
ترکیبِ رویکردها
Section titled “ترکیبِ رویکردها”این روشها ترکیبپذیرند. یک 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 areasconst 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 areasmessages = []
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)همچنین ببین
Section titled “همچنین ببین”- 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ها و دیگر پیکربندیها کجا ذخیره میشوند