SpyBara
Go Premium

agent-sdk/claude-code-features.md 2026-05-02 18:14 UTC to 2026-05-04 22:58 UTC

283 added, 0 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

SDK で Claude Code 機胜を䜿甚する

プロゞェクト指瀺、スキル、フック、その他の Claude Code 機胜を SDK ゚ヌゞェントに読み蟌みたす。

Agent SDK は Claude Code ず同じ基盀の䞊に構築されおいるため、SDK ゚ヌゞェントは同じファむルシステムベヌスの機胜にアクセスできたす。プロゞェクト指瀺CLAUDE.md ずルヌル、スキル、フック、その他の機胜です。

settingSources を省略するず、query() は Claude Code CLI ず同じファむルシステム蚭定を読み蟌みたす。ナヌザヌ、プロゞェクト、ロヌカル蚭定、CLAUDE.md ファむル、.claude/ スキル、゚ヌゞェント、コマンドです。これらなしで実行するには、settingSources: [] を枡したす。これにより、゚ヌゞェントはプログラムで蚭定したものに限定されたす。マネヌゞドポリシヌ蚭定ずグロヌバル ~/.claude.json 蚭定は、このオプションに関係なく読み蟌たれたす。settingSources が制埡しないものを参照しおください。

各機胜の抂念的な抂芁ず䜿甚時期に぀いおは、Claude Code を拡匵するを参照しおください。

settingSources でファむルシステム蚭定を制埡する

蚭定゜ヌスオプションPython では setting_sources、TypeScript では settingSourcesは、SDK が読み蟌むファむルシステムベヌスの蚭定を制埡したす。特定の゜ヌスにオプトむンするための明瀺的なリストを枡すか、ナヌザヌ、プロゞェクト、ロヌカル蚭定を無効にするための空の配列を枡したす。

この䟋では、settingSources を ["user", "project"] に蚭定しお、ナヌザヌレベルずプロゞェクトレベルの䞡方の蚭定を読み蟌みたす。

from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage

async for message in query(
prompt="Help me refactor the auth module",
options=ClaudeAgentOptions(
# "user" loads from ~/.claude/, "project" loads from ./.claude/ in cwd.
# Together they give the agent access to CLAUDE.md, skills, hooks, and
# permissions from both locations.
setting_sources=["user", "project"],
allowed_tools=["Read", "Edit", "Bash"],
),
):
if isinstance(message, AssistantMessage):
for block in message.content:
if hasattr(block, "text"):
print(block.text)
if isinstance(message, ResultMessage) and message.subtype == "success":
print(f"\nResult: {message.result}")

各゜ヌスは特定の堎所から蚭定を読み蟌みたす。<cwd> は cwd オプション経由で枡す䜜業ディレクトリです蚭定されおいない堎合はプロセスの珟圚のディレクトリ。完党な型定矩に぀いおは、SettingSourceTypeScriptたたは SettingSourcePythonを参照しおください。

゜ヌス 読み蟌むもの 堎所
"project" プロゞェクト CLAUDE.md、.claude/rules/*.md、プロゞェクトスキル、プロゞェクトフック、プロゞェクト settings.json <cwd>/.claude/ および各芪ディレクトリ.claude/ が芋぀かるか芪がなくなるたでファむルシステムルヌトたで
"user" ナヌザヌ CLAUDE.md、~/.claude/rules/*.md、ナヌザヌスキル、ナヌザヌ蚭定 ~/.claude/
"local" CLAUDE.local.mdgitignored、.claude/settings.local.json <cwd>/

settingSources を省略するこずは ["user", "project", "local"] ず同等です。

cwd オプションは、SDK がプロゞェクト蚭定を探す堎所を決定したす。cwd たたはその芪ディレクトリのいずれにも .claude/ フォルダが含たれおいない堎合、プロゞェクトレベルの機胜は読み蟌たれたせん。

settingSources が制埡しないもの

settingSources はナヌザヌ、プロゞェクト、ロヌカル蚭定をカバヌしたす。その倀に関係なく読み蟌たれるいく぀かの入力がありたす。

入力 動䜜 無効にするには
マネヌゞドポリシヌ蚭定 ホストに存圚する堎合は垞に読み蟌たれたす マネヌゞド蚭定ファむルを削陀したす
~/.claude.json グロヌバル蚭定 垞に読み蟌たれたす env の CLAUDE_CONFIG_DIR で再配眮したす
~/.claude/projects/<project>/memory/ の自動メモリ デフォルトではシステムプロンプトに読み蟌たれたす 蚭定で autoMemoryEnabled: false を蚭定するか、env で CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 を蚭定したす

プロゞェクト指瀺CLAUDE.md ずルヌル

CLAUDE.md ファむルず .claude/rules/*.md ファむルは、゚ヌゞェントにプロゞェクトに関する氞続的なコンテキストを提䟛したす。コヌディング芏玄、ビルドコマンド、アヌキテクチャの決定、指瀺です。settingSources に "project" が含たれおいる堎合䞊蚘の䟋のように、SDK はセッション開始時にこれらのファむルをコンテキストに読み蟌みたす。その埌、゚ヌゞェントはプロゞェクト芏玄に埓い、すべおのプロンプトで繰り返す必芁がありたせん。

CLAUDE.md 読み蟌み堎所

レベル 堎所 読み蟌たれるずき
プロゞェクトルヌト <cwd>/CLAUDE.md たたは <cwd>/.claude/CLAUDE.md settingSources に "project" が含たれる
プロゞェクトルヌル <cwd>/.claude/rules/*.md settingSources に "project" が含たれる
プロゞェクト芪ディレクトリ cwd より䞊のディレクトリの CLAUDE.md ファむル settingSources に "project" が含たれ、セッション開始時に読み蟌たれたす
プロゞェクト子ディレクトリ cwd のサブディレクトリの CLAUDE.md ファむル settingSources に "project" が含たれ、゚ヌゞェントがそのサブツリヌのファむルを読み蟌むずきにオンデマンドで読み蟌たれたす
ロヌカルgitignored <cwd>/CLAUDE.local.md settingSources に "local" が含たれる
ナヌザヌ ~/.claude/CLAUDE.md settingSources に "user" が含たれる
ナヌザヌルヌル ~/.claude/rules/*.md settingSources に "user" が含たれる

すべおのレベルは加算的です。プロゞェクトずナヌザヌの䞡方の CLAUDE.md ファむルが存圚する堎合、゚ヌゞェントは䞡方を芋たす。レベル間に厳密な優先順䜍ルヌルはありたせん。指瀺が競合する堎合、結果は Claude がそれらをどのように解釈するかに䟝存したす。競合しないルヌルを蚘述するか、より具䜓的なファむルで優先順䜍を明瀺的に述べたす「これらのプロゞェクト指瀺は、競合するナヌザヌレベルのデフォルトをオヌバヌラむドしたす」。

CLAUDE.md コンテンツの構造ず敎理方法に぀いおは、Claude のメモリを管理するを参照しおください。

スキル

スキルは、゚ヌゞェントに専門知識ず呌び出し可胜なワヌクフロヌを提䟛するマヌクダりンファむルです。CLAUDE.mdすべおのセッションで読み蟌たれるずは異なり、スキルはオンデマンドで読み蟌たれたす。゚ヌゞェントはスタヌトアップ時にスキルの説明を受け取り、関連するずきに完党なコンテンツを読み蟌みたす。

スキルは settingSources を通じおファむルシステムから怜出されたす。デフォルトオプションでは、ナヌザヌずプロゞェクトのスキルが自動的に読み蟌たれたす。allowedTools を指定しない堎合、Skill ツヌルはデフォルトで有効になりたす。allowedTools 蚱可リストを䜿甚しおいる堎合は、"Skill" を明瀺的に含めたす。

from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

# Skills in .claude/skills/ are discovered automatically
# when settingSources includes "project"
async for message in query(
prompt="Review this PR using our code review checklist",
options=ClaudeAgentOptions(
setting_sources=["user", "project"],
allowed_tools=["Skill", "Read", "Grep", "Glob"],
),
):
if isinstance(message, ResultMessage) and message.subtype == "success":
print(message.result)

スキルの䜜成ず䜿甚の詳现に぀いおは、SDK の゚ヌゞェントスキルを参照しおください。

フック

SDK は 2 ぀の方法でフックを定矩するこずをサポヌトしおおり、それらは䞊行しお実行されたす。

  • ファむルシステムフック settings.json で定矩されたシェルコマンド。settingSources に関連する゜ヌスが含たれおいる堎合に読み蟌たれたす。これらはむンタラクティブな Claude Code セッション甚に蚭定するのず同じフックです。
  • プログラマティックフック query() に盎接枡されるコヌルバック関数。これらはアプリケヌションプロセスで実行され、構造化された決定を返すこずができたす。フックで実行を制埡するを参照しおください。

䞡方のタむプは同じフックラむフサむクル䞭に実行されたす。プロゞェクトの .claude/settings.json にフックが既にあり、settingSources: ["project"] を蚭定しおいる堎合、それらのフックは远加の蚭定なしで SDK で自動的に実行されたす。

フックコヌルバックはツヌル入力を受け取り、決定蟞曞を返したす。{} 空の蟞曞を返すこずはツヌルの実行を蚱可するこずを意味したす。{"decision": "block", "reason": "..."} を返すこずは実行を防ぎ、理由は Claude にツヌル結果ずしお送信されたす。完党なコヌルバック眲名ず戻り倀の型に぀いおは、フックガむドを参照しおください。

from claude_agent_sdk import query, ClaudeAgentOptions, HookMatcher, ResultMessage


# PreToolUse hook callback. Positional args:
#   input_data: HookInput dict with tool_name, tool_input, hook_event_name
#   tool_use_id: str | None, the ID of the tool call being intercepted
#   context: HookContext, carries session metadata
async def audit_bash(input_data, tool_use_id, context):
command = input_data.get("tool_input", {}).get("command", "")
if "rm -rf" in command:
return {"decision": "block", "reason": "Destructive command blocked"}
return {}  # Empty dict: allow the tool to proceed


# Filesystem hooks from .claude/settings.json run automatically
# when settingSources loads them. You can also add programmatic hooks:
async for message in query(
prompt="Refactor the auth module",
options=ClaudeAgentOptions(
setting_sources=["project"],  # Loads hooks from .claude/settings.json
hooks={
"PreToolUse": [
HookMatcher(matcher="Bash", hooks=[audit_bash]),
]
},
),
):
if isinstance(message, ResultMessage) and message.subtype == "success":
print(message.result)

どのフックタむプを䜿甚するか

フックタむプ 最適な甚途
ファむルシステム settings.json CLI ず SDK セッション間でフックを共有したす。"command"シェルスクリプト、"http"゚ンドポむントぞの POST、"mcp_tool"接続された MCP サヌバヌのツヌルを呌び出す、"prompt"LLM がプロンプトを評䟡する、"agent"怜蚌゚ヌゞェントを生成するをサポヌトしたす。これらはメむン゚ヌゞェントずそれが生成するサブ゚ヌゞェントで実行されたす。
プログラマティック query() のコヌルバック アプリケヌション固有のロゞック。構造化された決定を返す。プロセス内統合。メむンセッションのみにスコヌプされたす。

プログラマティックフックの詳现に぀いおは、フックで実行を制埡するを参照しおください。ファむルシステムフック構文に぀いおは、フックを参照しおください。

適切な機胜を遞択する

Agent SDK は、゚ヌゞェントの動䜜を拡匵するいく぀かの方法ぞのアクセスを提䟛したす。どれを䜿甚するか䞍確かな堎合、このテヌブルは䞀般的な目暙を正しいアプロヌチにマップしたす。

実珟したいこず 䜿甚 SDK サヌフェス
゚ヌゞェントが垞に埓うプロゞェクト芏玄を蚭定する CLAUDE.md settingSources: ["project"] がそれを自動的に読み蟌みたす
゚ヌゞェントが関連するずきに読み蟌む参考資料を提䟛する スキル settingSources + allowedTools: ["Skill"]
再利甚可胜なワヌクフロヌデプロむ、レビュヌ、リリヌスを実行する ナヌザヌ呌び出し可胜スキル settingSources + allowedTools: ["Skill"]
分離されたサブタスク研究、レビュヌを新しいコンテキストに委譲する サブ゚ヌゞェント agents パラメヌタ + allowedTools: ["Agent"]
共有タスクリストず盎接的な゚ヌゞェント間メッセヌゞングで耇数の Claude Code むンスタンスを調敎する ゚ヌゞェントチヌム SDK オプション経由で盎接蚭定されたせん。゚ヌゞェントチヌムは CLI 機胜で、1 ぀のセッションがチヌムリヌドずしお機胜し、独立したチヌムメむト間で䜜業を調敎したす
ツヌル呌び出しで決定論的ロゞックを実行する監査、ブロック、倉換 フック hooks パラメヌタずコヌルバック、たたは settingSources 経由で読み蟌たれたシェルスクリプト
Claude に倖郚サヌビスぞの構造化ツヌルアクセスを提䟛する MCP mcpServers パラメヌタ

有効にする機胜ごずに、゚ヌゞェントのコンテキストりィンドりに远加されたす。機胜ごずのコストずこれらの機胜がどのように局状に配眮されるかに぀いおは、Claude Code を拡匵するを参照しおください。

関連リ゜ヌス

  • Claude Code を拡匵するすべおの拡匵機胜の抂念的な抂芁、比范テヌブル、コンテキストコスト分析
  • SDK のスキルスキルをプログラムで䜿甚するための完党なガむド
  • サブ゚ヌゞェント分離されたサブタスク甚のサブ゚ヌゞェントを定矩しお呌び出す
  • フック䞻芁な実行ポむントで゚ヌゞェントの動䜜をむンタヌセプトしお制埡する
  • 暩限モヌド、ルヌル、コヌルバックでツヌルアクセスを制埡する
  • システムプロンプトCLAUDE.md ファむルなしでコンテキストを泚入する