SpyBara
Go Premium

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

333 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

クイックスタート

Python または TypeScript Agent SDK を使用して、自律的に動作する AI エージェントを構築する方法を学びます

Agent SDK を使用して、コードを読み、バグを見つけ、すべて手動操作なしで修正する AI エージェントを構築します。

実行内容:

  1. Agent SDK でプロジェクトをセットアップする
  2. バグのあるコードを含むファイルを作成する
  3. バグを自動的に見つけて修正するエージェントを実行する

前提条件

セットアップ

1

プロジェクトフォルダを作成する

このクイックスタート用に新しいディレクトリを作成します:

mkdir my-agent && cd my-agent

独自のプロジェクトの場合、任意のフォルダから SDK を実行できます。デフォルトでは、そのディレクトリとそのサブディレクトリ内のファイルにアクセスできます。

2

SDK をインストールする

お使いの言語用の Agent SDK パッケージをインストールします:

npm install @anthropic-ai/claude-agent-sdk
3

API キーを設定する

Claude Console から API キーを取得し、プロジェクトディレクトリに .env ファイルを作成します:

ANTHROPIC_API_KEY=your-api-key

SDK は、サードパーティ API プロバイダーを介した認証もサポートしています:

  • Amazon BedrockCLAUDE_CODE_USE_BEDROCK=1 環境変数を設定し、AWS 認証情報を構成します
  • Google Vertex AICLAUDE_CODE_USE_VERTEX=1 環境変数を設定し、Google Cloud 認証情報を構成します
  • Microsoft AzureCLAUDE_CODE_USE_FOUNDRY=1 環境変数を設定し、Azure 認証情報を構成します

詳細については、BedrockVertex AI、または Azure AI Foundry のセットアップガイドを参照してください。

バグのあるファイルを作成する

このクイックスタートでは、コード内のバグを見つけて修正できるエージェントを構築する手順を説明します。まず、エージェントが修正するための意図的なバグを含むファイルが必要です。my-agent ディレクトリに utils.py を作成し、次のコードを貼り付けます:

def calculate_average(numbers):
    total = 0
    for num in numbers:
        total += num
    return total / len(numbers)


def get_user_name(user):
    return user["name"].upper()

このコードには 2 つのバグがあります:

  1. calculate_average([]) はゼロで除算してクラッシュします
  2. get_user_name(None) は TypeError でクラッシュします

バグを見つけて修正するエージェントを構築する

Python SDK を使用している場合は agent.py を作成し、TypeScript の場合は agent.ts を作成します:

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage


async def main():
# Agentic ループ:Claude が動作するときにメッセージをストリーミングします
async for message in query(
prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob"],  # Claude が使用できるツール
permission_mode="acceptEdits",  # ファイル編集を自動承認
),
):
# 人間が読める出力を印刷します
if isinstance(message, AssistantMessage):
for block in message.content:
if hasattr(block, "text"):
print(block.text)  # Claude の推論
elif hasattr(block, "name"):
print(f"Tool: {block.name}")  # 呼び出されているツール
elif isinstance(message, ResultMessage):
print(f"Done: {message.subtype}")  # 最終結果


asyncio.run(main())

このコードには 3 つの主要な部分があります:

  1. query:agentic ループを作成するメインエントリーポイント。非同期イテレーターを返すため、async for を使用して Claude が動作するときにメッセージをストリーミングします。完全な API については、Python または TypeScript SDK リファレンスを参照してください。

  2. prompt:Claude に実行させたいこと。Claude はタスクに基づいて使用するツールを判断します。

  3. options:エージェントの構成。この例では、allowedTools を使用して ReadEditGlob を事前承認し、permissionMode: "acceptEdits" を使用してファイル変更を自動承認します。その他のオプションには、systemPromptmcpServers などがあります。Python または TypeScript のすべてのオプションを参照してください。

async for ループは、Claude が考え、ツールを呼び出し、結果を観察し、次に何をするかを決定する間、実行し続けます。各反復は、メッセージを生成します:Claude の推論、ツール呼び出し、ツール結果、または最終的な結果。SDK はオーケストレーション(ツール実行、コンテキスト管理、再試行)を処理するため、ストリームを消費するだけです。Claude がタスクを完了するか、エラーに達するとループが終了します。

