142. バグのあるコードを含むファイルを作成する142. バグのあるコードを含むファイルを作成する
153. バグを自動的に見つけて修正するエージェントを実行する153. バグを自動的に見つけて修正するエージェントを実行する
16 16
17<h2 id="prerequisites">17## 前提条件
18 前提条件
19</h2>
20 18
21* **Node.js 18+** または **Python 3.10+**19* **Node.js 18+** または **Python 3.10+**
22* **Anthropic アカウント**。アカウントをお持ちでない場合は、[こちらでサインアップ](https://platform.claude.com/)してください。20* **Anthropic アカウント**。アカウントをお持ちでない場合は、[こちらでサインアップ](https://platform.claude.com/)してください。
23 21
24<h2 id="setup">22## セットアップ
25 セットアップ
26</h2>
27
28<Steps>
29 <Step title="プロジェクトフォルダを作成する">
30 このクイックスタート用に新しいディレクトリを作成します:
31 23
32 ```bash theme={null}24**1. プロジェクトフォルダを作成する**
33 mkdir my-agent
34 cd my-agent
35 ```
36
37 独自のプロジェクトの場合、任意のフォルダから SDK を実行できます。デフォルトでは、そのディレクトリとそのサブディレクトリ内のファイルにアクセスできます。
38 </Step>
39
40 <Step title="SDK をインストールする">
41 お使いの言語用の Agent SDK パッケージをインストールします:
42 25
43 <Tabs>26このクイックスタート用に新しいディレクトリを作成します:
44 <Tab title="TypeScript(新規プロジェクト)">
45 ```bash theme={null}
46 npm init -y
47 npm pkg set type=module
48 npm install @anthropic-ai/claude-agent-sdk
49 npm install --save-dev tsx
50 ```
51 27
52 `package.json` で `"type": "module"` を設定すると、エージェントスクリプトでトップレベルの `await` を使用でき、[tsx](https://tsx.hirok.io) は TypeScript ファイルを直接実行します。npm はインストールが成功すると `added N packages` と出力します。28```bash theme={null}
53 </Tab>29mkdir my-agent
30cd my-agent
31```
32
33独自のプロジェクトの場合、任意のフォルダから SDK を実行できます。デフォルトでは、そのディレクトリとそのサブディレクトリ内のファイルにアクセスできます。
34
35**2. SDK をインストールする**
36
37お使いの言語用の Agent SDK パッケージをインストールします:
38
39**TypeScript(新規プロジェクト)**
54 40
55 <Tab title="TypeScript(既存プロジェクト)">41```bash theme={null}
56 ```bash theme={null}42npm init -y
57 npm install @anthropic-ai/claude-agent-sdk43npm pkg set type=module
58 npm install --save-dev tsx44npm install @anthropic-ai/claude-agent-sdk
59 ```45npm install --save-dev tsx
46```
47
48`package.json` で `"type": "module"` を設定すると、エージェントスクリプトでトップレベルの `await` を使用でき、[tsx](https://tsx.hirok.io) は TypeScript ファイルを直接実行します。npm はインストールが成功すると `added N packages` と出力します。
49
50**TypeScript(既存プロジェクト)**
51
52```bash theme={null}
53npm install @anthropic-ai/claude-agent-sdk
54npm install --save-dev tsx
55```
60 56
61 [tsx](https://tsx.hirok.io) は TypeScript ファイルを直接実行します。プロジェクトが CommonJS を使用している場合は、エージェントスクリプトを `agent.ts` の代わりに `agent.mts` という名前にしてください。`.mts` 拡張子により、tsx はファイルを ES モジュールとして扱うため、プロジェクト全体を ES モジュールに変換することなく、トップレベルの `await` が機能します。このクイックスタートの後の作成と実行のステップで、`agent.ts` の代わりに `agent.mts` を使用してください。57[tsx](https://tsx.hirok.io) は TypeScript ファイルを直接実行します。プロジェクトが CommonJS を使用している場合は、エージェントスクリプトを `agent.ts` の代わりに `agent.mts` という名前にしてください。`.mts` 拡張子により、tsx はファイルを ES モジュールとして扱うため、プロジェクト全体を ES モジュールに変換することなく、トップレベルの `await` が機能します。このクイックスタートの後の作成と実行のステップで、`agent.ts` の代わりに `agent.mts` を使用してください。
62 </Tab>58
59**Python(uv)**
60
61[uv](https://docs.astral.sh/uv/) をインストールしてください。これは仮想環境を自動的に処理する高速な Python パッケージマネージャーです。その後、プロジェクトを初期化して SDK を追加します:
62
63```bash theme={null}
64uv init
65uv add claude-agent-sdk
66```
67
68**Python(pip)**
69
70仮想環境を作成してアクティベートしてから、パッケージをインストールします。
71
72macOS または Linux の場合:
73
74```bash theme={null}
75python3 -m venv .venv
76source .venv/bin/activate
77pip install claude-agent-sdk
78```
63 79
64 <Tab title="Python(uv)">80Windows の場合:
65 [uv](https://docs.astral.sh/uv/) をインストールしてください。これは仮想環境を自動的に処理する高速な Python パッケージマネージャーです。その後、プロジェクトを初期化して SDK を追加します:
66 81
67 ```bash theme={null}82```powershell theme={null}
68 uv init83py -m venv .venv
69 uv add claude-agent-sdk84.venv\Scripts\Activate.ps1
70 ```85pip install claude-agent-sdk
71 </Tab>86```
72 87
73 <Tab title="Python(pip)">88PowerShell が実行ポリシーエラーで `Activate.ps1` をブロックする場合は、まず `Set-ExecutionPolicy -Scope Process RemoteSigned` を実行してください。
74 仮想環境を作成してアクティベートしてから、パッケージをインストールします。
75 89
76 macOS または Linux の場合:90> [!NOTE]
91>
92> TypeScript SDK と Python SDK の両方は、ネイティブ Claude Code バイナリをバンドルしているため、ほとんどのインストールでは Claude Code を別途インストールする必要がありません。一部のインストールではバンドルされたバイナリがありません:
93>
94> * pip が Python SDK のソース配布をプラットフォームホイールの代わりにインストールする場合(たとえば ARM64 Windows)、バイナリはバンドルされません。[Claude Code をネイティブにインストール](/docs/ja/setup#install-claude-code)してください。Python SDK は `PATH` 上でそれを見つけます。
95> * TypeScript SDK は npm オプション依存関係を通じてバイナリをインストールするため、それらをスキップするインストール(たとえば `npm ci --omit=optional`)は、サポートされているプラットフォームでもバイナリを取得しません。オプション依存関係をスキップせずに再インストールするか、[Claude Code をネイティブにインストール](/docs/ja/setup#install-claude-code)して `pathToClaudeCodeExecutable` をそのパスに設定してください。
77 96
78 ```bash theme={null}97**3. API キーを設定する**
79 python3 -m venv .venv
80 source .venv/bin/activate
81 pip install claude-agent-sdk
82 ```
83 98
84 Windows の場合:99[Claude Console](https://platform.claude.com/) から API キーを取得し、エージェントを実行するシェルで環境変数として設定します:
85 100
86 ```powershell theme={null}101**macOS / Linux**
87 py -m venv .venv
88 .venv\Scripts\Activate.ps1
89 pip install claude-agent-sdk
90 ```
91 102
92 PowerShell が実行ポリシーエラーで `Activate.ps1` をブロックする場合は、まず `Set-ExecutionPolicy -Scope Process RemoteSigned` を実行してください。103```bash theme={null}
93 </Tab>104export ANTHROPIC_API_KEY=your-api-key
94 </Tabs>105```
95 106
96 <Note>107**Windows(PowerShell)**
97 TypeScript SDK と Python SDK の両方は、ネイティブ Claude Code バイナリをバンドルしているため、ほとんどのインストールでは Claude Code を別途インストールする必要がありません。一部のインストールではバンドルされたバイナリがありません:
98 108
99 * pip が Python SDK のソース配布をプラットフォームホイールの代わりにインストールする場合(たとえば ARM64 Windows)、バイナリはバンドルされません。[Claude Code をネイティブにインストール](/docs/ja/setup#install-claude-code)してください。Python SDK は `PATH` 上でそれを見つけます。109```powershell theme={null}
100 * TypeScript SDK は npm オプション依存関係を通じてバイナリをインストールするため、それらをスキップするインストール(たとえば `npm ci --omit=optional`)は、サポートされているプラットフォームでもバイナリを取得しません。オプション依存関係をスキップせずに再インストールするか、[Claude Code をネイティブにインストール](/docs/ja/setup#install-claude-code)して `pathToClaudeCodeExecutable` をそのパスに設定してください。110$env:ANTHROPIC_API_KEY = "your-api-key"
101 </Note>111```
102 </Step>
103 112
104 <Step title="API キーを設定する">113SDK はエージェントを実行するプロセスの環境からキーを読み取ります。`.env` ファイルを自動的に読み込みません。キーを `.env` ファイルに保持している場合は、SDK を呼び出す前に、たとえば `dotenv` パッケージを使用して自分で読み込んでください。
105 [Claude Console](https://platform.claude.com/) から API キーを取得し、エージェントを実行するシェルで環境変数として設定します:
106 114
107 <Tabs>115SDK はサードパーティ API プロバイダーを介した認証もサポートしています:
108 <Tab title="macOS / Linux">
109 ```bash theme={null}
110 export ANTHROPIC_API_KEY=your-api-key
111 ```
112 </Tab>
113 116
114 <Tab title="Windows(PowerShell)">117* **Amazon Bedrock**:`CLAUDE_CODE_USE_BEDROCK=1` 環境変数を設定し、AWS 認証情報を構成します
115 ```powershell theme={null}118* **Claude Platform on AWS**:`CLAUDE_CODE_USE_ANTHROPIC_AWS=1` と `ANTHROPIC_AWS_WORKSPACE_ID` を設定し、AWS 認証情報を構成します
116 $env:ANTHROPIC_API_KEY = "your-api-key"119* **Google Cloud の Agent Platform**:`CLAUDE_CODE_USE_VERTEX=1` 環境変数を設定し、Google Cloud 認証情報を構成します
117 ```120* **Microsoft Foundry**:`CLAUDE_CODE_USE_FOUNDRY=1` 環境変数を設定し、Azure 認証情報を構成します
118 </Tab>
119 </Tabs>
120 121
121 SDK はエージェントを実行するプロセスの環境からキーを読み取ります。`.env` ファイルを自動的に読み込みません。キーを `.env` ファイルに保持している場合は、SDK を呼び出す前に、たとえば `dotenv` パッケージを使用して自分で読み込んでください。122詳細については、[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)、または [Microsoft Foundry](/docs/ja/microsoft-foundry) のセットアップガイドを参照してください。
122 123
123 SDK はサードパーティ API プロバイダーを介した認証もサポートしています:124> [!NOTE]
124 125>
125 * **Amazon Bedrock**:`CLAUDE_CODE_USE_BEDROCK=1` 環境変数を設定し、AWS 認証情報を構成します126> 事前に承認されていない限り、Anthropic は、Claude Agent SDK で構築されたエージェントを含む、サードパーティ開発者が claude.ai ログインまたはレート制限を提供することを許可していません。代わりに、このドキュメントで説明されている API キー認証方法を使用してください。
126 * **Claude Platform on AWS**:`CLAUDE_CODE_USE_ANTHROPIC_AWS=1` と `ANTHROPIC_AWS_WORKSPACE_ID` を設定し、AWS 認証情報を構成します
127 * **Google Cloud の Agent Platform**:`CLAUDE_CODE_USE_VERTEX=1` 環境変数を設定し、Google Cloud 認証情報を構成します
128 * **Microsoft Foundry**:`CLAUDE_CODE_USE_FOUNDRY=1` 環境変数を設定し、Azure 認証情報を構成します
129
130 詳細については、[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)、または [Microsoft Foundry](/docs/ja/microsoft-foundry) のセットアップガイドを参照してください。
131 127
132 <Note>128## バグのあるファイルを作成する
133 事前に承認されていない限り、Anthropic は、Claude Agent SDK で構築されたエージェントを含む、サードパーティ開発者が claude.ai ログインまたはレート制限を提供することを許可していません。代わりに、このドキュメントで説明されている API キー認証方法を使用してください。
134 </Note>
135 </Step>
136</Steps>
137
138<h2 id="create-a-buggy-file">
139 バグのあるファイルを作成する
140</h2>
141 129
142このクイックスタートでは、コード内のバグを見つけて修正できるエージェントを構築する手順を説明します。まず、エージェントが修正するための意図的なバグを含むファイルが必要です。`my-agent` ディレクトリに `utils.py` を作成し、次のコードを貼り付けます:130このクイックスタートでは、コード内のバグを見つけて修正できるエージェントを構築する手順を説明します。まず、エージェントが修正するための意図的なバグを含むファイルが必要です。`my-agent` ディレクトリに `utils.py` を作成し、次のコードを貼り付けます:
143 131
1581. `calculate_average([])` はゼロで除算してクラッシュします1461. `calculate_average([])` はゼロで除算してクラッシュします
1592. `get_user_name(None)` は TypeError でクラッシュします1472. `get_user_name(None)` は TypeError でクラッシュします
160 148
161<h2 id="build-an-agent-that-finds-and-fixes-bugs">149## バグを見つけて修正するエージェントを構築する
162 バグを見つけて修正するエージェントを構築する
163</h2>
164 150
165Python SDK を使用している場合は `agent.py` を作成し、TypeScript の場合は `agent.ts` を作成します。既存のプロジェクトが CommonJS を使用している場合は、代わりに `agent.mts` を使用してください:151Python SDK を使用している場合は `agent.py` を作成し、TypeScript の場合は `agent.ts` を作成します。既存のプロジェクトが CommonJS を使用している場合は、代わりに `agent.mts` を使用してください:
166 152
167<CodeGroup>153```python Python theme={null}
168 ```python Python theme={null}154import asyncio
169 import asyncio155from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
170 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
171 156
172 157
173 async def main():158async def main():
174 # Agentic ループ:Claude が動作するときにメッセージをストリーミングします159 # Agentic ループ:Claude が動作するときにメッセージをストリーミングします
175 async for message in query(160 async for message in query(
176 prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",161 prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",
190 print(f"Done: {message.subtype}") # 最終結果175 print(f"Done: {message.subtype}") # 最終結果
191 176
192 177
193 asyncio.run(main())178asyncio.run(main())
194 ```179```
195 180
196 ```typescript TypeScript theme={null}181```typescript TypeScript theme={null}
197 import { query } from "@anthropic-ai/claude-agent-sdk";182import { query } from "@anthropic-ai/claude-agent-sdk";
198 183
199 // Agentic ループ:Claude が動作するときにメッセージをストリーミングします184// Agentic ループ:Claude が動作するときにメッセージをストリーミングします
200 for await (const message of query({185for await (const message of query({
201 prompt: "Review utils.py for bugs that would cause crashes. Fix any issues you find.",186 prompt: "Review utils.py for bugs that would cause crashes. Fix any issues you find.",
202 options: {187 options: {
203 allowedTools: ["Read", "Edit", "Glob"], // これらのツールを自動承認します188 allowedTools: ["Read", "Edit", "Glob"], // これらのツールを自動承認します
204 permissionMode: "acceptEdits" // ファイル編集を自動承認します189 permissionMode: "acceptEdits" // ファイル編集を自動承認します
205 }190 }
206 })) {191})) {
207 // 人間が読める出力を印刷します192 // 人間が読める出力を印刷します
208 if (message.type === "assistant" && message.message?.content) {193 if (message.type === "assistant" && message.message?.content) {
209 for (const block of message.message.content) {194 for (const block of message.message.content) {
216 } else if (message.type === "result") {201 } else if (message.type === "result") {
217 console.log(`Done: ${message.subtype}`); // 最終結果202 console.log(`Done: ${message.subtype}`); // 最終結果
218 }203 }
219 }204}
220 ```205```
221</CodeGroup>
222 206
223このコードには 3 つの主要な部分があります:207このコードには 3 つの主要な部分があります:
224 208
232 216
233ループ内のメッセージ処理は、人間が読める出力をフィルタリングします。フィルタリングなしでは、システム初期化と内部状態を含む生のメッセージオブジェクトが表示されます。これはデバッグに役立ちますが、そうでない場合はノイズが多くなります。217ループ内のメッセージ処理は、人間が読める出力をフィルタリングします。フィルタリングなしでは、システム初期化と内部状態を含む生のメッセージオブジェクトが表示されます。これはデバッグに役立ちますが、そうでない場合はノイズが多くなります。
234 218
235<Note>219> [!NOTE]
236 この例はストリーミングを使用してリアルタイムで進行状況を表示します。ライブ出力が不要な場合(バックグラウンドジョブや CI パイプラインなど)、すべてのメッセージを一度に収集できます。詳細については、[ストリーミング対単一ターンモード](/docs/ja/agent-sdk/streaming-vs-single-mode) を参照してください。220>
237</Note>221> この例はストリーミングを使用してリアルタイムで進行状況を表示します。ライブ出力が不要な場合(バックグラウンドジョブや CI パイプラインなど)、すべてのメッセージを一度に収集できます。詳細については、[ストリーミング対単一ターンモード](/docs/ja/agent-sdk/streaming-vs-single-mode) を参照してください。
238 222
239<h3 id="run-your-agent">223### エージェントを実行する
240 エージェントを実行する
241</h3>
242 224
243エージェントの準備ができました。次のコマンドで実行します:225エージェントの準備ができました。次のコマンドで実行します:
244 226
245<Tabs>227**TypeScript**
246 <Tab title="TypeScript">228
247 ```bash theme={null}229```bash theme={null}
248 npx tsx agent.ts230npx tsx agent.ts
249 ```231```
250 232
251 スクリプトを `agent.mts` という名前にした場合は、代わりに `npx tsx agent.mts` を実行してください。233スクリプトを `agent.mts` という名前にした場合は、代わりに `npx tsx agent.mts` を実行してください。
252 </Tab>
253 234
254 <Tab title="Python(uv)">235**Python(uv)**
255 ```bash theme={null}236
256 uv run agent.py237```bash theme={null}
257 ```238uv run agent.py
258 </Tab>239```
259 240
260 <Tab title="Python(pip)">241**Python(pip)**
261 仮想環境がまだアクティブな状態で:
262 242
263 ```bash theme={null}243仮想環境がまだアクティブな状態で:
264 python agent.py244
265 ```245```bash theme={null}
266 </Tab>246python agent.py
267</Tabs>247```
268 248
269実行すると、エージェントは推論と呼び出す各ツールを印刷し、`Done: success` で終了します。実行後、`utils.py` を確認します。空のリストと null ユーザーを処理する防御的なコードが表示されます。エージェントは自律的に:249実行すると、エージェントは推論と呼び出す各ツールを印刷し、`Done: success` で終了します。実行後、`utils.py` を確認します。空のリストと null ユーザーを処理する防御的なコードが表示されます。エージェントは自律的に:
270 250
274 254
275これが Agent SDK を異なるものにする理由です:Claude は、実装するよう求める代わりに、ツールを直接実行します。255これが Agent SDK を異なるものにする理由です:Claude は、実装するよう求める代わりに、ツールを直接実行します。
276 256
277<Note>257> [!NOTE]
278 `Not logged in` や `Invalid API key` などの認証エラーが表示される場合は、エージェントを実行するシェルで `ANTHROPIC_API_KEY` 環境変数を設定していることを確認してください。SDK は `.env` ファイルを自動的に読み込みません。258>
279 259> `Not logged in` や `Invalid API key` などの認証エラーが表示される場合は、エージェントを実行するシェルで `ANTHROPIC_API_KEY` 環境変数を設定していることを確認してください。SDK は `.env` ファイルを自動的に読み込みません。
280 これらおよび他の認証エラーの原因と修正については、エラーリファレンスの [認証エラー](/docs/ja/errors#authentication-errors) を参照してください。260>
281</Note>261> これらおよび他の認証エラーの原因と修正については、エラーリファレンスの [認証エラー](/docs/ja/errors#authentication-errors) を参照してください。
282 262
283<h3 id="try-other-prompts">263### 他のプロンプトを試す
284 他のプロンプトを試す
285</h3>
286 264
287エージェントがセットアップされたので、いくつかの異なるプロンプトを試してください:265エージェントがセットアップされたので、いくつかの異なるプロンプトを試してください:
288 266
290* `"Add type hints to all functions in utils.py"`268* `"Add type hints to all functions in utils.py"`
291* `"Create a README.md documenting the functions in utils.py"`269* `"Create a README.md documenting the functions in utils.py"`
292 270
293<h3 id="customize-your-agent">271### エージェントをカスタマイズする
294 エージェントをカスタマイズする
295</h3>
296 272
297オプションを変更することで、エージェントの動作を変更できます。いくつかの例を次に示します:273オプションを変更することで、エージェントの動作を変更できます。いくつかの例を次に示します:
298 274
299**Web 検索機能を追加する:**275**Web 検索機能を追加する:**
300 276
301<CodeGroup>277```python Python theme={null}
302 ```python Python theme={null}278options = ClaudeAgentOptions(
303 options = ClaudeAgentOptions(
304 allowed_tools=["Read", "Edit", "Glob", "WebSearch"], permission_mode="acceptEdits"279 allowed_tools=["Read", "Edit", "Glob", "WebSearch"], permission_mode="acceptEdits"
305 )280)
306 ```281```
307 282
308 ```typescript TypeScript hidelines={1,-1} theme={null}283```typescript TypeScript hidelines={1,-1} theme={null}
309 const _ = {284const _ = {
310 options: {285 options: {
311 allowedTools: ["Read", "Edit", "Glob", "WebSearch"],286 allowedTools: ["Read", "Edit", "Glob", "WebSearch"],
312 permissionMode: "acceptEdits"287 permissionMode: "acceptEdits"
313 }288 }
314 };289};
315 ```290```
316</CodeGroup>
317 291
318**Claude にカスタムシステムプロンプトを提供する:**292**Claude にカスタムシステムプロンプトを提供する:**
319 293
320<CodeGroup>294```python Python theme={null}
321 ```python Python theme={null}295options = ClaudeAgentOptions(
322 options = ClaudeAgentOptions(
323 allowed_tools=["Read", "Edit", "Glob"],296 allowed_tools=["Read", "Edit", "Glob"],
324 permission_mode="acceptEdits",297 permission_mode="acceptEdits",
325 system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines.",298 system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines.",
326 )299)
327 ```300```
328 301
329 ```typescript TypeScript hidelines={1,-1} theme={null}302```typescript TypeScript hidelines={1,-1} theme={null}
330 const _ = {303const _ = {
331 options: {304 options: {
332 allowedTools: ["Read", "Edit", "Glob"],305 allowedTools: ["Read", "Edit", "Glob"],
333 permissionMode: "acceptEdits",306 permissionMode: "acceptEdits",
334 systemPrompt: "You are a senior Python developer. Always follow PEP 8 style guidelines."307 systemPrompt: "You are a senior Python developer. Always follow PEP 8 style guidelines."
335 }308 }
336 };309};
337 ```310```
338</CodeGroup>
339 311
340**ターミナルでコマンドを実行する:**312**ターミナルでコマンドを実行する:**
341 313
342<CodeGroup>314```python Python theme={null}
343 ```python Python theme={null}315options = ClaudeAgentOptions(
344 options = ClaudeAgentOptions(
345 allowed_tools=["Read", "Edit", "Glob", "Bash"], permission_mode="acceptEdits"316 allowed_tools=["Read", "Edit", "Glob", "Bash"], permission_mode="acceptEdits"
346 )317)
347 ```318```
348 319
349 ```typescript TypeScript hidelines={1,-1} theme={null}320```typescript TypeScript hidelines={1,-1} theme={null}
350 const _ = {321const _ = {
351 options: {322 options: {
352 allowedTools: ["Read", "Edit", "Glob", "Bash"],323 allowedTools: ["Read", "Edit", "Glob", "Bash"],
353 permissionMode: "acceptEdits"324 permissionMode: "acceptEdits"
354 }325 }
355 };326};
356 ```327```
357</CodeGroup>
358 328
359`Bash` を有効にして、次を試してください:`"Write unit tests for utils.py, run them, and fix any failures"`329`Bash` を有効にして、次を試してください:`"Write unit tests for utils.py, run them, and fix any failures"`
360 330
361各スニペットは同じオプションオブジェクトのフィールドを設定します。詳細については、[エージェントを構成する](/docs/ja/agent-sdk/configuration) を参照してください。331各スニペットは同じオプションオブジェクトのフィールドを設定します。詳細については、[エージェントを構成する](/docs/ja/agent-sdk/configuration) を参照してください。
362 332
363<h2 id="key-concepts">333## 主要な概念
364 主要な概念
365</h2>
366 334
367**ツール** はエージェントが何ができるかを制御します:335**ツール** はエージェントが何ができるかを制御します:
368 336
374 342
375**権限モード** は、必要な人間の監視の量を制御します。SDK は、アクティブなモードをあなたの許可ルールと拒否ルールと共に、[権限がどのように評価されるか](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated) で説明されている固定の順序で評価します。モードの完全なリスト、その動作、および各モードをいつ使用するかについては、[エージェントループの仕組みの権限モード](/docs/ja/agent-sdk/agent-loop#permission-mode) を参照してください。343**権限モード** は、必要な人間の監視の量を制御します。SDK は、アクティブなモードをあなたの許可ルールと拒否ルールと共に、[権限がどのように評価されるか](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated) で説明されている固定の順序で評価します。モードの完全なリスト、その動作、および各モードをいつ使用するかについては、[エージェントループの仕組みの権限モード](/docs/ja/agent-sdk/agent-loop#permission-mode) を参照してください。
376 344
377<h2 id="next-steps">345## 次のステップ
378 次のステップ
379</h2>
380 346
381最初のエージェントを作成したので、その機能を拡張し、ユースケースに合わせてカスタマイズする方法を学びます:347最初のエージェントを作成したので、その機能を拡張し、ユースケースに合わせてカスタマイズする方法を学びます:
382 348