ã·ã¹ãã ããã³ããã®å€æŽ
claude_codeããªã»ãããšã«ã¹ã¿ã ã·ã¹ãã ããã³ããã®éã§éžæããCLAUDE.mdãåºåã¹ã¿ã€ã«ãappendããŸãã¯å®å šã«ã«ã¹ã¿ã ãªããã³ããã§åäœãã«ã¹ã¿ãã€ãºããŸãã
ã·ã¹ãã ããã³ãã㯠Claude ã®åäœãæ©èœãå¿çã¹ã¿ã€ã«ãå®çŸ©ããŸãã人éãäœæ¥ãç£èŠããŠæèµãã CLI ãŸã㯠IDE ã®ãããªã³ãŒãã£ã³ã°ããŒã«åãã« claude_code ããªã»ããããå§ããŸããç°ãªããµãŒãã§ã¹ãã¢ã€ãã³ãã£ãã£ããŸãã¯ããŒããã·ã§ã³ã¢ãã«ãæã€ãšãŒãžã§ã³ãåãã«ç¬èªã®ããã³ãããäœæããŸãã
ãã®ããŒãžã§ã¯ä»¥äžãã«ããŒããŠããŸãïŒ
- ã·ã¹ãã ããã³ããã®ä»çµã¿ãããªã»ãããããªã»ãããš
appendã®çµã¿åãããã«ã¹ã¿ã ããã³ããã®éã§éžæããããã®æ±ºå®ããŒãã«ä»ã - ãšãŒãžã§ã³ãã®åäœãã«ã¹ã¿ãã€ãºããæ¹æ³ãCLAUDE.md ãã¡ã€ã«ãåºåã¹ã¿ã€ã«ã
appendããŸãã¯ã«ã¹ã¿ã æååãäœ¿çš - 4 ã€ã®ã¢ãããŒããæ¯èŒããæ¹æ³ãæ°žç¶æ§ãã¹ã³ãŒããããã³ä¿æãããå 容ã«ããæ¯èŒ
- ã¢ãããŒããçµã¿åãããŠã«ã¹ã¿ãã€ãºæ¹æ³ãéããæ¹æ³
ã·ã¹ãã ããã³ããã®ä»çµã¿
ã·ã¹ãã ããã³ããã¯ãäŒè©±å šäœãéã㊠Claude ã®åäœæ¹æ³ã圢äœãåæåœä»€ã»ããã§ããAgent SDK ã«ã¯ãããã«å¯Ÿãã 3 ã€ã®éå§ç¹ããããŸãïŒ
- æå°éã®ããã©ã«ãïŒTypeScript ã§
systemPromptãèšå®ããªãããŸã㯠Python ã§system_promptãèšå®ããªãå ŽåãSDK ã¯ããŒã«åŒã³åºããã«ããŒããæå°éã®ããã³ããã䜿çšããŸãããClaude Code ã®ã³ãŒãã£ã³ã°ã¬ã€ãã©ã€ã³ãå¿çã¹ã¿ã€ã«ããããžã§ã¯ãã³ã³ããã¹ãã¯çç¥ãããŠããŸããããã¯ãããã©ã«ãã§å®å šãª Claude Code ããã³ããã䜿çšããclaude -pãšã¯ç°ãªããŸããCLI ããç§»è¡ããŠããŠãäžèŽããåäœãæãå Žåã¯ãclaude_codeããªã»ãããèšå®ããŠãã ããã claude_codeããªã»ããïŒClaude Code CLI ã䜿çšããå®å šãªã·ã¹ãã ããã³ãããããŒã«äœ¿çšåœä»€ãã³ãŒãã¹ã¿ã€ã«ãšãã©ãŒãããã¬ã€ãã©ã€ã³ãå¿çããŒã³ãšè©³çŽ°åºŠã«ãŒã«ãã»ãã¥ãªãã£ãšå®å šæ§ã®åœä»€ãããã³äœæ¥ãã£ã¬ã¯ããªãšç°å¢ã«é¢ããã³ã³ããã¹ããå«ãŸããŠããŸããTypeScript ã§systemPrompt: { type: "preset", preset: "claude_code" }ãèšå®ããããPython ã§system_prompt={"type": "preset", "preset": "claude_code"}ãèšå®ããŠãã ããããªãã·ã§ã³ã§appendã䜿çšããŠãæåŸã«ç¬èªã®åœä»€ã远å ã§ããŸãã- ã«ã¹ã¿ã æååïŒèªåã§äœæããããã³ãããSDK ã¯æäŸãããã®ã ããéä¿¡ããŸãã
éå§ç¹ã決å®ãã
決å®èŠå ã¯ããšãŒãžã§ã³ãã Claude Code ã«ã©ã®çšåºŠäŒŒãŠãããã§ãïŒãªããžããªã§åäœããã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã人éãã¹ããªãŒãã³ã°åºåãç£èŠããŠäœæ¥ãæå°ããŸãã補åãããããé ãã»ã©ãç¬èªã®ããã³ãããäœæããå¿ èŠããããŸãã
| æ§ç¯ããŠãããã® | 䜿çšãããã® | åŸããããã® |
|---|---|---|
| 人éãç£èŠããŠæå°ãã CLI ãŸã㯠IDE ã®ãããªã³ãŒãã£ã³ã°ããŒã«ãClaude Code ã®ããã©ã«ããå¿ èŠãªãã® | claude_code ããªã»ãã |
å®å šãª Claude Code ããã³ããïŒããŒã«ã¬ã€ãã³ã¹ãå®å šã«ãŒã«ãã¿ãŒããã«ãã¬ã³ããªãŒãªå¿çããªããžããªèŠçŽèªè |
| åãçš®é¡ã®ããŒã«ããã©ã¹ãã³ãŒãã£ã³ã°æšæºãåºå圢åŒããŸãã¯ãã¡ã€ã³ã³ã³ããã¹ããªã©ã®è£œååºæã®ã«ãŒã« | claude_code ããªã»ããïŒappend ä»ãïŒ |
äžèšã®ãã¹ãŠãããªã»ããã®åŸã«åœä»€ã远å ãããŸããäœãåé€ãããªããããããã¯æããªã¹ã¯ãäœãã«ã¹ã¿ãã€ãºã§ã |
| ç°ãªããµãŒãã§ã¹ãã¢ã€ãã³ãã£ãã£ããŸãã¯ã¢ã¯ã»ã¹èš±å¯ã¢ãã«ãæã€ãšãŒãžã§ã³ãããŸãã¯ã³ãŒãã£ã³ã°ä»¥å€ã®ãšãŒãžã§ã³ã | ã«ã¹ã¿ã ããã³ããæåå | äœæãããã®ã®ã¿ããšãŒãžã§ã³ããå¿ èŠãšããããŒã«ã¬ã€ãã³ã¹ãšå®å šåœä»€ã眮ãæãã責任ããããŸã |
| ããŒã«åŒã³åºãã«ãŒããèãããšãŒãžã§ã³ããã«ãœãããªãããŠãŒã¶ãŒããã³ããã§ãã¹ãŠã®åäœãæäŸãã | systemPrompt ãªãã·ã§ã³ãªã |
æå°éã®ããã©ã«ãïŒããŒã«åŒã³åºããµããŒãã®ã¿ |
ãClaude Code ãšç°ãªããã¯éåžžã以äžã®ãããããæå³ããŸãïŒ
- ç°ãªããµãŒãã§ã¹ïŒåºåã¯ããããããªã¬ãŒãã人ã«ãã£ãŠã¿ãŒããã«ã§èªãŸããŸããããã£ãã UIãæ§é ååºåã³ã³ã·ã¥ãŒããŒãããã³ã³ãŒãã£ã³ã°ä»¥å€ã®èªååã¯ããããããåºåãã©ã®ããã«ã¬ã³ããªã³ã°ããã³ã¬ãã¥ãŒããããã«äžèŽããããã³ãããå¿ èŠã§ããCI ãžã§ãããªã³ããšã©ãŒãä¿®æ£ããããdiff ãã¬ãã¥ãŒããããããããªç¡äººã³ãŒãã£ã³ã°èªååã¯ãäœæ¥èªäœãããªã»ãããæžãããŠãããã®ã§ãããããããªã»ããã«é©åããŸãã
- ç°ãªãã¢ã€ãã³ãã£ãã£ïŒãšãŒãžã§ã³ã㯠Claude Code ãšããŠèªåèªèº«ãæç€ºãã¹ãã§ã¯ãããŸããããµããŒãããããããŒã¿åæã¢ã·ã¹ã¿ã³ãããŸãã¯ãã¡ã€ã³åºæã®ãšãŒãžã§ã³ãã¯ãç¬èªã®ååãã¹ã³ãŒããããã³ãã«ãœããå¿ èŠã§ãã
- ç°ãªãã¢ã¯ã»ã¹èš±å¯ã¢ãã«ïŒãšãŒãžã§ã³ãã¯äººéãåã¹ããããæ¿èªããããšãªãèªåŸçã«å®è¡ããããããªãœãŒã¹ã®éå®ãããã»ããã§åäœããŸããClaude Code ã®ããã³ããã¯ã人éãã«ãŒãå ã«ããŠãå®å šãªããŒã«ã»ããã«ã¢ã¯ã»ã¹ã§ããããšãåæãšããŠããŸãã
- ã³ãŒãã£ã³ã°ä»¥å€ã®ã¿ã¹ã¯ïŒClaude Code ã®ããã³ããã®ã»ãšãã©ã¯ã³ãŒãã£ã³ã°ã¬ã€ãã³ã¹ã§ããç ç©¶ãã³ã³ãã³ãããŸãã¯éçšãšãŒãžã§ã³ãã®å Žåããã®ã¬ã€ãã³ã¹ã¯å®éã«å¿ èŠãªåœä»€ãšç«¶åããŸãã
æ¯èŒè¡šã¯ãåã«ã¹ã¿ãã€ãºæ¹æ³ãäœãä¿æãããã瀺ããŠããŸãã
ãšãŒãžã§ã³ãã®åäœãã«ã¹ã¿ãã€ãºãã
åºåã¹ã¿ã€ã«ãappendãããã³ã«ã¹ã¿ã ããã³ããæååã¯ãããããã·ã¹ãã ããã³ãããçŽæ¥å€æŽããŸããCLAUDE.md ã¯ç°ãªããã¹ãåããŸããSDK ããããèªã¿èŸŒã¿ãã·ã¹ãã ããã³ããã§ã¯ãªããããžã§ã¯ãã³ã³ããã¹ããšããŠäŒè©±ã«å
å®¹ãæ³šå
¥ãããããéžæããã·ã¹ãã ããã³ããã«é¢ä¿ãªãåäœã圢äœããŸããSkillsãhooksãããã³permissionsãã·ã¹ãã ããã³ããå€ã§åäœã圢äœããç¬èªã®ããŒãžã§èª¬æãããŠããŸãã
ãããžã§ã¯ãã¬ãã«ã®åœä»€çšã® CLAUDE.md ãã¡ã€ã«
CLAUDE.md ãã¡ã€ã«ã¯ Claude ã«æ°žç¶çãªãããžã§ã¯ãã³ã³ããã¹ããšåœä»€ãæäŸããŸããSDK ã¯äŒè©±ã«å å®¹ãæ³šå ¥ããã·ã¹ãã ããã³ããã«ã¯æ³šå ¥ããªããããä»»æã®ã·ã¹ãã ããã³ããèšå®ã§æ©èœããŸããCLAUDE.md ã«äœãå ¥ããããã©ãã«é 眮ãããã广çãªåœä»€ãæžãæ¹æ³ã«ã€ããŠã¯ãClaude ããããžã§ã¯ããèšæ¶ããæ¹æ³ãåç §ããŠãã ããããã®ã»ã¯ã·ã§ã³ã§ã¯ SDK ã«åºæã®ãã®ãã€ãŸã CLAUDE.md ãã©ã®ããã«èªã¿èŸŒãŸãããã«ã€ããŠèª¬æããŸãã
SDK ã¯ã察å¿ããèšå®ãœãŒã¹ãæå¹ãªå Žåã« CLAUDE.md ãèªã¿èŸŒã¿ãŸãã'project' ã¯äœæ¥ãã£ã¬ã¯ããªãã CLAUDE.md ãŸã㯠.claude/CLAUDE.md ãèªã¿èŸŒã¿ã'user' 㯠~/.claude/CLAUDE.md ãèªã¿èŸŒã¿ãŸããããã©ã«ãã® query() ãªãã·ã§ã³ã¯äž¡æ¹ã®ãœãŒã¹ãæå¹ã«ãããããCLAUDE.md ã¯èªåçã«èªã¿èŸŒãŸããŸããTypeScript ã§ settingSources ãŸã㯠Python ã§ setting_sources ãæç€ºçã«èšå®ããå Žåã¯ãå¿
èŠãªãœãŒã¹ãå«ããŠãã ãããCLAUDE.md ã®èªã¿èŸŒã¿ã¯èšå®ãœãŒã¹ã«ãã£ãŠå¶åŸ¡ãããclaude_code ããªã»ããã«ãã£ãŠã¯å¶åŸ¡ãããŸããã
SDK ã§ CLAUDE.md ãèªã¿èŸŒã
CLAUDE.md ãèªã¿èŸŒãã«ã¯ãsettingSources ã CLAUDE.md ãååšããã¬ãã«ãå«ãããã«èšå®ããŸãã以äžã®äŸã¯ããããžã§ã¯ãã¬ãã«ã® CLAUDE.md ã 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 é
åãæž¡ãå Žåã¯èªã¿èŸŒãŸããŸããã
æ°žç¶çãªèšå®ã®ããã®åºåã¹ã¿ã€ã«
åºåã¹ã¿ã€ã«ã¯ Claude ã®ã·ã¹ãã ããã³ããã倿Žããä¿åãããèšå®ã§ããããŒã¯ããŠã³ãã¡ã€ã«ãšããŠä¿åãããã»ãã·ã§ã³ãšãããžã§ã¯ãå šäœã§åå©çšã§ããŸãã
åºåã¹ã¿ã€ã«ãäœæãã
åºåã¹ã¿ã€ã«ã¯ãfrontmatter ã« name ãš description ãæã€ããŒã¯ããŠã³ãã¡ã€ã«ã§ããã®åŸã«ããã³ããã³ã³ãã³ããç¶ããŸãããã¹ãŠã®ãããžã§ã¯ãã§å©çšå¯èœãªãŠãŒã¶ãŒã¬ãã«ã®ã¹ã¿ã€ã«ã®å Žå㯠~/.claude/output-styles/ ã«ä¿åããããããŒã ãšå
±æããŠã³ãããã§ãããããžã§ã¯ãã¬ãã«ã®ã¹ã¿ã€ã«ã®å Žåã¯ãªããžããªã® .claude/output-styles/ ã«ä¿åããŸãã
以äžã®äŸã¯ã³ãŒãã¬ãã¥ãŒæ
åœè
ã®ãã«ãœããå®çŸ©ããŠããŸãããããžã§ã¯ãå
šäœã§å©çšå¯èœã«ããããã« ~/.claude/output-styles/code-reviewer.md ãšããŠä¿åããŸãã
---
name: Code Reviewer
description: Thorough code review assistant
---
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ãå®è¡ããåºåã¹ã¿ã€ã«ãéžæ - èšå®ïŒ
.claude/settings.local.jsonã§outputStyleãèšå® - TypeScript SDKïŒ
options.outputStyleãã¹ã¿ã€ã«ã®ååã«èšå®
Python SDK ã«ã¯ãåºåã¹ã¿ã€ã«ãããã°ã©ã ã§éžæãããªãã·ã§ã³ã¯ãããŸããã.claude/settings.local.json ã«æžã蟌ããªãã³ãŒãã®ã¿ã®ãããã€ã¡ã³ãã®å Žåã¯ãappend ãŸãã¯ã«ã¹ã¿ã ããã³ããæååã代ããã«äœ¿çšããŠãã ããã
SDK ãŠãŒã¶ãŒãžã®æ³šèšïŒ åºåã¹ã¿ã€ã«ã¯ããªãã·ã§ã³ã« settingSources: ['user'] ãŸã㯠settingSources: ['project']ïŒTypeScriptïŒ/ setting_sources=["user"] ãŸã㯠setting_sources=["project"]ïŒPythonïŒãå«ããå Žåã«èªã¿èŸŒãŸããŸãã
claude_code ããªã»ããã«è¿œå ãã
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)
ãŠãŒã¶ãŒãšãã·ã³å šäœã§ããã³ãããã£ãã·ã³ã°ãæ¹åãã
ããã©ã«ãã§ã¯ãåã claude_code ããªã»ãããš append ããã¹ãã䜿çšãã 2 ã€ã®ã»ãã·ã§ã³ã§ããç°ãªãäœæ¥ãã£ã¬ã¯ããªããå®è¡ãããå Žåãããã³ãããã£ãã·ã¥ãšã³ããªãå
±æããããšã¯ã§ããŸãããããã¯ãããªã»ããã append ããã¹ãã®åã®ã·ã¹ãã ããã³ããã«ã»ãã·ã§ã³ããšã®ã³ã³ããã¹ããåã蟌ãããã§ããäœæ¥ãã£ã¬ã¯ããªãgit ãªããžããªã§ãããã©ããããã©ãããã©ãŒã ãã¢ã¯ãã£ããªã·ã§ã«ãOS ããŒãžã§ã³ãããã³èªåã¡ã¢ãªãã¹ã§ãããã®ã³ã³ããã¹ãã«éãããããšãç°ãªãã·ã¹ãã ããã³ãããçæããããã£ãã·ã¥ãã¹ãçºçããŸããCLAUDE.md ã³ã³ãã³ãã¯ã·ã¹ãã ããã³ããã«åœ±é¿ããŸãããSDK ããããäŒè©±ã«æ³šå
¥ããã·ã¹ãã ããã³ããã«ã¯æ³šå
¥ããªãããã§ãã
ã»ãã·ã§ã³å
šäœã§ã·ã¹ãã ããã³ãããåãã«ããã«ã¯ãTypeScript ã§ excludeDynamicSections: true ãèšå®ããããPython ã§ "exclude_dynamic_sections": True ãèšå®ããŠãã ãããã»ãã·ã§ã³ããšã®ã³ã³ããã¹ãã¯æåã®ãŠãŒã¶ãŒã¡ãã»ãŒãžã«ç§»åããã·ã¹ãã ããã³ããã«ã¯éçããªã»ãããš append ããã¹ãã®ã¿ãæ®ããããåãèšå®ããŠãŒã¶ãŒãšãã·ã³å
šäœã§ãã£ãã·ã¥ãšã³ããªãå
±æã§ããŸãã
excludeDynamicSections ã«ã¯ @anthropic-ai/claude-agent-sdk v0.2.98 以éããŸã㯠Python ã®å Žå㯠claude-agent-sdk v0.1.58 以éãå¿
èŠã§ããããªã»ãããªããžã§ã¯ã圢åŒã«ã®ã¿é©çšãããsystemPrompt ãæååã®å Žåã¯å¹æããããŸããã
次ã®äŸã¯ãå
±æ append ãããã¯ã excludeDynamicSections ãšçµã¿åãããŠãããããç°ãªããã£ã¬ã¯ããªããå®è¡ããããšãŒãžã§ã³ãã®ããªãŒããåããã£ãã·ã¥ãããã·ã¹ãã ããã³ãããåå©çšã§ããŸãã
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,
},
),
):
...
ãã¬ãŒããªãïŒ äœæ¥ãã£ã¬ã¯ããªãgit ãªããžããªãã©ã°ããã©ãããã©ãŒã ãã¢ã¯ãã£ããªã·ã§ã«ãOS ããŒãžã§ã³ãããã³èªåã¡ã¢ãªãã¹ã¯äŸç¶ãšã㊠Claude ã«å°éããŸãããã·ã¹ãã ããã³ããã§ã¯ãªãæåã®ãŠãŒã¶ãŒã¡ãã»ãŒãžã®äžéšãšããŠå°éããŸãããŠãŒã¶ãŒã¡ãã»ãŒãžã®åœä»€ã¯ãã·ã¹ãã ããã³ããã®åãããã¹ãããããããã«äœãéã¿ãæã€ãããClaude ã¯çŸåšã®ãã£ã¬ã¯ããªãŸãã¯èªåã¡ã¢ãªãã¹ã«ã€ããŠæšè«ããéã«ãããã«äŸåããå¯èœæ§ãäœããªããŸããã¯ãã¹ã»ãã·ã§ã³ãã£ãã·ã¥ã®åå©çšãæå€§éã«æš©åšããã³ã³ããã¹ããããéèŠãªå Žåã¯ããã®ãªãã·ã§ã³ãæå¹ã«ããŠãã ããã
é察話å 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)
4 ã€ã®ã¢ãããŒããã¹ãŠã®æ¯èŒ
4 ã€ã®ã«ã¹ã¿ãã€ãºæ¹æ³ã¯ãã©ãã«ååšããããã©ã®ããã«å
±æãããããããã³ claude_code ããªã»ããããäœãä¿æããããç°ãªããŸãã
| æ©èœ | CLAUDE.md | åºåã¹ã¿ã€ã« | systemPrompt ã远å |
ã«ã¹ã¿ã systemPrompt |
|---|---|---|---|---|
| æ°žç¶æ§ | ãããžã§ã¯ãããšã®ãã¡ã€ã« | ãã¡ã€ã«ãšããŠä¿å | ã»ãã·ã§ã³ã®ã¿ | ã»ãã·ã§ã³ã®ã¿ |
| åå©çšæ§ | ãããžã§ã¯ãããš | ãããžã§ã¯ãå šäœ | ã³ãŒãéè€ | ã³ãŒãéè€ |
| 管ç | ãã¡ã€ã«ã·ã¹ãã äž | CLI + ãã¡ã€ã« | ã³ãŒãå | ã³ãŒãå |
| ããã©ã«ãããŒã« | ä¿æ | ä¿æ | ä¿æ | 倱ãããïŒå«ãŸããªãéãïŒ |
| çµã¿èŸŒã¿ã»ãã¥ãªã㣠| ç¶æ | ç¶æ | ç¶æ | 远å ããå¿ èŠããã |
| ç°å¢ã³ã³ããã¹ã | èªå | èªå | èªå | æäŸããå¿ èŠããã |
| ã«ã¹ã¿ãã€ãºã¬ãã« | 远å ã®ã¿ | ããã©ã«ãã眮ãæã | 远å ã®ã¿ | å®å šãªå¶åŸ¡ |
| ããŒãžã§ã³ç®¡ç | ãããžã§ã¯ããšå ±ã« | ã¯ã | ã³ãŒããšå ±ã« | ã³ãŒããšå ±ã« |
| ã¹ã³ãŒã | ãããžã§ã¯ãåºæ | ãŠãŒã¶ãŒãŸãã¯ãããžã§ã¯ã | ã³ãŒãã»ãã·ã§ã³ | ã³ãŒãã»ãã·ã§ã³ |
ã远å ã䜿çšã㯠TypeScript ã§ systemPrompt: { type: "preset", preset: "claude_code", append: "..." } ã䜿çšããããPython ã§ system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} ã䜿çšããããšãæå³ããŸããCLAUDE.md ã¯ã·ã¹ãã ããã³ããèªäœã倿ŽããŸãããSDK ã¯ãã®ã³ã³ãã³ãããããžã§ã¯ãã³ã³ããã¹ããšããŠäŒè©±ã«æ³šå
¥ããŸãã
ãŠãŒã¹ã±ãŒã¹ãšãã¹ããã©ã¯ãã£ã¹
CLAUDE.md ã䜿çšããå Žå
CLAUDE.md ã¯ãã»ãã·ã§ã³ã§äœ¿çšãããã·ã¹ãã ããã³ããã«é¢ä¿ãªãããããžã§ã¯ãå ã®ãã¹ãŠã®ã»ãã·ã§ã³ã«é©çšãã¹ãåœä»€ã«äœ¿çšããŸããã³ãŒãã£ã³ã°æšæºãäžè¬çãªã³ãã³ããã¢ãŒããã¯ãã£ã³ã³ããã¹ããããŒã èŠçŽãªã©ã§ããCLAUDE.md ã¯ãªããžããªã«ã³ãããããããããããã説æããã³ãŒããšåæãä¿ã¡ãŸãã詳现ãªã¬ã€ãã³ã¹ã«ã€ããŠã¯ãCLAUDE.md ã«è¿œå ããå Žåãåç §ããŠãã ããã
CLAUDE.md ãã¡ã€ã«ã¯ project èšå®ãœãŒã¹ãæå¹ãªå Žåã«èªã¿èŸŒãŸããŸããããã¯ããã©ã«ãã® query() ãªãã·ã§ã³ã®å Žåã§ããTypeScript ã§ settingSources ãŸã㯠Python ã§ setting_sources ãæç€ºçã«èšå®ããå Žåã¯ããããžã§ã¯ãã¬ãã«ã® CLAUDE.md ã®èªã¿èŸŒã¿ãç¶ããããã« 'project' ãå«ããŠãã ããã
åºåã¹ã¿ã€ã«ã䜿çšããå Žå
åºåã¹ã¿ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã倿Žããããšãªã CLI ãš SDK å
šäœã§åå©çšããããã«ãœãçšã§ãã.claude/output-styles å
ã®ãã¡ã€ã«ãšããŠååšãããããåããã«ãœã㯠CLI ã® /config ãããããã³äžèŽããèšå®ãœãŒã¹ãèªã¿èŸŒããã¹ãŠã® SDK ã»ãã·ã§ã³ããå©çšã§ããŸãã
æé©ãªçšéïŒ
- ã»ãã·ã§ã³å šäœã§ã®æ°žç¶çãªåäœå€æŽ
- ããŒã å ±æèšå®
- ã³ãŒãã¬ãã¥ã¢ãŒãããŒã¿ãµã€ãšã³ãã£ã¹ããDevOps ã¢ã·ã¹ã¿ã³ããªã©ã®ç¹æ®ãªã¢ã·ã¹ã¿ã³ã
- ããŒãžã§ã³ç®¡çãå¿ èŠãªè€éãªããã³ãã倿Ž
äŸïŒ
- å°çš SQL æé©åã¢ã·ã¹ã¿ã³ãã®äœæ
- ã»ãã¥ãªãã£éèŠã®ã³ãŒãã¬ãã¥ã¢ãŒã®æ§ç¯
- ç¹å®ã®æè²åŠãæã€ãã£ãŒãã³ã°ã¢ã·ã¹ã¿ã³ãã®éçº
systemPrompt ã远å ã§äœ¿çšããå Žå
claude_code ããªã»ããããã§ã«è£œåã«é©åããŠããã远å ã®åœä»€ãã¬ã€ã€ãŒããã ãã§æžãå Žåã¯ãappend ã䜿çšããŸããããªã»ããã®ããŒã«ã¬ã€ãã³ã¹ãå®å
šã«ãŒã«ãã³ãŒãã£ã³ã°èŠçŽãåå®è£
ããããšãªãä¿æããŸãã
æé©ãªçšéïŒ
- ç¹å®ã®ã³ãŒãã£ã³ã°æšæºãŸãã¯èšå®ã®è¿œå
- åºåãã©ãŒãããã®ã«ã¹ã¿ãã€ãº
- ãã¡ã€ã³åºæã®ç¥èã®è¿œå
- å¿ç詳现床ã®å€æŽ
- ããŒã«åœä»€ã倱ããã« Claude Code ã®ããã©ã«ãåäœã匷åãã
ã«ã¹ã¿ã systemPrompt ã䜿çšããå Žå
éå§ç¹ã決å®ããã§èª¬æãããŠããããã«ããšãŒãžã§ã³ãã®ãµãŒãã§ã¹ãã¢ã€ãã³ãã£ãã£ããŸãã¯æš©éã¢ãã«ã Claude Code ã®ãã®ãšç°ãªãå Žåã¯ãã«ã¹ã¿ã ããã³ããã䜿çšããŸããããŒã«ã¬ã€ãã³ã¹ãšå®å šã«ãŒã«ãå«ãããšãŒãžã§ã³ããå¿ èŠãšããå®å šãªåœä»€ã»ãããå®çŸ©ããŸãã
æé©ãªçšéïŒ
- Claude ã®åäœãå®å šã«å¶åŸ¡
- ç¹æ®ãªã·ã³ã°ã«ã»ãã·ã§ã³ã¿ã¹ã¯
- æ°ããããã³ããæŠç¥ã®ãã¹ã
- ããã©ã«ãããŒã«ãäžèŠãªç¶æ³
- ãŠããŒã¯ãªåäœãæã€ç¹æ®ãªãšãŒãžã§ã³ãã®æ§ç¯
ã¢ãããŒãã®çµã¿åãã
ãããã®ã¡ãœããã¯çµã¿åãããããšãã§ããŸããæ°žç¶çãªåºåã¹ã¿ã€ã«ãŸã㯠CLAUDE.md ã¯é·æçãªåäœãèšå®ããappend ã¯ã»ãã·ã§ã³åºæã®æç€ºãä¿åãããèšå®ã«è§Šããããšãªãäžã«éããŸãã
åºåã¹ã¿ã€ã«ãšã»ãã·ã§ã³åºæã®è¿œå ãçµã¿åããã
以äžã®äŸã¯ãCode Reviewer åºåã¹ã¿ã€ã«ããã§ã«ã¢ã¯ãã£ãã§ããããšãæ³å®ããŠããŸããappend ãããã¯ã¯ã»ãã·ã§ã³åºæã®ãã©ãŒã«ã¹é åããã«ãœãã®äžã«éãããããåäžã®ã¬ãã¥ãŒ ã»ãã·ã§ã³ã§ä¿åãããåºåã¹ã¿ã€ã«ã倿Žããããšãªã OAuth ãšããŒã¯ã³ ã¹ãã¬ãŒãžãåªå
ããããšãã§ããŸãïŒ
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)
é¢é£é ç®
- åºåã¹ã¿ã€ã«ïŒCLI ã®åºåã¹ã¿ã€ã«ãäœæã管çãå ±æããŸãããã¡ã€ã«åœ¢åŒãšã¹ãã¬ãŒãžã®å Žæãå«ã¿ãŸã
- Claude ããããžã§ã¯ããèšæ¶ããæ¹æ³ïŒCLAUDE.md ã«äœãå ¥ããããã©ãã«é 眮ãããã广çãªãããžã§ã¯ãæç€ºã®æžãæ¹
- TypeScript SDK ãªãã¡ã¬ã³ã¹ïŒ
systemPromptãsettingSourcesãoutputStyleãå«ãå®å šãªOptionså - Python SDK ãªãã¡ã¬ã³ã¹ïŒ
system_promptãšsetting_sourcesãå«ãå®å šãªClaudeAgentOptionså - èšå®ïŒåºåã¹ã¿ã€ã«ããã³ä»ã®èšå®ãä¿åãããå Žæãå«ã
settings.jsonãªãã¡ã¬ã³ã¹