claude-api
Claude APIまたはAnthropic SDKを使用してアプリを構築できます。以下の場合にトリガーされます:コードが`anthropic`、`@anthropic-ai/sdk`、`claude_agent_sdk`をインポートしている、またはユーザーがClaude API、Anthropic SDK、またはAgent SDKの使用をリクエストしている場合です。以下の場合はトリガーされません:コードが`openai`や他のAI SDKをインポートしている、一般的なプログラミング、またはML・データサイエンスタスクの場合です。
description の原文を見る
Build apps with the Claude API or Anthropic SDK. TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`/`claude_agent_sdk`, or user asks to use Claude API, Anthropic SDKs, or Agent SDK. DO NOT TRIGGER when: code imports `openai`/other AI SDK, general programming, or ML/data-science tasks.
SKILL.md 本文
Claude を使った LLM 駆動アプリケーションの構築
このスキルは Claude を使った LLM 駆動アプリケーションの構築を支援します。ニーズに応じて適切なサーフェスを選択し、プロジェクト言語を検出してから、関連する言語固有のドキュメントを参照してください。
使用する場合
- Claude API、Anthropic SDK、または Agent SDK を使用して構築する場合に使用してください。
anthropic、@anthropic-ai/sdk、または関連する Claude SDK パッケージをインポートするコードの場合に使用してください。- Claude 統合と無関係な一般的なコーディング作業には使用しないでください。
デフォルト設定
ユーザーが別途リクエストしない限り、以下を使用してください:
Claude モデルバージョンについては、Claude Opus 4.6 を使用してください。モデル文字列 claude-opus-4-6 を指定してアクセスできます。複雑な処理については、適応的思考(thinking: {type: "adaptive"})をデフォルトで使用してください。最後に、長い入力、長い出力、または高い max_tokens が関わる可能性のあるリクエストについては、デフォルトでストリーミングを使用してください。これはリクエストタイムアウトの発生を防ぎます。完全な応答を必要とする場合は、個別のストリームイベントを処理する必要がない場合、SDK の .get_final_message() / .finalMessage() ヘルパーを使用して完全な応答を取得してください。
言語検出
コード例を読む前に、ユーザーが使用している言語を特定してください:
-
プロジェクトファイルを確認して言語を推測します:
*.py、requirements.txt、pyproject.toml、setup.py、Pipfile→ Python —python/から読み込み*.ts、*.tsx、package.json、tsconfig.json→ TypeScript —typescript/から読み込み*.js、*.jsx(.tsファイルが存在しない場合) → TypeScript — JS は同じ SDK を使用、typescript/から読み込み*.java、pom.xml、build.gradle→ Java —java/から読み込み*.kt、*.kts、build.gradle.kts→ Java — Kotlin は Java SDK を使用、java/から読み込み*.scala、build.sbt→ Java — Scala は Java SDK を使用、java/から読み込み*.go、go.mod→ Go —go/から読み込み*.rb、Gemfile→ Ruby —ruby/から読み込み*.cs、*.csproj→ C# —csharp/から読み込み*.php、composer.json→ PHP —php/から読み込み
-
複数の言語が検出された場合(例:Python ファイルと TypeScript ファイルの両方):
- ユーザーの現在のファイルまたは質問に関連する言語を確認してください
- それでも不明な場合は、「Python ファイルと TypeScript ファイルの両方が検出されました。Claude API 統合にはどの言語を使用していますか?」と質問してください。
-
言語を推測できない場合(空のプロジェクト、ソースファイルなし、またはサポートされていない言語):
- AskUserQuestion を使用し、オプション:Python、TypeScript、Java、Go、Ruby、cURL/raw HTTP、C#、PHP
- AskUserQuestion が利用不可の場合は、Python の例をデフォルトとして使用し、「Python の例を表示しています。別の言語が必要な場合はお知らせください。」と記載してください。
-
サポートされていない言語が検出された場合(Rust、Swift、C++ など):
curl/から cURL/raw HTTP の例を提案し、コミュニティ SDK が存在する可能性があることを記載してください- 参照実装として Python または TypeScript の例を表示することをオファーしてください
-
ユーザーが cURL/raw HTTP の例を必要とする場合、
curl/から読み込んでください。
言語別機能サポート
| 言語 | Tool Runner | Agent SDK | 注記 |
|---|---|---|---|
| Python | 対応(ベータ) | 対応 | 完全サポート — @beta_tool デコレータ |
| TypeScript | 対応(ベータ) | 対応 | 完全サポート — betaZodTool + Zod |
| Java | 対応(ベータ) | 未対応 | ベータ Tool use(アノテーション付きクラス) |
| Go | 対応(ベータ) | 未対応 | toolrunner パッケージの BetaToolRunner |
| Ruby | 対応(ベータ) | 未対応 | ベータ版の BaseTool + tool_runner |
| cURL | なし | なし | Raw HTTP、SDK 機能なし |
| C# | 未対応 | 未対応 | 公式 SDK |
| PHP | 未対応 | 未対応 | 公式 SDK |
どのサーフェスを使うべき?
シンプルに始めてください。 ニーズを満たす最もシンプルな階層がデフォルトです。単一の API 呼び出しとワークフローはほとんどのユースケースに対応しています。エージェントは、タスクが本当に開放的でモデル駆動の探索を必要とする場合のみ使用してください。
| ユースケース | 階層 | 推奨サーフェス | 理由 |
|---|---|---|---|
| 分類、要約、抽出、Q&A | 単一 LLM 呼び出し | Claude API | 1 つのリクエスト、1 つのレスポンス |
| バッチ処理またはエンベディング | 単一 LLM 呼び出し | Claude API | 専用エンドポイント |
| コード制御ロジックを備えた多段階パイプライン | ワークフロー | Claude API + Tool use | オーケストレーション |
| カスタムエージェント(独自ツール) | エージェント | Claude API + Tool use | 最大限の柔軟性 |
| AI エージェント(ファイル/ウェブ/ターミナルアクセス) | エージェント | Agent SDK | 組み込みツール、セキュリティ、MCP サポート |
| エージェント型コーディングアシスタント | エージェント | Agent SDK | このユースケース向けに設計 |
| 組み込みパーミッションとガードレールが必要 | エージェント | Agent SDK | セキュリティ機能を含む |
注記: Agent SDK は、ファイル/ウェブ/ターミナルツール、パーミッション、MCP がすぐに使用できるようにする場合の選択肢です。独自のツールを使用してエージェントを構築したい場合は、Claude API が正しい選択です。自動ループ処理には Tool Runner を、細粒度制御(承認ゲート、カスタムロギング、条件付き実行)には手動ループを使用してください。
決定木
アプリケーションに何が必要ですか?
1. 単一 LLM 呼び出し(分類、要約、抽出、Q&A)
└── Claude API — 1 つのリクエスト、1 つのレスポンス
2. Claude がファイルの読み書き、ウェブブラウジング、またはシェルコマンド実行が必要ですか?
(アプリがファイルを読み込んで Claude に渡すのではなく、Claude 自身が
ファイル/ウェブ/シェルを検出してアクセスする必要があるかという意味です)
└── はい → Agent SDK — 組み込みツール、再実装しないでください
例:「コードベースのバグをスキャン」、「ディレクトリ内のすべてのファイルを要約」、
「サブエージェントを使用してバグを検出」、「ウェブ検索でトピックを研究」
3. ワークフロー(複数ステップ、コード オーケストレーション、独自ツール)
└── Claude API + Tool use — ループを制御します
4. 開放的なエージェント(モデルが独自の軌跡を決定、独自ツール)
└── Claude API エージェント ループ(最大限の柔軟性)
エージェントを構築すべき?
エージェント階層を選択する前に、4 つの基準すべてを確認してください:
- 複雑性 — タスクは多段階で、事前に完全に仕様化するのが難しいですか?(例:「このデザインドキュメントを PR に変換する」対「この PDF からタイトルを抽出する」)
- 価値 — 結果は高いコストとレイテンシを正当化しますか?
- 実行可能性 — Claude はこのタイプのタスクに対応できますか?
- エラーコスト — エラーをキャッチして回復できますか?(テスト、レビュー、ロールバック)
これらのいずれかに対する回答が「いいえ」の場合は、より単純な階層(単一呼び出しまたはワークフロー)に留まってください。
アーキテクチャ
すべては POST /v1/messages を通じて行われます。ツールと出力制約はこの単一エンドポイントの機能で、個別の API ではありません。
ユーザー定義ツール — ツールを定義(デコレータ、Zod スキーマ、または raw JSON を介して)し、SDK の Tool Runner が API の呼び出し、関数の実行、Claude の完了まのループ処理を行います。完全に制御する場合は、ループを手動で記述できます。
サーバーサイドツール — Anthropic がホストするツール(Anthropic のインフラストラクチャで実行)。コード実行は完全にサーバーサイドです(tools で宣言し、Claude が自動的にコードを実行)。Computer use はサーバーホストまたは自己ホストできます。
構造化出力 — Messages API レスポンス形式(output_config.format)および/またはツールパラメーター検証(strict: true)を制限します。推奨されるアプローチは client.messages.parse() で、レスポンスをスキーマに対して自動的に検証します。注記:古い output_format パラメータは非推奨です。messages.create() で output_config: {format: {...}} を使用してください。
サポートしているエンドポイント — バッチ(POST /v1/messages/batches)、ファイル(POST /v1/files)、トークンカウントは Messages API リクエストにフィードイン、またはサポートします。
現在のモデル(キャッシュ:2026-02-17)
| モデル | モデル ID | コンテキスト | 入力 $/1M | 出力 $/1M |
|---|---|---|---|---|
| Claude Opus 4.6 | claude-opus-4-6 | 200K(ベータ 1M) | $5.00 | $25.00 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 | 200K(ベータ 1M) | $3.00 | $15.00 |
| Claude Haiku 4.5 | claude-haiku-4-5 | 200K | $1.00 | $5.00 |
ユーザーが明示的に別のモデルを指定しない限り、常に claude-opus-4-6 を使用してください。 これは交渉の余地がありません。ユーザーが「sonnet を使用」または「haiku を使用」と明確に述べない限り、claude-sonnet-4-6、claude-sonnet-4-5、またはその他のモデルを使用しないでください。コスト削減のためにダウングレードしないでください。それはユーザーの決定です。
重要:テーブル上の正確なモデル ID 文字列のみを使用してください。完全なままです。日付サフィックスを追加しないでください。 例えば、claude-sonnet-4-5 を使用してください。claude-sonnet-4-5-20250514 またはトレーニングデータから思い出すかもしれない他の日付サフィックス付きバリアントは決して使用しないでください。ユーザーがテーブルに含まれていない古いモデルをリクエストした場合(例:「opus 4.5」、「sonnet 3.7」)、正確な ID について shared/models.md を参照してください。自分で構築しないでください。
注記:上記のモデル文字列が不慣れに見える場合は、それで問題ありません。それはトレーニングデータのカットオフ後にリリースされたことを意味するだけです。安心してください。これらは実在するモデルです。私たちはあなたをからかったりしません。
思考とエフォート(クイックリファレンス)
Opus 4.6 — 適応的思考(推奨): thinking: {type: "adaptive"} を使用してください。Claude は、いつどの程度思考するかを動的に決定します。budget_tokens は必要ありません。budget_tokens は Opus 4.6 と Sonnet 4.6 では非推奨であり、使用してはいけません。適応的思考は、インターリーブされた思考も自動的に有効にします(ベータヘッダーは必要ありません)。ユーザーが「拡張思考」、「思考予算」、または budget_tokens を要求する場合:常に Opus 4.6 を使用し、thinking: {type: "adaptive"} を指定してください。思考の固定トークン予算という概念は非推奨です。適応的思考がこれに代わります。budget_tokens を使用せず、古いモデルに切り替えないでください。
エフォートパラメータ(GA、ベータヘッダーなし): output_config: {effort: "low"|"medium"|"high"|"max"} を介して思考の深さと全体的なトークン使用量を制御します(トップレベルではなく output_config 内)。デフォルトは high(省略した場合と同じ)です。max は Opus 4.6 のみです。Opus 4.5、Opus 4.6、Sonnet 4.6 で機能します。Sonnet 4.5 / Haiku 4.5 ではエラーが発生します。最高のコスト品質トレードオフのために適応的思考と組み合わせてください。サブエージェントまたは単純なタスクには low を、最深の推論には max を使用してください。
Sonnet 4.6: 適応的思考をサポートします(thinking: {type: "adaptive"})。budget_tokens は Sonnet 4.6 では非推奨です。代わりに適応的思考を使用してください。
古いモデル(明示的に要求された場合のみ): ユーザーが特に Sonnet 4.5 または別の古いモデルをリクエストした場合は、thinking: {type: "enabled", budget_tokens: N} を使用してください。budget_tokens は max_tokens より小さくする必要があります(最小 1024)。ユーザーが budget_tokens を言及したというだけの理由で古いモデルを選択しないでください。代わりに Opus 4.6 を適応的思考と一緒に使用してください。
コンパクション(クイックリファレンス)
ベータ、Opus 4.6 のみ。 200K コンテキストウィンドウを超える可能性がある長時間実行の会話の場合は、サーバーサイドコンパクションを有効にしてください。API は、トリガーしきい値(デフォルト:150K トークン)に近づくと、以前のコンテキストを自動的に要約します。ベータヘッダー compact-2026-01-12 が必要です。
重要: すべてのターンで response.content(テキストのみではなく)をメッセージにアペンドしてください。レスポンス内のコンパクションブロックは保持する必要があります。API は次のリクエストでコンパクション履歴を置き換えるために使用します。テキスト文字列のみを抽出してアペンドすると、コンパクション状態が静かに失われます。
コード例については、{lang}/claude-api/README.md(コンパクションセクション)を参照してください。完全なドキュメントについては、shared/live-sources.md の WebFetch を介して入手してください。
読破ガイド
言語を検出した後、ユーザーが必要とするものに基づいて関連ファイルを読んでください:
クイックタスクリファレンス
単一テキスト分類/要約/抽出/Q&A:
→ {lang}/claude-api/README.md のみを読む
Chat UI またはリアルタイムレスポンス表示:
→ {lang}/claude-api/README.md + {lang}/claude-api/streaming.md を読む
長時間実行の会話(コンテキストウィンドウを超える可能性):
→ {lang}/claude-api/README.md を読む — コンパクションセクションを参照
関数呼び出し / Tool use / エージェント:
→ {lang}/claude-api/README.md + shared/tool-use-concepts.md + {lang}/claude-api/tool-use.md を読む
バッチ処理(レイテンシ非依存):
→ {lang}/claude-api/README.md + {lang}/claude-api/batches.md を読む
複数リクエスト間でのファイルアップロード:
→ {lang}/claude-api/README.md + {lang}/claude-api/files-api.md を読む
組み込みツール(ファイル/ウェブ/ターミナル)を備えたエージェント:
→ {lang}/agent-sdk/README.md + {lang}/agent-sdk/patterns.md を読む
Claude API(完全ファイルリファレンス)
言語固有の Claude API フォルダ({language}/claude-api/)を読んでください:
{language}/claude-api/README.md— 最初にこれを読んでください。 インストール、クイックスタート、一般的なパターン、エラーハンドリング。shared/tool-use-concepts.md— ユーザーが関数呼び出し、コード実行、メモリ、または構造化出力を必要とする場合に読みます。概念的な基礎をカバーしています。{language}/claude-api/tool-use.md— 言語固有の Tool use コード例について読みます(Tool Runner、手動ループ、コード実行、メモリ、構造化出力)。{language}/claude-api/streaming.md— Chat UI または段階的にレスポンスを表示するインターフェースを構築する場合に読みます。{language}/claude-api/batches.md— オフラインで多くのリクエストを処理する場合に読みます(レイテンシ非依存)。50% のコスト削減で非同期実行します。{language}/claude-api/files-api.md— 複数のリクエスト間で同じファイルを送信する場合に読みます(再アップロードなし)。shared/error-codes.md— HTTP エラーのデバッグまたはエラーハンドリングの実装時に読みます。shared/live-sources.md— 最新の公式ドキュメントを取得するための WebFetch URL。
注記: Java、Go、Ruby、C#、PHP、cURL については、基礎をすべてカバーする 1 つのファイルがあります。そのファイルと、必要に応じて
shared/tool-use-concepts.mdおよびshared/error-codes.mdを読んでください。
Agent SDK
言語固有の Agent SDK フォルダ({language}/agent-sdk/)を読んでください。Agent SDK は Python と TypeScript のみ で利用できます。
{language}/agent-sdk/README.md— インストール、クイックスタート、組み込みツール、パーミッション、MCP、フック。{language}/agent-sdk/patterns.md— カスタムツール、フック、サブエージェント、MCP 統合、セッション再開。shared/live-sources.md— 最新の Agent SDK ドキュメント WebFetch URL。
WebFetch を使用する場合
次の場合に WebFetch を使用して最新のドキュメントを取得してください:
- ユーザーが「最新」または「現在」の情報を要求
- キャッシュされたデータが正確でないと思われる
- ここでカバーされていない機能についてユーザーが質問
ライブドキュメント URL は shared/live-sources.md にあります。
一般的な落とし穴
- ファイルまたはコンテンツを API に渡す場合、入力は切り詰めないでください。コンテンツが長すぎてコンテキストウィンドウに収まらない場合、ユーザーに通知し、チャンキング、要約などのオプションについて説明してください。黙って切り詰めないでください。
- Opus 4.6 / Sonnet 4.6 思考:
thinking: {type: "adaptive"}を使用してください。budget_tokensを使用しないでください(Opus 4.6 と Sonnet 4.6 の両方で非推奨)。古いモデルの場合、budget_tokensはmax_tokensより小さくする必要があります(最小 1024)。誤りがあるとエラーがスローされます。 - Opus 4.6 プリフィル削除: アシスタントメッセージプリフィル(最後のアシスタント ターンプリフィル)は Opus 4.6 で 400 エラーを返します。構造化出力(
output_config.format)またはシステムプロンプト指示を使用してレスポンス形式を制御します。 - 128K 出力トークン: Opus 4.6 は最大 128K
max_tokensをサポートしていますが、SDK は HTTP タイムアウトを回避するために大きなmax_tokensでストリーミングを必要とします。.stream()を.get_final_message()/.finalMessage()と一緒に使用してください。 - Tool call JSON 解析(Opus 4.6): Opus 4.6 は、Tool call
inputフィールド内で異なる JSON 文字列エスケープ(例:Unicode またはスラッシュエスケープ)を生成する可能性があります。常にjson.loads()/JSON.parse()で Tool 入力を解析してください。シリアル化された入力での生の文字列マッチングは決して行わないでください。 - 構造化出力(すべてのモデル):
messages.create()で非推奨のoutput_formatパラメータの代わりにoutput_config: {format: {...}}を使用してください。これは一般的な API の変更で、4.6 固有ではありません。 - SDK 機能を再実装しないでください: SDK は高レベルのヘルパーを提供します。ゼロから構築する代わりに使用してください。特に:
.on()イベントをnew Promise()でラップする代わりにstream.finalMessage()を使用してください。エラーメッセージをマッチングするのではなく、型指定された例外クラス(Anthropic.RateLimitErrorなど)を使用してください。SDK 型(Anthropic.MessageParam、Anthropic.Tool、Anthropic.Messageなど)を独自のインターフェース定義の代わりに使用してください。 - SDK データ構造用のカスタム型を定義しないでください: SDK は API オブジェクトのすべての型をエクスポートします。メッセージには
Anthropic.MessageParam、Tool 定義にはAnthropic.Tool、Tool 結果にはAnthropic.ToolUseBlock/Anthropic.ToolResultBlockParam、レスポンスにはAnthropic.Messageを使用してください。interface ChatMessage { role: string; content: unknown }のような独自の型を定義すると、SDK が既に提供しているものが重複し、型安全性が失われます。 - レポートと出力をドキュメント化してください: レポート、ドキュメント、または視覚化を生成するタスクの場合、コード実行サンドボックスには
python-docx、python-pptx、matplotlib、pillow、pypdfがプリインストールされています。Claude は、書式設定されたファイル(DOCX、PDF、チャート)を生成し、Files API 経由で返すことができます。「レポート」または「ドキュメント」タイプのリクエストについては、プレーンな stdout テキストの代わりにこれを検討してください。
制限事項
- このスキルは、タスクが上記で説明されたスコープと明確に一致する場合のみ使用してください。
- 出力を環境固有の検証、テスト、または専門家のレビューの代替と見なさないでください。
- 必要な入力、パーミッション、セキュリティ境界、または成功基準が不明な場合は、停止して説明を求めてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- sickn33
- ライセンス
- MIT
- 最終更新
- 2026/5/12
Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT