Loading...
    • 開発者ガイド
    • API リファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    はじめに
    Claude の紹介クイックスタート
    モデルと料金
    モデル概要モデルの選び方Claude 4.6 の新機能移行ガイドモデルの廃止料金
    Claude で構築する
    機能概要Messages API の使用停止理由の処理プロンプトのベストプラクティス
    コンテキスト管理
    コンテキストウィンドウコンパクションコンテキスト編集
    機能
    プロンプトキャッシング拡張思考適応型思考エフォートメッセージのストリーミングバッチ処理引用多言語サポートトークンカウントエンベディングビジョンPDF サポートFiles API検索結果構造化出力
    ツール
    概要ツール使用の実装方法きめ細かいツールストリーミングBash ツールコード実行ツールプログラムによるツール呼び出しコンピュータ使用ツールテキストエディタツールWeb フェッチツールWeb 検索ツールメモリツールツール検索ツール
    Agent Skills
    概要クイックスタートベストプラクティスエンタープライズ向け SkillsAPI での Skills の使用
    Agent SDK
    概要クイックスタートTypeScript SDKTypeScript V2(プレビュー)Python SDK移行ガイド
    API での MCP
    MCP コネクタリモート MCP サーバー
    サードパーティプラットフォームの Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータープロンプトテンプレートの使用プロンプト改善ツール明確かつ直接的に例を使う(マルチショットプロンプティング)Claude に考えさせる(CoT)XML タグを使うClaude に役割を与える(システムプロンプト)複雑なプロンプトを連鎖させる長文コンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を高めるジェイルブレイクの軽減ストリーミング拒否プロンプト漏洩の防止Claude をキャラクターに保つ
    管理とモニタリング
    Admin API 概要データレジデンシーワークスペースUsage and Cost APIClaude Code Analytics APIゼロデータリテンション
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Agent SDK

    クイックスタート

    Python または TypeScript Agent SDK を使って、自律的に動作する AI エージェントの構築を始めましょう

    Agent SDK を使って、コードを読み取り、バグを見つけ、修正する AI エージェントを構築しましょう。すべて手動の介入なしで行えます。

    このガイドで行うこと:

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

    前提条件

    • Node.js 18+ または Python 3.10+
    • Anthropic アカウント(こちらでサインアップ)

    セットアップ

    1. 1

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

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

      mkdir my-agent && cd my-agent

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

    2. 2

      SDK をインストールする

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

    3. 3

      API キーを設定する

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

      ANTHROPIC_API_KEY=your-api-key

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

      • 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 認証情報を構成します

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

      事前に承認されていない限り、Anthropic はサードパーティの開発者が Claude Agent SDK で構築されたエージェントを含む自社製品に claude.ai のログインやレート制限を提供することを許可していません。代わりに、このドキュメントに記載されている API キー認証方法を使用してください。

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

    このクイックスタートでは、コード内のバグを見つけて修正できるエージェントの構築手順を説明します。まず、エージェントが修正するための意図的なバグを含むファイルが必要です。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():
        # エージェントループ: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:エージェントループを作成するメインのエントリポイントです。非同期イテレータを返すため、async for を使って Claude が作業する間メッセージをストリーミングします。完全な API については Python または TypeScript SDK リファレンスを参照してください。

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

    3. options:エージェントの設定です。この例では allowedTools を使って Claude を Read、Edit、Glob に制限し、permissionMode: "acceptEdits" でファイル変更を自動承認しています。その他のオプションには systemPrompt、mcpServers などがあります。すべてのオプションについては Python または TypeScript を参照してください。

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

    ループ内のメッセージ処理は、人間が読みやすい出力をフィルタリングしています。フィルタリングなしでは、システム初期化や内部状態を含む生のメッセージオブジェクトが表示されます。これはデバッグには有用ですが、通常はノイズになります。

    この例ではストリーミングを使用してリアルタイムで進捗を表示しています。ライブ出力が不要な場合(例:バックグラウンドジョブや CI パイプライン)、すべてのメッセージを一度に収集できます。詳細はストリーミング vs シングルターンモードを参照してください。

    エージェントを実行する

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

    実行後、utils.py を確認してください。空のリストや null ユーザーを処理する防御的なコードが追加されているのがわかります。エージェントは自律的に以下を行いました:

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

    これが Agent SDK の特徴です:Claude はツールを直接実行し、あなたに実装を求めることはありません。

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

    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"

    主要な概念

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

    ツールエージェントができること
    Read, Glob, Grep読み取り専用の分析
    Read, Edit, Globコードの分析と修正
    Read, Edit, Bash, Glob, Grep完全な自動化

    パーミッションモードは、どの程度の人間の監視が必要かを制御します:

    モード動作ユースケース
    acceptEditsファイル編集を自動承認し、その他のアクションは確認を求める信頼された開発ワークフロー
    bypassPermissionsプロンプトなしで実行CI/CD パイプライン、自動化
    default承認を処理する canUseTool コールバックが必要カスタム承認フロー

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

    次のステップ

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

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

    Was this page helpful?