- Agent SDK でプロジェクトをセットアップする
- バグのあるコードを含むファイルを作成する
- バグを自動的に見つけて修正するエージェントを実行する
前提条件
- Node.js 18+ または Python 3.10+
- Anthropic アカウント(こちらでサインアップ)
セットアップ
プロジェクトフォルダを作成する
このクイックスタート用に新しいディレクトリを作成します:独自のプロジェクトの場合、任意のフォルダから SDK を実行できます。デフォルトでは、そのディレクトリとそのサブディレクトリ内のファイルにアクセスできます。
SDK をインストールする
お使いの言語用の Agent SDK パッケージをインストールします:
- TypeScript
- Python (uv)
- Python (pip)
TypeScript SDK は、プラットフォーム用のネイティブ Claude Code バイナリをオプションの依存関係としてバンドルしているため、Claude Code を別途インストールする必要はありません。
API キーを設定する
Claude Console から API キーを取得し、プロジェクトディレクトリに SDK は、サードパーティ API プロバイダーを介した認証もサポートしています:
.env ファイルを作成します:- Amazon Bedrock:
CLAUDE_CODE_USE_BEDROCK=1環境変数を設定し、AWS 認証情報を構成します - Google Vertex AI:
CLAUDE_CODE_USE_VERTEX=1環境変数を設定し、Google Cloud 認証情報を構成します - Microsoft Azure:
CLAUDE_CODE_USE_FOUNDRY=1環境変数を設定し、Azure 認証情報を構成します
事前に承認されていない限り、Anthropic は、Claude Agent SDK で構築されたエージェントを含む、サードパーティ開発者が claude.ai ログインまたはレート制限を提供することを許可していません。代わりに、このドキュメントで説明されている API キー認証方法を使用してください。
バグのあるファイルを作成する
このクイックスタートでは、コード内のバグを見つけて修正できるエージェントを構築する手順を説明します。まず、エージェントが修正するための意図的なバグを含むファイルが必要です。my-agent ディレクトリに utils.py を作成し、次のコードを貼り付けます:
calculate_average([])はゼロで除算してクラッシュしますget_user_name(None)は TypeError でクラッシュします
バグを見つけて修正するエージェントを構築する
Python SDK を使用している場合はagent.py を作成し、TypeScript の場合は agent.ts を作成します:
-
query:agentic ループを作成するメインエントリーポイント。非同期イテレーターを返すため、async forを使用して Claude が動作するときにメッセージをストリーミングします。完全な API については、Python または TypeScript SDK リファレンスを参照してください。 -
prompt:Claude に実行させたいこと。Claude はタスクに基づいて使用するツールを判断します。 -
options:エージェントの構成。この例では、allowedToolsを使用してRead、Edit、Globを事前承認し、permissionMode: "acceptEdits"を使用してファイル変更を自動承認します。その他のオプションには、systemPrompt、mcpServersなどがあります。Python または TypeScript のすべてのオプションを参照してください。
async for ループは、Claude が考え、ツールを呼び出し、結果を観察し、次に何をするかを決定する間、実行し続けます。各反復は、メッセージを生成します:Claude の推論、ツール呼び出し、ツール結果、または最終的な結果。SDK はオーケストレーション(ツール実行、コンテキスト管理、再試行)を処理するため、ストリームを消費するだけです。Claude がタスクを完了するか、エラーに達するとループが終了します。
ループ内のメッセージ処理は、人間が読める出力をフィルタリングします。フィルタリングなしでは、システム初期化と内部状態を含む生のメッセージオブジェクトが表示されます。これはデバッグに役立ちますが、そうでない場合はノイズが多くなります。
この例はストリーミングを使用してリアルタイムで進行状況を表示します。ライブ出力が不要な場合(バックグラウンドジョブや CI パイプラインなど)、すべてのメッセージを一度に収集できます。詳細については、ストリーミング対単一ターンモード を参照してください。
エージェントを実行する
エージェントの準備ができました。次のコマンドで実行します:- Python
- TypeScript
utils.py を確認します。空のリストと null ユーザーを処理する防御的なコードが表示されます。エージェントは自律的に:
- 読み取り
utils.pyでコードを理解する - 分析 ロジックを分析し、クラッシュを引き起こすエッジケースを特定する
- 編集 ファイルを編集して適切なエラーハンドリングを追加する
「API key not found」が表示される場合は、
.env ファイルまたはシェル環境で ANTHROPIC_API_KEY 環境変数を設定していることを確認してください。詳細については、完全なトラブルシューティングガイド を参照してください。他のプロンプトを試す
エージェントがセットアップされたので、いくつかの異なるプロンプトを試してください:"Add docstrings to all functions in utils.py""Add type hints to all functions in utils.py""Create a README.md documenting the functions in utils.py"
エージェントをカスタマイズする
オプションを変更することで、エージェントの動作を変更できます。いくつかの例を次に示します: Web 検索機能を追加する:Bash を有効にして、次を試してください:"Write unit tests for utils.py, run them, and fix any failures"
主要な概念
ツール はエージェントが何ができるかを制御します:| ツール | エージェントが実行できること |
|---|---|
Read、Glob、Grep | 読み取り専用分析 |
Read、Edit、Glob | コードの分析と変更 |
Read、Edit、Bash、Glob、Grep | 完全な自動化 |
| モード | 動作 | ユースケース |
|---|---|---|
acceptEdits | ファイル編集と一般的なファイルシステムコマンドを自動承認し、他のアクションについては確認します | 信頼できる開発ワークフロー |
dontAsk | allowedTools にないものを拒否します | ロックダウンされたヘッドレスエージェント |
auto(TypeScript のみ) | モデル分類器が各ツール呼び出しを承認または拒否します | 安全ガードレール付きの自律エージェント |
bypassPermissions | プロンプトなしですべてのツールを実行します | サンドボックス化された CI、完全に信頼できる環境 |
default | 承認を処理するために canUseTool コールバックが必要です | カスタム承認フロー |
acceptEdits モードを使用しており、ファイル操作を自動承認するため、エージェントはインタラクティブなプロンプトなしで実行できます。ユーザーに承認を促す場合は、default モードを使用し、ユーザー入力を収集する canUseTool コールバック を提供します。より詳細な制御については、権限 を参照してください。
トラブルシューティング
API エラー thinking.type.enabled はこのモデルではサポートされていません
Claude Opus 4.7 は thinking.type.enabled を thinking.type.adaptive に置き換えます。古い Agent SDK バージョンは、claude-opus-4-7 を選択すると次の API エラーで失敗します: