ãšãŒãžã§ã³ãã«ãŒãã®ä»çµã¿
ã¡ãã»ãŒãžã©ã€ããµã€ã¯ã«ãããŒã«å®è¡ãã³ã³ããã¹ããŠã£ã³ããŠãããã³ SDK ãšãŒãžã§ã³ããæ¯ãã ã¢ãŒããã¯ãã£ãçè§£ããŸãã
Agent SDK ã䜿çšãããšãClaude Code ã®èªåŸåãšãŒãžã§ã³ãã«ãŒããç¬èªã®ã¢ããªã±ãŒã·ã§ã³ã«çµã¿èŸŒãããšãã§ããŸããSDK ã¯ã¹ã¿ã³ãã¢ãã³ããã±ãŒãžã§ãããŒã«ãæš©éãã³ã¹ãå¶éãããã³åºåãããã°ã©ã ã§å¶åŸ¡ã§ããŸããããã䜿çšããããã« Claude Code CLI ãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸããã
ãšãŒãžã§ã³ããéå§ãããšãSDK 㯠Claude Code ãæ¯ããå®è¡ã«ãŒããšåããã®ãå®è¡ããŸããClaude ã¯ããã³ãããè©äŸ¡ããããŒã«ãåŒã³åºããŠã¢ã¯ã·ã§ã³ãå®è¡ããçµæãåãåããã¿ã¹ã¯ãå®äºãããŸã§ç¹°ãè¿ããŸãããã®ããŒãžã§ã¯ããã®ã«ãŒãå ã§äœãèµ·ãããã説æãããšãŒãžã§ã³ãã广çã«æ§ç¯ããããã°ãæé©åã§ããããã«ããŸãã
ã«ãŒãã®æŠèŠ
ãã¹ãŠã®ãšãŒãžã§ã³ãã»ãã·ã§ã³ã¯åããµã€ã¯ã«ã«åŸããŸãã
- ããã³ãããåãåãã Claude ã¯ããã³ãããã·ã¹ãã ããã³ãããããŒã«å®çŸ©ãããã³äŒè©±å±¥æŽãšãšãã«ããã³ãããåãåããŸããSDK ã¯ã»ãã·ã§ã³ã¡ã¿ããŒã¿ãå«ããµãã¿ã€ã
"init"ã®SystemMessageãçæããŸãã - è©äŸ¡ããŠå¿çããã Claude ã¯çŸåšã®ç¶æ
ãè©äŸ¡ããã©ã®ããã«é²ããããæ±ºå®ããŸããããã¹ãã§å¿çãããã1 ã€ä»¥äžã®ããŒã«åŒã³åºãããªã¯ãšã¹ããããããã®äž¡æ¹ãè¡ã£ããã§ããŸããSDK ã¯ããã¹ããšããŒã«åŒã³åºããªã¯ãšã¹ããå«ã
AssistantMessageãçæããŸãã - ããŒã«ãå®è¡ããã SDK ã¯èŠæ±ãããåããŒã«ãå®è¡ããçµæãåéããŸããããŒã«çµæã®åã»ããã¯æ¬¡ã®æ±ºå®ã®ããã« Claude ã«ãã£ãŒãããã¯ãããŸããhooksã䜿çšããŠãããŒã«åŒã³åºããå®è¡åã«ååã倿ŽããŸãã¯ãããã¯ã§ããŸãã
- ç¹°ãè¿ãã ã¹ããã 2 ãš 3 ããµã€ã¯ã«ãšããŠç¹°ãè¿ãããŸããåå®å šãªãµã€ã¯ã«ã¯ 1 ã¿ãŒã³ã§ããClaude ã¯ããŒã«åŒã³åºããšçµæã®åŠçãç¶ããããŒã«åŒã³åºãã®ãªãå¿çãçæãããŸã§ç¶ããŸãã
- çµæãè¿ãã SDK ã¯æçµçãª
AssistantMessageïŒããã¹ãå¿çãããŒã«åŒã³åºããªãïŒãçæãããã®åŸã«æçµããã¹ããããŒã¯ã³äœ¿çšéãã³ã¹ããããã³ã»ãã·ã§ã³ ID ãå«ãResultMessageãçæããŸãã
ç°¡åãªè³ªåïŒãããã«ã¯ã©ã®ãããªãã¡ã€ã«ããããŸããïŒãïŒã¯ãGlob ãåŒã³åºããŠçµæã§å¿çãã 1 ïœ 2 ã¿ãŒã³ã§æžãå ŽåããããŸããè€éãªã¿ã¹ã¯ïŒãèªèšŒã¢ãžã¥ãŒã«ããªãã¡ã¯ã¿ãªã³ã°ããŠãã¹ããæŽæ°ãããïŒã¯ãå€ãã®ã¿ãŒã³ã«ããã£ãŠæ°åã®ããŒã«åŒã³åºãããã§ãŒã³ã§ãããã¡ã€ã«ãèªã¿åããã³ãŒããç·šéãããã¹ããå®è¡ããClaude ãåçµæã«åºã¥ããŠã¢ãããŒãã調æŽããŸãã
ã¿ãŒã³ãšã¡ãã»ãŒãž
ã¿ãŒã³ã¯ã«ãŒãå ã® 1 åŸåŸ©ã§ããClaude ã¯ããŒã«åŒã³åºããå«ãåºåãçæããSDK ã¯ãããã®ããŒã«ãå®è¡ããçµæã¯èªåçã« Claude ã«ãã£ãŒãããã¯ãããŸããããã¯ã³ãŒãã«å¶åŸ¡ãæ»ããã«çºçããŸããClaude ãããŒã«åŒã³åºãã®ãªãåºåãçæãããŸã§ã¿ãŒã³ãç¶ãããã®æç¹ã§ã«ãŒããçµäºããæçµçµæãé ä¿¡ãããŸãã
ããã³ãããFix the failing tests in auth.tsãã®å®å šãªã»ãã·ã§ã³ãã©ã®ãããªãã®ããèããŠã¿ãŸãããã
ãŸããSDK ã¯ããã³ããã Claude ã«éä¿¡ããã»ãã·ã§ã³ã¡ã¿ããŒã¿ãå«ãSystemMessageãçæããŸãããã®åŸãã«ãŒããéå§ãããŸãã
- ã¿ãŒã³ 1ïŒ Claude ã¯
BashãåŒã³åºããŠnpm testãå®è¡ããŸããSDK ã¯AssistantMessageãšããŒã«åŒã³åºããçæããã³ãã³ããå®è¡ããåºåïŒ3 ã€ã®å€±æïŒãå«ãUserMessageãçæããŸãã - ã¿ãŒã³ 2ïŒ Claude ã¯
ReadãåŒã³åºããŠauth.tsãšauth.test.tsãèªã¿åããŸããSDK ã¯ãã¡ã€ã«ã®å 容ãè¿ããAssistantMessageãçæããŸãã - ã¿ãŒã³ 3ïŒ Claude ã¯
EditãåŒã³åºããŠauth.tsãä¿®æ£ããBashãåŒã³åºããŠnpm testãåå®è¡ããŸãã3 ã€ã®ãã¹ããã¹ãŠãæåããŸããSDK ã¯AssistantMessageãçæããŸãã - æçµã¿ãŒã³ïŒ Claude ã¯ããŒã«åŒã³åºãã®ãªãããã¹ãã®ã¿ã®å¿çãçæããŸãããèªèšŒãã°ãä¿®æ£ãã3 ã€ã®ãã¹ããã¹ãŠãæåããŸããããSDK ã¯ãã®ããã¹ããå«ãæçµ
AssistantMessageãçæãããã®åŸãåãããã¹ããšã³ã¹ãããã³äœ¿çšéãå«ãResultMessageãçæããŸãã
ãã㯠4 ã¿ãŒã³ã§ããã3 ã€ã¯ããŒã«åŒã³åºãã1 ã€ã¯æçµããã¹ãã®ã¿ã®å¿çã§ãã
max_turns / maxTurns ã§ã«ãŒãããã£ããã§ããŸããããã¯ããŒã«äœ¿çšã¿ãŒã³ã®ã¿ãã«ãŠã³ãããŸããããšãã°ãäžèšã®ã«ãŒãã§ max_turns=2 ã¯ç·šéã¹ãããã®åã«åæ¢ããŠããã§ããããmax_budget_usd / maxBudgetUsd ã䜿çšããŠãæ¯åºãããå€ã«åºã¥ããŠã¿ãŒã³ããã£ããããããšãã§ããŸãã
å¶éããªãå Žåãã«ãŒã㯠Claude ãç¬èªã«çµäºãããŸã§å®è¡ãããŸããããã¯é©åã«ã¹ã³ãŒããããã¿ã¹ã¯ã«ã¯åé¡ãããŸãããããªãŒãã³ãšã³ãã®ããã³ããïŒããã®ã³ãŒãããŒã¹ãæ¹åãããïŒã§ã¯é·æéå®è¡ãããå¯èœæ§ããããŸããäºç®ãèšå®ããããšã¯ãæ¬çªãšãŒãžã§ã³ãã®è¯ãããã©ã«ãã§ãã以äžã®ã¿ãŒã³ãšäºç®ã§ãªãã·ã§ã³ãªãã¡ã¬ã³ã¹ãåç §ããŠãã ããã
ã¡ãã»ãŒãžã¿ã€ã
ã«ãŒããå®è¡ããããšãSDK ã¯ã¡ãã»ãŒãžã®ã¹ããªãŒã ãçæããŸããåã¡ãã»ãŒãžã¯ãã«ãŒãã®ã©ã®ã¹ããŒãžããæ¥ããã瀺ãã¿ã€ããæã¡ãŸãã5 ã€ã®ã³ã¢ã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
SystemMessageïŒ ã»ãã·ã§ã³ã©ã€ããµã€ã¯ã«ã€ãã³ããsubtypeãã£ãŒã«ãã¯ããããåºå¥ããŸãã"init"ã¯æåã®ã¡ãã»ãŒãžïŒã»ãã·ã§ã³ã¡ã¿ããŒã¿ïŒã§ã"compact_boundary"ã¯å§çž®åŸã«çºç«ããŸããTypeScript ã§ã¯ãå§çž®å¢çã¯SDKSystemMessageã®ãµãã¿ã€ãã§ã¯ãªããç¬èªã®SDKCompactBoundaryMessageã¿ã€ãã§ããAssistantMessageïŒ æçµããã¹ãã®ã¿ã®å¿çãå«ããå Claude å¿çã®åŸã«çæãããŸãããã®ã¿ãŒã³ããã®ããã¹ãã³ã³ãã³ããããã¯ãšããŒã«åŒã³åºããããã¯ãå«ã¿ãŸããUserMessageïŒ åããŒã«å®è¡åŸãClaude ã«éãè¿ãããããŒã«çµæã³ã³ãã³ããšãšãã«çæãããŸããã«ãŒãäžç€ã§ã¹ããªãŒãã³ã°ãããŠãŒã¶ãŒå ¥åã«å¯ŸããŠãçæãããŸããStreamEventïŒ éšåã¡ãã»ãŒãžãæå¹ãªå Žåã®ã¿çæãããŸããçã®API ã¹ããªãŒãã³ã°ã€ãã³ãïŒããã¹ããã«ã¿ãããŒã«å ¥åãã£ã³ã¯ïŒãå«ã¿ãŸããã¹ããªãŒã å¿çãåç §ããŠãã ãããResultMessageïŒ ãšãŒãžã§ã³ãã«ãŒãã®çµäºãããŒã¯ããŸããæçµããã¹ãçµæãããŒã¯ã³äœ¿çšéãã³ã¹ããããã³ã»ãã·ã§ã³ ID ãå«ã¿ãŸããsubtypeãã£ãŒã«ãããã§ãã¯ããŠãã¿ã¹ã¯ãæåãããå¶éã«éãããã倿ããŸããprompt_suggestionãªã©ã®å°æ°ã®æ«å°Ÿã·ã¹ãã ã€ãã³ãã¯ãã®åŸã«å°çããå¯èœæ§ããããããçµæã§äžæããã®ã§ã¯ãªããã¹ããªãŒã ãå®äºãŸã§å埩åŠçããŸããçµæãåŠçãããåç §ããŠãã ããã
ããã 5 ã€ã®ã¿ã€ãã¯ãäž¡æ¹ã® SDK ã§ãšãŒãžã§ã³ãã«ãŒãã©ã€ããµã€ã¯ã«å šäœãã«ããŒããŠããŸããTypeScript SDK ã¯ã远å ã®èŠ³æž¬å¯èœæ§ã€ãã³ãïŒããã¯ã€ãã³ããããŒã«é²æãã¬ãŒãå¶éãã¿ã¹ã¯éç¥ïŒãçæãã远å ã®è©³çްãæäŸããŸãããã«ãŒããé§åããããã«å¿ é ã§ã¯ãããŸãããå®å šãªãªã¹ãã«ã€ããŠã¯ãPython ã¡ãã»ãŒãžã¿ã€ããªãã¡ã¬ã³ã¹ãšTypeScript ã¡ãã»ãŒãžã¿ã€ããªãã¡ã¬ã³ã¹ãåç §ããŠãã ããã
ã¡ãã»ãŒãžãåŠçãã
åŠçããã¡ãã»ãŒãžã¯ãæ§ç¯ããŠãããã®ã«ãã£ãŠç°ãªããŸãã
- æçµçµæã®ã¿ïŒ
ResultMessageãåŠçããŠãåºåãã³ã¹ããããã³ã¿ã¹ã¯ãæåãããå¶éã«éããããååŸããŸãã - é²ææŽæ°ïŒ
AssistantMessageãåŠçããŠãClaude ãåã¿ãŒã³ã§äœãããŠããããã©ã®ããŒã«ãåŒã³åºãããã確èªããŸãã - ã©ã€ãã¹ããªãŒãã³ã°ïŒ éšåã¡ãã»ãŒãžãæå¹ã«ããïŒPython ã§ã¯
include_partial_messagesãTypeScript ã§ã¯includePartialMessagesïŒããŠããªã¢ã«ã¿ã€ã ã§StreamEventã¡ãã»ãŒãžãååŸããŸãããªã¢ã«ã¿ã€ã ã§ã¹ããªãŒã å¿çãåç §ããŠãã ããã
ã¡ãã»ãŒãžã¿ã€ãããã§ãã¯ããæ¹æ³ã¯ SDK ã«ãã£ãŠç°ãªããŸãã
- PythonïŒ
claude_agent_sdkããã€ã³ããŒããããã¯ã©ã¹ã«å¯ŸããŠisinstance()ã§ã¡ãã»ãŒãžã¿ã€ãããã§ãã¯ããŸãïŒããšãã°ãisinstance(message, ResultMessage)ïŒã - TypeScriptïŒ
typeæååãã£ãŒã«ãããã§ãã¯ããŸãïŒããšãã°ãmessage.type === "result"ïŒãAssistantMessageãšUserMessageã¯çã® API ã¡ãã»ãŒãžã.messageãã£ãŒã«ãã§ã©ãããããããã³ã³ãã³ããããã¯ã¯message.contentã§ã¯ãªãmessage.message.contentã«ãããŸãã
äŸïŒã¡ãã»ãŒãžã¿ã€ãããã§ãã¯ããŠçµæãåŠçãã
from claude_agent_sdk import query, AssistantMessage, ResultMessage
async for message in query(prompt="Summarize this project"):
if isinstance(message, AssistantMessage):
print(f"Turn completed: {len(message.content)} content blocks")
if isinstance(message, ResultMessage):
if message.subtype == "success":
print(message.result)
else:
print(f"Stopped: {message.subtype}")
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({ prompt: "Summarize this project" })) {
if (message.type === "assistant") {
console.log(`Turn completed: ${message.message.content.length} content blocks`);
}
if (message.type === "result") {
if (message.subtype === "success") {
console.log(message.result);
} else {
console.log(`Stopped: ${message.subtype}`);
}
}
}
ããŒã«å®è¡
ããŒã«ã¯ãšãŒãžã§ã³ãã«ã¢ã¯ã·ã§ã³ãå®è¡ããæ©èœãæäŸããŸããããŒã«ããªããã°ãClaude ã¯ããã¹ãã§ã®ã¿å¿çã§ããŸããããŒã«ã䜿çšãããšãClaude ã¯ãã¡ã€ã«ãèªã¿åããã³ãã³ããå®è¡ããã³ãŒããæ€çŽ¢ããå€éšãµãŒãã¹ãšçžäºäœçšã§ããŸãã
çµã¿èŸŒã¿ããŒã«
SDK ã«ã¯ Claude Code ãæ¯ããã®ãšåãããŒã«ãå«ãŸããŠããŸãã
| ã«ããŽãª | ããŒã« | æ©èœ |
|---|---|---|
| ãã¡ã€ã«æäœ | ReadãEditãWrite |
ãã¡ã€ã«ãèªã¿åãã倿Žãäœæ |
| æ€çŽ¢ | GlobãGrep |
ãã¿ãŒã³ã§ãã¡ã€ã«ãæ€çŽ¢ãæ£èŠè¡šçŸã§ã³ã³ãã³ããæ€çŽ¢ |
| å®è¡ | Bash |
ã·ã§ã«ã³ãã³ããã¹ã¯ãªãããgit æäœãå®è¡ |
| Web | WebSearchãWebFetch |
Web ãæ€çŽ¢ãããŒãžãååŸããŠè§£æ |
| æ€åº | ToolSearch |
ãã¹ãŠãããªããŒããã代ããã«ããªã³ããã³ãã§ããŒã«ãåçã«æ€çŽ¢ããŠããŒã |
| ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ | AgentãSkillãAskUserQuestionãTaskCreateãTaskUpdate |
ãµããšãŒãžã§ã³ããçæãã¹ãã«ãåŒã³åºãããŠãŒã¶ãŒã«è³ªåãã¿ã¹ã¯ã远跡 |
çµã¿èŸŒã¿ããŒã«ä»¥å€ã«ã以äžãå®è¡ã§ããŸãã
- å€éšãµãŒãã¹ãæ¥ç¶ãã MCP ãµãŒããŒïŒããŒã¿ããŒã¹ããã©ãŠã¶ãAPIïŒ
- ã«ã¹ã¿ã ããŒã«ãå®çŸ©ãã ã«ã¹ã¿ã ããŒã«ãã³ãã©ãŒ
- ãããžã§ã¯ãã¹ãã«ãããŒããã èšå®ãœãŒã¹çµç±ã§åå©çšå¯èœãªã¯ãŒã¯ãããŒ
ããŒã«æš©é
Claude ã¯ã¿ã¹ã¯ã«åºã¥ããŠã©ã®ããŒã«ãåŒã³åºãããæ±ºå®ããŸããããããã®åŒã³åºãã®å®è¡ãèš±å¯ãããã©ãããå¶åŸ¡ããŸããç¹å®ã®ããŒã«ãèªåæ¿èªããããä»ã®ããŒã«ãå®å šã«ãããã¯ãããããã¹ãŠã«å¯ŸããŠæ¿èªãèŠæ±ãããã§ããŸãã3 ã€ã®ãªãã·ã§ã³ã飿ºããŠãäœãå®è¡ãããããæ±ºå®ããŸãã
allowed_tools/allowedToolsãªã¹ããããããŒã«ãèªåæ¿èªããŸããèš±å¯ãããããŒã«ãªã¹ãã«["Read", "Glob", "Grep"]ãããèªã¿åãå°çšãšãŒãžã§ã³ãã¯ãããã³ãããªãã§ãããã®ããŒã«ãå®è¡ããŸãããªã¹ããããŠããªãããŒã«ã¯åŒãç¶ãå©çšå¯èœã§ãããæš©éãå¿ èŠã§ããdisallowed_tools/disallowedToolsãªã¹ããããããŒã«ããããã¯ããŸããä»ã®èšå®ã«é¢ä¿ãªããããŒã«ãå®è¡ãããåã«ã«ãŒã«ããã§ãã¯ãããé åºã«ã€ããŠã¯ãæš©éãåç §ããŠãã ãããpermission_mode/permissionModeèš±å¯ãŸãã¯æåŠã«ãŒã«ã§ã«ããŒãããŠããªãããŒã«ã«äœãèµ·ããããå¶åŸ¡ããŸããå©çšå¯èœãªã¢ãŒãã«ã€ããŠã¯ãæš©éã¢ãŒããåç §ããŠãã ããã
"Bash(npm *)" ã®ãããªã«ãŒã«ã§åå¥ã®ããŒã«ãã¹ã³ãŒãããããšãã§ããŸããããã«ãããç¹å®ã®ã³ãã³ãã®ã¿ãèš±å¯ã§ããŸããå®å
šãªã«ãŒã«æ§æã«ã€ããŠã¯ãæš©éãåç
§ããŠãã ããã
ããŒã«ãæåŠããããšãClaude ã¯ããŒã«çµæãšããŠæåŠã¡ãã»ãŒãžãåãåããéåžžã¯å¥ã®ã¢ãããŒãã詊ã¿ãããé²ããªãã£ãããšãå ±åããŸãã
䞊åããŒã«å®è¡
Claude ãåäžã®ã¿ãŒã³ã§è€æ°ã®ããŒã«åŒã³åºãããªã¯ãšã¹ããããšãäž¡æ¹ã® SDK ã¯ããŒã«ã«å¿ããŠåæãŸãã¯é åºã«å®è¡ã§ããŸããèªã¿åãå°çšããŒã«ïŒReadãGlobãGrepãèªã¿åãå°çšãšããŠããŒã¯ããã MCP ããŒã«ïŒã¯åæã«å®è¡ã§ããŸããç¶æ
ã倿ŽããããŒã«ïŒEditãWriteãBashïŒã¯ç«¶åãé¿ããããã«é åºã«å®è¡ãããŸãã
ã«ã¹ã¿ã ããŒã«ã¯ããã©ã«ãã§é åºå®è¡ãããŸããã«ã¹ã¿ã ããŒã«ã®äžŠåå®è¡ãæå¹ã«ããã«ã¯ããã®æ³šéã§ readOnlyHint ãèšå®ããŸããTypeScriptãšPythonSDK ã®äž¡æ¹ã¯ MCP SDK ãããã®ãã£ãŒã«ãåã䜿çšããŸãã
ã«ãŒãã®å®è¡æ¹æ³ãå¶åŸ¡ãã
ã«ãŒããå®è¡ããã¿ãŒã³æ°ãã³ã¹ããClaude ãã©ã®çšåºŠæšè«ããããããŒã«ãå®è¡åã«æ¿èªãå¿
èŠãšãããã©ãããå¶éã§ããŸãããããã¯ãã¹ãŠClaudeAgentOptionsïŒPythonïŒ/ OptionsïŒTypeScriptïŒã®ãã£ãŒã«ãã§ãã
ã¿ãŒã³ãšäºç®
| ãªãã·ã§ã³ | å¶åŸ¡å 容 | ããã©ã«ã |
|---|---|---|
æå€§ã¿ãŒã³ïŒmax_turns / maxTurnsïŒ |
æå€§ããŒã«äœ¿çšåŸåŸ©æ° | å¶éãªã |
æå€§äºç®ïŒmax_budget_usd / maxBudgetUsdïŒ |
忢åã®æå€§ã³ã¹ã | å¶éãªã |
ã©ã¡ããã®å¶éã«éãããšãSDK ã¯å¯Ÿå¿ãããšã©ãŒãµãã¿ã€ãïŒerror_max_turns ãŸã㯠error_max_budget_usdïŒãå«ã ResultMessage ãè¿ããŸãããããã®ãµãã¿ã€ãããã§ãã¯ããæ¹æ³ã«ã€ããŠã¯çµæãåŠçããããæ§æã«ã€ããŠã¯ClaudeAgentOptions / Optionsãåç
§ããŠãã ããã
åªåã¬ãã«
effort ãªãã·ã§ã³ã¯ Claude ãé©çšããæšè«ã®éãå¶åŸ¡ããŸããäœãåªåã¬ãã«ã¯ã¿ãŒã³ãããã®ããŒã¯ã³ãå°ãªããã³ã¹ããåæžãããŸãããã¹ãŠã®ã¢ãã«ãåªåãã©ã¡ãŒã¿ããµããŒãããŠããããã§ã¯ãããŸãããã©ã®ã¢ãã«ããµããŒãããŠãããã«ã€ããŠã¯ãåªåãåç
§ããŠãã ããã
| ã¬ãã« | åäœ | é©ããŠããçšé |
|---|---|---|
"low" |
æå°éã®æšè«ãé«éå¿ç | ãã¡ã€ã«æ€çŽ¢ããã£ã¬ã¯ããªã®ãªã¹ã |
"medium" |
ãã©ã³ã¹ã®åããæšè« | ã«ãŒãã³ç·šéãæšæºã¿ã¹ã¯ |
"high" |
培åºçãªåæ | ãªãã¡ã¯ã¿ãªã³ã°ããããã° |
"xhigh" |
æ¡åŒµæšè«æ·±åºŠ | ã³ãŒãã£ã³ã°ãš agentic coding ã¿ã¹ã¯ãOpus 4.7 ã§æšå¥š |
"max" |
æå€§æšè«æ·±åºŠ | æ·±ãåæãå¿ èŠãªè€æ°ã¹ãããã®åé¡ |
effort ãèšå®ããªãå ŽåãPython SDK ã¯ãã©ã¡ãŒã¿ãèšå®ãããŸãŸã«ããŠãã¢ãã«ã®ããã©ã«ãåäœã«å§è²ããŸããTypeScript SDK ã¯ããã©ã«ãã§ "high" ã§ãã
effort ã¯åå¿çå
ã®æšè«æ·±åºŠã®ã¬ã€ãã³ã·ãšããŒã¯ã³ã³ã¹ãããã¬ãŒããªãããŸããæ¡åŒµæèã¯ãåºåã«è¡šç€ºãããæèã®é£éãããã¯ãçæããå¥ã®æ©èœã§ãããããã¯ç¬ç«ããŠããŸããeffort: "low" ãæ¡åŒµæèæå¹ã§èšå®ããããšããeffort: "max" ãæå¹ã«ããªãã§èšå®ããããšãã§ããŸãã
åçŽã§ã¹ã³ãŒããæç¢ºãªã¿ã¹ã¯ïŒãã¡ã€ã«ã®ãªã¹ããåäžã® grep ã®å®è¡ãªã©ïŒãå®è¡ãããšãŒãžã§ã³ãã®å Žåã¯ãäœãåªåã䜿çšããŠã³ã¹ããšã¬ã€ãã³ã·ãåæžããŸãããããã¬ãã«ã® query() ãªãã·ã§ã³ã§ã»ãã·ã§ã³å
šäœã« effort ãèšå®ããããAgentDefinitionã® effort ãã£ãŒã«ãã§ãµããšãŒãžã§ã³ãããšã«ã»ãã·ã§ã³ã¬ãã«ããªãŒããŒã©ã€ãããŸãã
æš©éã¢ãŒã
æš©éã¢ãŒããªãã·ã§ã³ïŒPython ã§ã¯ permission_modeãTypeScript ã§ã¯ permissionModeïŒã¯ããšãŒãžã§ã³ããããŒã«ã䜿çšããåã«æ¿èªãæ±ãããã©ãããå¶åŸ¡ããŸãã
| ã¢ãŒã | åäœ |
|---|---|
"default" |
èš±å¯ã«ãŒã«ã§ã«ããŒãããŠããªãããŒã«ã¯æ¿èªã³ãŒã«ããã¯ãããªã¬ãŒããŸããã³ãŒã«ããã¯ããªãå Žåã¯æåŠ |
"acceptEdits" |
ãã¡ã€ã«ç·šéãšäžè¬çãªãã¡ã€ã«ã·ã¹ãã ã³ãã³ãïŒmkdirãtouchãmvãcp ãªã©ïŒãèªåæ¿èªããŸããä»ã® Bash ã³ãã³ãã¯ããã©ã«ãã«ãŒã«ã«åŸããŸã |
"plan" |
èªã¿åãå°çšããŒã«ãå®è¡ããŸããClaude ã¯ãœãŒã¹ãã¡ã€ã«ãç·šéããã«æ¢çŽ¢ããŠèšç»ãäœæããŸã |
"dontAsk" |
ããã³ããããŸãããæš©éã«ãŒã«ã«ãã£ãŠäºåæ¿èªãããããŒã«ãå®è¡ããããã®ä»ã¯ãã¹ãŠæåŠãããŸã |
"auto"ïŒTypeScript ã®ã¿ïŒ |
ã¢ãã«åé¡åšã䜿çšããŠåããŒã«åŒã³åºããæ¿èªãŸãã¯æåŠããŸããå©çšå¯èœæ§ãšåäœã«ã€ããŠã¯ãèªåã¢ãŒããåç §ããŠãã ãã |
"bypassPermissions" |
å°ããã«ãã¹ãŠã®èš±å¯ãããããŒã«ãå®è¡ããŸããUnix ã§ã«ãŒããšããŠå®è¡ããå Žåã¯äœ¿çšã§ããŸããããšãŒãžã§ã³ãã®ã¢ã¯ã·ã§ã³ãæ°ã«ããã·ã¹ãã ã«åœ±é¿ãäžããããªãéé¢ç°å¢ã§ã®ã¿äœ¿çšããŸã |
ã€ã³ã¿ã©ã¯ãã£ãã¢ããªã±ãŒã·ã§ã³ã®å Žåã¯ãããŒã«æ¿èªã³ãŒã«ããã¯ã§ "default" ã䜿çšããŠæ¿èªããã³ããã衚瀺ããŸããéçºãã·ã³äžã®èªåŸåãšãŒãžã§ã³ãã®å Žåã¯ã"acceptEdits" ã䜿çšããŠãã¡ã€ã«ç·šéãšäžè¬çãªãã¡ã€ã«ã·ã¹ãã ã³ãã³ãïŒmkdirãtouchãmvãcp ãªã©ïŒãèªåæ¿èªããªãããä»ã® Bash ã³ãã³ããèš±å¯ã«ãŒã«ã®èåŸã«ã²ãŒãããŸããCIãã³ã³ããããŸãã¯ãã®ä»ã®éé¢ç°å¢ã«å¯Ÿã㊠"bypassPermissions" ãäºçŽããŸãã詳现ã«ã€ããŠã¯ãæš©éãåç
§ããŠãã ããã
ã¢ãã«
model ãèšå®ããªãå ŽåãSDK 㯠Claude Code ã®ããã©ã«ãã䜿çšããŸããããã¯èªèšŒæ¹æ³ãšãµãã¹ã¯ãªãã·ã§ã³ã«ãã£ãŠç°ãªããŸããç¹å®ã®ã¢ãã«ããã³çãããããããé«éã§å®äŸ¡ãªãšãŒãžã§ã³ãçšã«å°ããã¢ãã«ã䜿çšããããã«æç€ºçã«èšå®ããŸãïŒããšãã°ãmodel="claude-sonnet-4-6"ïŒãå©çšå¯èœãª ID ã«ã€ããŠã¯ãã¢ãã«ãåç
§ããŠãã ããã
ã³ã³ããã¹ããŠã£ã³ããŠ
ã³ã³ããã¹ããŠã£ã³ããŠã¯ãã»ãã·ã§ã³äžã« Claude ãå©çšã§ããæ å ±ã®ç·éã§ããã»ãã·ã§ã³å ã®ã¿ãŒã³éã§ãªã»ãããããŸããããã¹ãŠãèç©ãããŸããã·ã¹ãã ããã³ãããããŒã«å®çŸ©ãäŒè©±å±¥æŽãããŒã«å ¥åãããã³ããŒã«åºåãã¿ãŒã³éã§åããŸãŸã®ã³ã³ãã³ãïŒã·ã¹ãã ããã³ãããããŒã«å®çŸ©ãCLAUDE.mdïŒã¯èªåçã«ããã³ãããã£ãã·ã¥ãããç¹°ãè¿ãããããªãã£ãã¯ã¹ã®ã³ã¹ããšã¬ã€ãã³ã·ãåæžãããŸãã
ã³ã³ããã¹ããæ¶è²»ãããã®
SDK ã§ã®ã³ã³ããã¹ããžã®åã³ã³ããŒãã³ãã®åœ±é¿ã¯æ¬¡ã®ãšããã§ãã
| ãœãŒã¹ | ããŒãææ | åœ±é¿ |
|---|---|---|
| ã·ã¹ãã ããã³ãã | ãã¹ãŠã®ãªã¯ãšã¹ã | å°ããåºå®ã³ã¹ããåžžã«ååš |
| CLAUDE.md ãã¡ã€ã« | ã»ãã·ã§ã³éå§æãsettingSourcesçµç± |
ãã¹ãŠã®ãªã¯ãšã¹ãã§å®å šãªã³ã³ãã³ãïŒãã ãããã³ãããã£ãã·ã¥ããããããæåã®ãªã¯ãšã¹ãã®ã¿ãå®å šãªã³ã¹ããæ¯æãïŒ |
| ããŒã«å®çŸ© | ãã¹ãŠã®ãªã¯ãšã¹ããMCP ã¹ããŒãã¯ããã©ã«ãã§é å»¶ | çµã¿èŸŒã¿ããŒã«ã¹ããŒãã¯ãã¹ãŠã®ãªã¯ãšã¹ããããŒãããŸããããŒã«æ€çŽ¢ã¯ãããã©ã«ãã§ MCP ããŒã«ã¹ããŒããé
å»¶ãããVertex AI ãŸãã¯éãã¡ãŒã¹ãããŒãã£ã® ANTHROPIC_BASE_URL ã§ã®ã¢ããããã³ãããŒãã«ãã©ãŒã«ããã¯ããŸããå®å
šãªãããªãã¯ã¹ã«ã€ããŠã¯ãããŒã«æ€çŽ¢ãæ§æãåç
§ããŠãã ãã |
| äŒè©±å±¥æŽ | ã¿ãŒã³éã§èç© | åã¿ãŒã³ã§å¢å ãããã³ãããå¿çãããŒã«å ¥åãããŒã«åºå |
| ã¹ãã«èª¬æ | ã»ãã·ã§ã³éå§æãèšå®ãœãŒã¹çµç± | çãèŠçŽãå®å šãªã³ã³ãã³ãã¯åŒã³åºãæã®ã¿ããŒã |
倧ããªããŒã«åºåã¯å€§éã®ã³ã³ããã¹ããæ¶è²»ããŸãã倧ããªãã¡ã€ã«ãèªã¿åããã詳现ãªåºåãå«ãã³ãã³ããå®è¡ãããšãåäžã®ã¿ãŒã³ã§æ°åã®ããŒã¯ã³ã䜿çšã§ããŸããã³ã³ããã¹ãã¯ã¿ãŒã³éã§èç©ããããããå€ãã®ããŒã«åŒã³åºããå«ãé·ãã»ãã·ã§ã³ã¯ãçãã»ãã·ã§ã³ãããã¯ããã«å€ãã®ã³ã³ããã¹ããæ§ç¯ããŸãã
èªåå§çž®
ã³ã³ããã¹ããŠã£ã³ããŠãå¶éã«è¿ã¥ããšãSDK ã¯äŒè©±ãèªåçã«å§çž®ããŸããå€ãå±¥æŽãèŠçŽããŠã¹ããŒã¹ãè§£æŸããææ°ã®äº€æãšéèŠãªæ±ºå®ãä¿æããŸããSDK ã¯ãããçºçãããšãã«ã¹ããªãŒã ã§ type: "system" ãš subtype: "compact_boundary" ãå«ãã¡ãã»ãŒãžãçæããŸãïŒPython ã§ã¯ SystemMessageãTypeScript ã§ã¯å¥ã® SDKCompactBoundaryMessage ã¿ã€ãã§ãïŒã
å§çž®ã¯å€ãã¡ãã»ãŒãžãèŠçŽã«çœ®ãæãããããäŒè©±ã®æ©ã段éããã®ç¹å®ã®æç€ºã¯ä¿æãããªãå¯èœæ§ããããŸããæ°žç¶çãªã«ãŒã«ã¯åæããã³ããã§ã¯ãªã CLAUDE.md ã«å±ããŸãïŒsettingSourcesçµç±ã§ããŒãïŒãCLAUDE.md ã³ã³ãã³ãã¯ãã¹ãŠã®ãªã¯ãšã¹ãã§å泚å
¥ãããããã§ãã
å§çž®åäœãããã€ãã®æ¹æ³ã§ã«ã¹ã¿ãã€ãºã§ããŸãã
- CLAUDE.md ã®èŠçŽæç€ºïŒ å§çž®æ©ã¯ä»ã®ã³ã³ããã¹ããšåæ§ã« CLAUDE.md ãèªããããèŠçŽæã«ä¿æããå 容ãæç€ºããã»ã¯ã·ã§ã³ãå«ããããšãã§ããŸããã»ã¯ã·ã§ã³ããããŒã¯èªç±åœ¢åŒã§ãïŒããžãã¯æååã§ã¯ãããŸããïŒãå§çž®æ©ã¯æå³ã«åºã¥ããŠäžèŽããŸãã
PreCompactããã¯ïŒ å§çž®ãçºçããåã«ã«ã¹ã¿ã ããžãã¯ãå®è¡ããŸããããšãã°ãå®å šãªãã©ã³ã¹ã¯ãªãããã¢ãŒã«ã€ãããŸããããã¯ã¯triggerãã£ãŒã«ãïŒmanualãŸãã¯autoïŒãåãåããŸããhooksãåç §ããŠãã ããã- æåå§çž®ïŒ
/compactãããã³ããæååãšããŠéä¿¡ããŠããªã³ããã³ãã§å§çž®ãããªã¬ãŒããŸããïŒãã®æ¹æ³ã§éä¿¡ãããã¹ã©ãã·ã¥ã³ãã³ã㯠CLI ã®ã¿ã®ã·ã§ãŒãã«ããã§ã¯ãªããSDK å ¥åã§ããSDK ã®ã¹ã©ãã·ã¥ã³ãã³ããåç §ããŠãã ãããïŒ
äŸïŒCLAUDE.md ã®èŠçŽæç€º
ãããžã§ã¯ãã® CLAUDE.md ã«ã»ã¯ã·ã§ã³ã远å ããŠãå§çž®æ©ã«ä¿æããå 容ãæç€ºããŸããããããŒåã¯ç¹å¥ã§ã¯ãããŸãããæç¢ºãªã©ãã«ã䜿çšããŠãã ããã
# Summary instructions
When summarizing this conversation, always preserve:
- The current task objective and acceptance criteria
- File paths that have been read or modified
- Test results and error messages
- Decisions made and the reasoning behind them
ã³ã³ããã¹ããå¹ççã«ä¿ã€
é·æéå®è¡ããããšãŒãžã§ã³ãã®ããã€ãã®æŠç¥ã
- ãµãã¿ã¹ã¯çšã«ãµããšãŒãžã§ã³ãã䜿çšããŸãã åãµããšãŒãžã§ã³ãã¯æ°ããäŒè©±ã§éå§ãããŸãïŒä»¥åã®ã¡ãã»ãŒãžå±¥æŽã¯ãããŸããããç¬èªã®ã·ã¹ãã ããã³ãããšãããžã§ã¯ãã¬ãã«ã®ã³ã³ããã¹ãïŒCLAUDE.md ãªã©ïŒãããŒãããŸãïŒã芪ã®ã¿ãŒã³ã¯è¡šç€ºããããæçµå¿çã®ã¿ã芪ã«ããŒã«çµæãšããŠè¿ãããŸããã¡ã€ã³ãšãŒãžã§ã³ãã®ã³ã³ããã¹ãã¯å®å šãªãµãã¿ã¹ã¯ãã©ã³ã¹ã¯ãªããã§ã¯ãªãããã®èŠçŽã§å¢å ããŸãã詳现ã«ã€ããŠã¯ããµããšãŒãžã§ã³ããç¶æ¿ãããã®ãåç §ããŠãã ããã
- ããŒã«ãéžå¥ããŸãã ãã¹ãŠã®ããŒã«å®çŸ©ã¯ã³ã³ããã¹ãã¹ããŒã¹ãåããŸãã
AgentDefinitionã®toolsãã£ãŒã«ãã䜿çšããŠãµããšãŒãžã§ã³ããå¿ èŠãªæå°ã»ããã«ã¹ã³ãŒãããŸãã - MCP ãµãŒããŒã³ã¹ããç£èŠããŸãã MCP ããŒã«æ€çŽ¢ã¯ããã©ã«ãã§ MCP ããŒã«ã¹ããŒããé
å»¶ããããªã³ããã³ãã§ããŒãããŸããããŒã«æ€çŽ¢ããªãã®å ŽåãVertex AI äžã®å ŽåããŸãã¯éãã¡ãŒã¹ãããŒãã£ã®
ANTHROPIC_BASE_URLã®èåŸã«ããå Žåãå MCP ãµãŒããŒã¯ãã¹ãŠã®ããŒã«ã¹ããŒãããã¹ãŠã®ãªã¯ãšã¹ãã«è¿œå ãããããå€ãã®ããŒã«ãæã€å°æ°ã®ãµãŒããŒã¯ããšãŒãžã§ã³ããäœãäœæ¥ãè¡ãåã«å€§éã®ã³ã³ããã¹ããæ¶è²»ã§ããŸãã - ã«ãŒãã³ã¿ã¹ã¯ã«äœãåªåã䜿çšããŸãã ãã¡ã€ã«ãèªã¿åããããã£ã¬ã¯ããªããªã¹ãããã ãã§æžããšãŒãžã§ã³ãçšã«åªåã
"low"ã«èšå®ããŸããããã¯ããŒã¯ã³äœ¿çšéãšã³ã¹ããåæžããŸãã
æ©èœããšã®ã³ã³ããã¹ãã³ã¹ãã®è©³çްãªå èš³ã«ã€ããŠã¯ãã³ã³ããã¹ãã³ã¹ããçè§£ãããåç §ããŠãã ããã
ã»ãã·ã§ã³ãšç¶ç¶æ§
SDK ãšã®åã€ã³ã¿ã©ã¯ã·ã§ã³ã¯ã»ãã·ã§ã³ãäœæãŸãã¯ç¶ç¶ããŸããResultMessage.session_id ããã»ãã·ã§ã³ ID ããã£ããã£ããŠïŒäž¡æ¹ã® SDK ã§å©çšå¯èœïŒãåŸã§åéããŸããTypeScript SDK 㯠init SystemMessage ã®çŽæ¥ãã£ãŒã«ããšããŠãå
¬éããŸããPython ã§ã¯ãSystemMessage.data ã«ãã¹ããããŠããŸãã
åéãããšã以åã®ã¿ãŒã³ããã®å®å šãªã³ã³ããã¹ãã埩å ãããŸããèªã¿åããããã¡ã€ã«ãå®è¡ãããåæãããã³å®è¡ãããã¢ã¯ã·ã§ã³ãã»ãã·ã§ã³ããã©ãŒã¯ããŠãå ã®ã»ãã·ã§ã³ã倿Žããã«å¥ã®ã¢ãããŒãã«åå²ããããšãã§ããŸãã
ã»ãã·ã§ã³åéãç¶ç¶ããã©ãŒã¯ãã¿ãŒã³ã®å®å šãªã¬ã€ãã«ã€ããŠã¯ãã»ãã·ã§ã³ç®¡çãåç §ããŠãã ããã
Python ã§ã¯ãClaudeSDKClient ã¯è€æ°ã®åŒã³åºãéã§ã»ãã·ã§ã³ ID ãèªåçã«åŠçããŸãã詳现ã«ã€ããŠã¯ãPython SDK ãªãã¡ã¬ã³ã¹ãåç
§ããŠãã ããã
çµæãåŠçãã
ã«ãŒããçµäºãããšãResultMessage ã¯äœãèµ·ãã£ããã瀺ããåºåãæäŸããŸããsubtype ãã£ãŒã«ãïŒäž¡æ¹ã® SDK ã§å©çšå¯èœïŒã¯ãçµäºç¶æ
ããã§ãã¯ããäž»ãªæ¹æ³ã§ãã
| çµæãµãã¿ã€ã | äœãèµ·ãã£ãã | result ãã£ãŒã«ãã¯å©çšå¯èœãïŒ |
|---|---|---|
success |
Claude ã¯éåžžãã¿ã¹ã¯ãå®äºããŸãã | ã¯ã |
error_max_turns |
å®äºåã« maxTurns å¶éã«éããŸãã |
ããã |
error_max_budget_usd |
å®äºåã« maxBudgetUsd å¶éã«éããŸãã |
ããã |
error_during_execution |
ãšã©ãŒãã«ãŒããäžæããŸããïŒããšãã°ãAPI é害ãŸãã¯ãã£ã³ã»ã«ããããªã¯ãšã¹ãïŒ | ããã |
error_max_structured_output_retries |
æ§é ååºåæ€èšŒãèšå®ãããå詊è¡å¶éåŸã«å€±æããŸãã | ããã |
result ãã£ãŒã«ãïŒæçµããã¹ãåºåïŒã¯ success ããªã¢ã³ãã«ã®ã¿ååšãããããèªã¿åãåã«åžžã«ãµãã¿ã€ãããã§ãã¯ããŠãã ããããã¹ãŠã®çµæãµãã¿ã€ã㯠total_cost_usdãusageãnum_turnsãããã³ session_id ãæã€ãããã³ã¹ãã远跡ãããšã©ãŒåŸã§ãåéã§ããŸããPython ã§ã¯ãtotal_cost_usd ãš usage ã¯ãªãã·ã§ã³ãšããŠåä»ããããäžéšã®ãšã©ãŒãã¹ã§ None ã§ããå¯èœæ§ãããããããã©ãŒãããããåã«ã¬ãŒãããŠãã ãããã³ã¹ããšäœ¿çšéã®è¿œè·¡ãåç
§ããŠãusage ãã£ãŒã«ãã®è§£éã®è©³çްã確èªããŠãã ããã
çµæã«ã¯ãã¢ãã«ãæçµã¿ãŒã³ã§çæã忢ããçç±ã瀺ã stop_reason ãã£ãŒã«ãïŒTypeScript ã§ã¯ string | nullãPython ã§ã¯ str | NoneïŒãå«ãŸããŸããäžè¬çãªå€ã¯ end_turnïŒã¢ãã«ãéåžžçµäºïŒãmax_tokensïŒåºåããŒã¯ã³å¶éã«éããïŒãããã³ refusalïŒã¢ãã«ããªã¯ãšã¹ããæåŠïŒã§ãããšã©ãŒçµæãµãã¿ã€ãã§ã¯ãstop_reason ã¯ã«ãŒããçµäºããåã®æåŸã®ã¢ã·ã¹ã¿ã³ãå¿çããã®å€ãæã¡ãŸããæåŠãæ€åºããã«ã¯ãstop_reason === "refusal"ïŒTypeScriptïŒãŸã㯠stop_reason == "refusal"ïŒPythonïŒããã§ãã¯ããŠãã ãããå®å
šãªã¿ã€ãã«ã€ããŠã¯ãSDKResultMessageïŒTypeScriptïŒãŸãã¯ResultMessageïŒPythonïŒãåç
§ããŠãã ããã
Hooks
Hooksã¯ãã«ãŒãã®ç¹å®ã®ãã€ã³ãã§çºç«ããã³ãŒã«ããã¯ã§ããããŒã«ãå®è¡ãããåãæ»ã£ãåŸããšãŒãžã§ã³ããçµäºãããšããªã©ãäžè¬çã«äœ¿çšãããããã¯ã¯æ¬¡ã®ãšããã§ãã
| ãã㯠| çºç«ææ | äžè¬çãªçšé |
|---|---|---|
PreToolUse |
ããŒã«å®è¡å | å ¥åãæ€èšŒãå±éºãªã³ãã³ããããã㯠|
PostToolUse |
ããŒã«æ»ãåŸ | åºåãç£æ»ãå¯äœçšãããªã¬ãŒ |
UserPromptSubmit |
ããã³ããéä¿¡æ | ããã³ããã«è¿œå ã³ã³ããã¹ããæ³šå ¥ |
Stop |
ãšãŒãžã§ã³ãçµäºæ | çµæãæ€èšŒãã»ãã·ã§ã³ç¶æ ãä¿å |
SubagentStart / SubagentStop |
ãµããšãŒãžã§ã³ãçæ/å®äºæ | 䞊åã¿ã¹ã¯çµæã远跡ããŠéçŽ |
PreCompact |
ã³ã³ããã¹ãå§çž®å | èŠçŽåã«å®å šãªãã©ã³ã¹ã¯ãªãããã¢ãŒã«ã€ã |
ããã¯ã¯ãšãŒãžã§ã³ãã®ã³ã³ããã¹ããŠã£ã³ããŠå
ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ããã»ã¹ã§å®è¡ããããããã³ã³ããã¹ããæ¶è²»ããŸãããããã¯ã¯ã«ãŒããã·ã§ãŒããµãŒãããããããšãã§ããŸããããŒã«åŒã³åºããæåŠãã PreToolUse ããã¯ã¯ãããå®è¡ãããã®ãé²ããClaude ã¯ä»£ããã«æåŠã¡ãã»ãŒãžãåãåããŸãã
äž¡æ¹ã® SDK ã¯ãã¹ãŠã®äžèšã®ã€ãã³ãããµããŒãããŠããŸããTypeScript SDK ã«ã¯ãPython ããŸã ãµããŒãããŠããªã远å ã®ã€ãã³ããå«ãŸããŠããŸããå®å šãªã€ãã³ããªã¹ããSDK ããšã®å©çšå¯èœæ§ãããã³å®å šãªã³ãŒã«ãã㯠API ã«ã€ããŠã¯ãããã¯ã§å®è¡ãå¶åŸ¡ãããåç §ããŠãã ããã
ãã¹ãŠããŸãšãã
ãã®äŸã¯ããã®ããŒãžã®äž»èŠãªæŠå¿µãã倱æãããã¹ããä¿®æ£ããåäžã®ãšãŒãžã§ã³ãã«çµã¿åãããŠããŸããèš±å¯ãããããŒã«ïŒèªåæ¿èªãããããããšãŒãžã§ã³ããèªåŸçã«å®è¡ãããïŒããããžã§ã¯ãèšå®ãããã³ã¿ãŒã³ãšæšè«åªåã®å®å šå¶éã§ãšãŒãžã§ã³ããæ§æããŸããã«ãŒããå®è¡ããããšãæœåšçãªåéã®ããã«ã»ãã·ã§ã³ ID ããã£ããã£ããæçµçµæãåŠçããç·ã³ã¹ããåºåããŸãã
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage
async def run_agent():
session_id = None
async for message in query(
prompt="Find and fix the bug causing test failures in the auth module",
options=ClaudeAgentOptions(
allowed_tools=[
"Read",
"Edit",
"Bash",
"Glob",
"Grep",
], # Listing tools here auto-approves them (no prompting)
setting_sources=[
"project"
], # Load CLAUDE.md, skills, hooks from current directory
max_turns=30, # Prevent runaway sessions
effort="high", # Thorough reasoning for complex debugging
),
):
# Handle the final result
if isinstance(message, ResultMessage):
session_id = message.session_id # Save for potential resumption
if message.subtype == "success":
print(f"Done: {message.result}")
elif message.subtype == "error_max_turns":
# Agent ran out of turns. Resume with a higher limit.
print(f"Hit turn limit. Resume session {session_id} to continue.")
elif message.subtype == "error_max_budget_usd":
print("Hit budget limit.")
else:
print(f"Stopped: {message.subtype}")
if message.total_cost_usd is not None:
print(f"Cost: ${message.total_cost_usd:.4f}")
asyncio.run(run_agent())
import { query } from "@anthropic-ai/claude-agent-sdk";
let sessionId: string | undefined;
for await (const message of query({
prompt: "Find and fix the bug causing test failures in the auth module",
options: {
allowedTools: ["Read", "Edit", "Bash", "Glob", "Grep"], // Listing tools here auto-approves them (no prompting)
settingSources: ["project"], // Load CLAUDE.md, skills, hooks from current directory
maxTurns: 30, // Prevent runaway sessions
effort: "high" // Thorough reasoning for complex debugging
}
})) {
// Save the session ID to resume later if needed
if (message.type === "system" && message.subtype === "init") {
sessionId = message.session_id;
}
// Handle the final result
if (message.type === "result") {
if (message.subtype === "success") {
console.log(`Done: ${message.result}`);
} else if (message.subtype === "error_max_turns") {
// Agent ran out of turns. Resume with a higher limit.
console.log(`Hit turn limit. Resume session ${sessionId} to continue.`);
} else if (message.subtype === "error_max_budget_usd") {
console.log("Hit budget limit.");
} else {
console.log(`Stopped: ${message.subtype}`);
}
console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);
}
}
次ã®ã¹ããã
ã«ãŒããçè§£ããã®ã§ãæ§ç¯ããŠãããã®ã«å¿ããŠãããã«è¡ãã¹ãå ŽæããããŸãã
- ãŸã ãšãŒãžã§ã³ããå®è¡ããŠããŸãããïŒ ã¯ã€ãã¯ã¹ã¿ãŒãããå§ããŠãSDK ãã€ã³ã¹ããŒã«ããå®å šãªäŸããšã³ãããŒãšã³ãã§å®è¡ããŠãã ããã
- ãããžã§ã¯ãã«ããã¯ããæºåãã§ããŠããŸããïŒ CLAUDE.mdãã¹ãã«ããã¡ã€ã«ã·ã¹ãã ããã¯ãããŒãããŠããšãŒãžã§ã³ãããããžã§ã¯ãèŠçŽã«èªåçã«åŸãããã«ããŸãã
- ã€ã³ã¿ã©ã¯ãã£ã UI ãæ§ç¯ããŠããŸããïŒ ã¹ããªãŒãã³ã°ãæå¹ã«ããŠãã«ãŒããå®è¡ããããšãã«ã©ã€ãããã¹ããšããŒã«åŒã³åºãã衚瀺ããŸãã
- ãšãŒãžã§ã³ããäœãã§ãããã«ã€ããŠããå³å¯ãªå¶åŸ¡ãå¿ èŠã§ããïŒ æš©éã§ããŒã«ã¢ã¯ã»ã¹ãããã¯ããŠã³ããããã¯ã䜿çšããŠãå®è¡åã«ããŒã«åŒã³åºããç£æ»ããããã¯ããŸãã¯å€æããŸãã
- é·æéãŸãã¯é«ã³ã¹ãã®ã¿ã¹ã¯ãå®è¡ããŠããŸããïŒ éé¢ãããäœæ¥ããµããšãŒãžã§ã³ãã«ãªãããŒãããŠãã¡ã€ã³ã³ã³ããã¹ãããªãŒã³ã«ä¿ã¡ãŸãã
agentic ã«ãŒãã®ããåºãæŠå¿µçãªå³ïŒSDK åºæã§ã¯ãªãïŒã«ã€ããŠã¯ãClaude Code ã®ä»çµã¿ãåç §ããŠãã ããã