Agent SDK で CLAUDE.md を読み込む|設定の範囲

この記事の要点
- 何も指定しないと、Agent SDK はふだんの Claude Code と同じく、ユーザー・プロジェクト・ローカルの3つの設定と CLAUDE.md を読む
- settingSources で読む範囲を選べる。空の一覧にすると、コードで渡したものだけで動く
- 会社が配る管理用の設定・自動メモリなどは、settingSources に関係なく読まれる。お客さまごとに分けるなら別の仕組みが要る
Claude Code で使っている CLAUDE.md の社内ルールや、スキル・フックを、自分で作る AI エージェントでもそのまま使いたい という時に知っておきたいのが、Agent SDK の「設定の読み込み元」です。何をどこから読むかを決めておかないと、「手元では守られたルールが、別の環境では守られない」ということが起きます。
この記事では、公式ドキュメント「Use Claude Code features in the SDK」(2026年11月12日確認)にもとづいて整理します。CLAUDE.md の書き方そのものは CLAUDE.mdの書き方 で解説しています。
結論:何も書かなければ、ふだんの Claude Code と同じものを読む
settingSources を指定しないと、Agent SDK は Claude Code と同じ範囲を読みます。 つまり、ユーザー・プロジェクト・ローカルの3つの設定、CLAUDE.md、.claude の中のスキル・エージェント・コマンドです。
逆に 空の一覧を渡すと、これらを読まずに、コードで渡したものだけで動きます。 決まった動きだけをさせたい時はこちらを使います。

3つの読み込み元
| 読み込み元 | 読むもの | 場所の目安 |
|---|---|---|
| project | プロジェクトの設定とフック・CLAUDE.md とルール・スキルなど | 作業フォルダの .claude と、その上のフォルダ |
| user | 自分の設定・自分の CLAUDE.md とルール・スキルなど | ホームの .claude |
| local | CLAUDE.local.md・ローカルの設定ファイル | 作業フォルダの .claude など |
どこを「プロジェクト」とみなすかは、作業フォルダ(cwd)で決まります。 プロジェクトの settings.json は作業フォルダの .claude からだけ読まれ、上のフォルダまでは探しに行きません。一方、CLAUDE.md とルールは上のフォルダからも読まれます。
CLAUDE.md はどこから読まれるか
- 作業フォルダの CLAUDE.md:project を入れていれば、始まりに読まれる
- 上のフォルダの CLAUDE.md:同じく始まりに読まれる
- 下のフォルダの CLAUDE.md:そのフォルダの作業をする時に、必要に応じて読まれる
- ホームの CLAUDE.md:user を入れていれば読まれる
どれも足し算で、どれかが勝つという決まりはありません。 プロジェクトと自分の CLAUDE.md で指示がぶつかると、どちらに従うかは Claude の読み方しだいになります。ぶつからないように書くか、細かいほうのファイルに「こちらを優先する」と書いておくのが公式のすすめです。
指定に関係なく読まれるもの
settingSources を空にしても、次のものは読まれます。 ここを知らないと「何も読ませていないはず」が成り立ちません。
| 読まれるもの | 止め方 |
|---|---|
| 会社が配る管理用の設定 | 止められない(会社の方針) |
| ホームの .claude.json の全体設定 | 置き場所を環境変数で変える |
| 自動メモリ(プロジェクトごとのメモ) | 設定で autoMemoryEnabled を false にするか、環境変数で止める |
| claude.ai でつないだコネクタ | claude.ai のログインで動いている時に読まれる |
公式は、お客さまごとにエージェントを分ける使い方(マルチテナント)では、既定の設定に頼らないように と注意しています。お客さまごとに別のファイルの置き場所で動かし、settingSources を空にして、自動メモリも止める形です。安全に置く方法は Agent SDK の安全な置き方 で解説しています。
フックは2つの書き方を一緒に使える
| 書き方 | 向いていること |
|---|---|
| ファイル(settings.json) | 画面の Claude Code と SDK で同じフックを使い回す |
| コード(query に渡す関数) | アプリの中の処理と組み合わせる・細かく判断して返す |
ファイルのフックは、読み込み元に入れた時だけ動きます。コードのフックは、どのエージェントが動かしたかの情報も受け取れます。コードでの書き方は Agent SDK のフック にまとめています。
やりたいことから選ぶ
| やりたいこと | 使うもの |
|---|---|
| いつも守らせるルール | CLAUDE.md(project を読み込む) |
| 必要な時だけ読ませる手順 | スキル(読み込み元+skills の指定) |
| 別の担当に分けて作業させる | サブエージェント |
| 道具を使う前後に決まった処理 | フック |
| 外のサービスとつなぐ | MCP |
機能を足すほど、そのぶん会話の文脈を使います。 必要なものだけを読み込むのが、速さと費用の両方に効きます。スキルの絞り方は Agent SDK でスキルを使う を見てください。
よくある質問
CLAUDE.md を使わずに、ルールを渡すことはできますか?
できます。 システムプロンプトにルールを書いて渡す方法があります。画面の Claude Code と SDK で同じルールを共有したい時は CLAUDE.md、SDK だけで完結させたい時はシステムプロンプト、と使い分けます。書き方は Agent SDK のシステムプロンプト で解説しています。
手元では守られたルールが、サーバーでは守られません
作業フォルダ(cwd)がプロジェクトのフォルダを指しているかと、settingSources に project が入っているかを確かめます。サーバーでは、ホームの CLAUDE.md が無いことも多いので、必要なルールはプロジェクト側に書いておきます。
まとめ
- 指定しなければ、Claude Code と同じ3つの読み込み元 を読む
- settingSources で範囲を選び、空にすればコードで渡したものだけで動く
- 管理用の設定や自動メモリは 指定に関係なく読まれる ので、分けたい時は別の仕組みで
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