ループ内のメッセージ処理は、人間が読める出力をフィルタリングします。フィルタリングなしでは、システム初期化と内部状態を含む生のメッセージオブジェクトが表示されます。これはデバッグに役立ちますが、そうでない場合はノイズが多くなります。

エージェントを実行する

エージェントの準備ができました。次のコマンドで実行します:

python3 agent.py

実行後、utils.py を確認します。空のリストと null ユーザーを処理する防御的なコードが表示されます。エージェントは自律的に:

  1. 読み取り utils.py でコードを理解する
  2. 分析 ロジックを分析し、クラッシュを引き起こすエッジケースを特定する
  3. 編集 ファイルを編集して適切なエラーハンドリングを追加する

これが Agent SDK を異なるものにする理由です:Claude は、実装するよう求める代わりに、ツールを直接実行します。

他のプロンプトを試す

エージェントがセットアップされたので、いくつかの異なるプロンプトを試してください:

  • "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 検索機能を追加する:

options = ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob", "WebSearch"], permission_mode="acceptEdits"
)

Claude にカスタムシステムプロンプトを提供する:

options = ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob"],
permission_mode="acceptEdits",
system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines.",
)

ターミナルでコマンドを実行する:

options = ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob", "Bash"], permission_mode="acceptEdits"
)

Bash を有効にして、次を試してください:"Write unit tests for utils.py, run them, and fix any failures"

主要な概念

ツール はエージェントが何ができるかを制御します:

ツール エージェントが実行できること
ReadGlobGrep 読み取り専用分析
ReadEditGlob コードの分析と変更
ReadEditBashGlobGrep 完全な自動化

権限モード は、必要な人間の監視の量を制御します:

モード 動作 ユースケース
acceptEdits ファイル編集と一般的なファイルシステムコマンドを自動承認し、他のアクションについては確認します 信頼できる開発ワークフロー
dontAsk allowedTools にないものを拒否します ロックダウンされたヘッドレスエージェント
auto(TypeScript のみ) モデル分類器が各ツール呼び出しを承認または拒否します 安全ガードレール付きの自律エージェント
bypassPermissions プロンプトなしですべてのツールを実行します サンドボックス化された CI、完全に信頼できる環境
default 承認を処理するために canUseTool コールバックが必要です カスタム承認フロー

上記の例は acceptEdits モードを使用しており、ファイル操作を自動承認するため、エージェントはインタラクティブなプロンプトなしで実行できます。ユーザーに承認を促す場合は、default モードを使用し、ユーザー入力を収集する canUseTool コールバック を提供します。より詳細な制御については、権限 を参照してください。

トラブルシューティング

API エラー thinking.type.enabled はこのモデルではサポートされていません

Claude Opus 4.7 は thinking.type.enabledthinking.type.adaptive に置き換えます。古い Agent SDK バージョンは、claude-opus-4-7 を選択すると次の API エラーで失敗します:

API Error: 400 {"type":"invalid_request_error","message":"\"thinking.type.enabled\" is not supported for this model. Use \"thinking.type.adaptive\" and \"output_config.effort\" to control thinking behavior."}

Opus 4.7 を使用するには、Agent SDK v0.2.111 以降にアップグレードしてください。

次のステップ

最初のエージェントを作成したので、その機能を拡張し、ユースケースに合わせてカスタマイズする方法を学びます:

  • 権限:エージェントが何ができるか、いつ承認が必要かを制御する
  • Hooks:ツール呼び出しの前後にカスタムコードを実行する
  • セッション:コンテキストを維持するマルチターンエージェントを構築する
  • MCP サーバー:データベース、ブラウザー、API、その他の外部システムに接続する
  • ホスティング:Docker、クラウド、CI/CD にエージェントをデプロイする
  • サンプルエージェント:完全な例を参照:メールアシスタント、リサーチエージェント、その他