SpyBara
Go Premium

agent-sdk/quickstart.md 2026-06-29 23:02 UTC to 2026-06-30 23:02 UTC

40 added, 27 removed.

2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

クイックスタート

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 init -y
npm pkg set type=module
npm install @anthropic-ai/claude-agent-sdk
npm install --save-dev tsx

package.json"type": "module" を設定すると、エージェントスクリプトでトップレベルの await を使用でき、tsx は TypeScript ファイルを直接実行します。

3

API キーを設定する

Claude Console から API キーを取得し、エージェントを実行するシェルで環境変数として設定します:

export ANTHROPIC_API_KEY=your-api-key

SDK はエージェントを実行するプロセスの環境からキーを読み取ります。.env ファイルを自動的に読み込みません。キーを .env ファイルに保持している場合は、SDK を呼び出す前に、たとえば dotenv パッケージを使用して自分で読み込んでください。

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

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

詳細については、BedrockClaude Platform on AWSVertex 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 を作成します。既存のプロジェクトが CommonJS を使用している場合は、代わりに agent.mts を使用してください:

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"],  # これらのツールを自動承認します
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 がタスクを完了するか、エラーに達するとループが終了します。

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

エージェントを実行する

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

npx tsx agent.ts

スクリプトを agent.mts という名前にした場合は、代わりに npx tsx agent.mts を実行してください。

実行すると、エージェントは推論と呼び出す各ツールを印刷し、Done: success で終了します。実行後、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 ファイル編集と一般的なファイルシステムコマンドを自動承認し、他のアクションについては確認します 信頼できる開発ワークフロー
plan 読み取り専用ツールを実行します。ファイル編集は自動承認されず、canUseTool コールバックに到達します 実行を承認する前にタスクをスコープする
dontAsk allowedTools にないものを拒否します ロックダウンされたヘッドレスエージェント
auto(TypeScript のみ) モデル分類器が各ツール呼び出しを承認または拒否します 安全ガードレール付きの自律エージェント
bypassPermissions 明示的な ask ルール に一致しない限り、プロンプトなしですべてのツールを実行します サンドボックス化された CI、完全に信頼できる環境
default 承認を処理するために canUseTool コールバックが必要です カスタム承認フロー

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

次のステップ

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

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