mcpField
E
extended-thinking

extended-thinking

github.com/thelobbiエージェントワークフロー2169 回インストール1 日前に更新
リポジトリ

extended-thinking について

対応する Claude モデルで拡張思考を設定するためのスキルです。モデル別の設定、エフォートレベルやトークン予算の指針、ストリーミングとツール利用のパターンを紹介します。

主な機能

  1. 01モデル別の思考設定
  2. 02アダプティブなエフォートレベルの指針
  3. 03旧モデル向け手動トークン予算
  4. 04ストリーミングとツール利用のパターン
  5. 05Claude Codeの利用方法

活用シーン

  1. 01複雑なデバッグの検討
  2. 02アーキテクチャのトレードオフ比較
  3. 03セキュリティ分析の実施

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/thelobbi/claude --skill extended-thinking

インストール後、Claude Code で/extended-thinkingを入力して読み込まれたか確認します。

詳細

Extended Thinking(Ultrathink)スキル

応答前の内部的な熟考が役立つ複雑な推論タスクにおいて、Claude の拡張思考機能を有効にします。

使用する場面

  • 複雑な問題解決:複数ステップの推論が必要な場合
  • コードアーキテクチャの決定:複数のトレードオフがある場合
  • 複雑な問題のデバッグ:体系的な分析が必要な場合
  • 戦略的な計画:多くの変数がある場合
  • 数学的または論理的な証明
  • セキュリティ分析:脅威のモデリングが必要な場合
  • パフォーマンスの最適化:複数の要因がある場合

対応モデル

モデル思考の設定
Claude Fable 5 (claude-fable-5)常に有効 — thinking パラメーターを省略(または {"type": "adaptive"} を指定)します。{"type": "disabled"} は 400 を返します
Claude Opus 4.8 / 4.7 (claude-opus-4-8){"type": "adaptive"}(省略するとオフ)。budget_tokens は削除されており、400 を返します
Claude Sonnet 5 (claude-sonnet-5)thinking を省略するとデフォルトでアダプティブです。budget_tokens は削除されており、400 を返します
Claude Opus 4.6 / Sonnet 4.6{"type": "adaptive"} を推奨します。budget_tokens は非推奨(移行期間のみ)です
旧モデル(Sonnet 4.5、Haiku 4.5、...){"type": "enabled", "budget_tokens": N} — 以下の手動予算設定を使用します

API の設定

アダプティブ思考 — 現行モデル(Python)

現行モデル(Opus 4.6 以降、Sonnet 5、Fable 5)では、アダプティブ思考が手動の予算設定に代わります。Claude が思考するタイミングと量を判断し、output_config.effort で深さを制御します。

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},  # low | medium | high | xhigh | max
    messages=[{
        "role": "user",
        "content": "Analyze this complex architecture decision..."
    }]
)

# Access thinking and response
for block in response.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")
TypeScript の設定
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const response = await client.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 16000,
  thinking: { type: "adaptive" },
  output_config: { effort: "high" },
  messages: [
    {
      role: "user",
      content: "Analyze this complex architecture decision...",
    },
  ],
});
手動予算設定 — 旧モデルのみ(budget_tokens)

旧モデル(Sonnet 4.5/Haiku 4.5 の世代)では、固定トークン予算を設定して拡張思考を有効にします。budget_tokens は 1,024 以上、max_tokens 未満である必要があります。現行モデルではこの形式を使用しないでください — Opus 4.7 以降、Sonnet 5、Fable 5 では budget_tokens が削除されており、400 エラーが返されます(Opus 4.6/Sonnet 4.6 では非推奨ですが、引き続き機能します)。

response = client.messages.create(
    model="claude-sonnet-4-5",  # older model — manual budget still applies
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000  # Minimum 1,024
    },
    messages=[{"role": "user", "content": "..."}]
)
ストリーミング(大きな max_tokens には必須)
with client.messages.stream(
    model="claude-sonnet-5",
    max_tokens=32000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": prompt}]
) as stream:
    for event in stream:
        if event.type == "content_block_delta":
            if hasattr(event.delta, "thinking"):
                print(event.delta.thinking, end="", flush=True)
            elif hasattr(event.delta, "text"):
                print(event.delta.text, end="", flush=True)

思考の深さに関する推奨事項

現行モデル — effort レベル(output_config: {"effort": ...})
effort用途
low簡単な確認、レイテンシーが重視されるタスク、サブエージェント
mediumコードレビュー、デバッグ、設計上の判断(コストとのバランスが良好)
high(デフォルト)アーキテクチャの計画、セキュリティ監査、知能が重視される作業
xhigh最も難しいコーディングおよびエージェント型タスク(Opus 4.7 以降、Sonnet 5、Fable 5)
maxコストより正確性が重要な場合。考えすぎる傾向があるため注意してください
旧モデル — budget_tokens
タスクの複雑さ予算トークン数用途
軽度1,024 - 4,000簡単な確認、基本的な分析
中程度4,000 - 10,000コードレビュー、デバッグ、設計上の判断
高い10,000 - 20,000アーキテクチャの計画、セキュリティ監査
複雑20,000 - 32,000複数システムの分析、包括的なレビュー
最大32,000+32k を超える予算にはバッチ API を使用します

拡張思考でのツールの使用

重要:拡張思考でツールを使用する場合、会話履歴内の思考ブロックを必ず保持する必要があります。

# Initial request with thinking
response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    tools=[{
        "name": "analyze_code",
        "description": "Analyze code for issues",
        "input_schema": {
            "type": "object",
            "properties": {"code": {"type": "string"}},
            "required": ["code"]
        }
    }],
    messages=[{"role": "user", "content": "Analyze this code..."}]
)

# MUST include ALL content blocks including thinking
tool_use_block = next(b for b in response.content if b.type == "tool_use")
tool_result = execute_tool(tool_use_block)

# Continue with thinking blocks preserved
follow_up = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    tools=[...],
    messages=[
        {"role": "user", "content": "Analyze this code..."},
        {"role": "assistant", "content": response.content},  # Includes thinking!
        {"role": "user", "content": [{
            "type": "tool_result",
            "tool_use_id": tool_use_block.id,
            "content": tool_result
        }]}
    ]
)

インターリーブ思考

現行モデル(Opus 4.6 以降、Sonnet 5、Fable 5)では、アダプティブ思考によりツール呼び出しの間に思考が自動的に挿入されるため、ベータヘッダーは不要です。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    messages=[...]
)

手動で budget_tokens を使用する旧 Claude 4 モデルでは、インターリーブ思考に interleaved-thinking-2025-05-14 ベータヘッダーが必要です。

制約

  • 現在のモデル(Opus 4.7+、Sonnet 5、Fable 5):budget_tokens、temperature、top_p、top_k はすべて削除されています。いずれかを送信すると 400 が返されます
  • 旧モデル:budget_tokens の最小値は 1,024 で、max_tokens 未満である必要があります。temperature は 1(デフォルト)である必要があります。拡張思考では top_k を使用できません
  • 最大出力:128k トークン(思考+応答)。Haiku 4.5 は 64k が上限です
  • ストリーミングが必須:大きな max_tokens を指定する場合(SDK の HTTP タイムアウトを避けるため、約 16k を超える場合)
  • システムプロンプト:完全に互換性があります

ベストプラクティス

  1. 控えめに始める:低い予算から始め、必要に応じて増やします
  2. 実際の使用量を監視する:応答の usage に含まれる thinking_tokens を追跡します
  3. ストリーミングを使用する:UX の向上と大きな出力に役立ちます
  4. 思考ブロックを保持する:複数ターンのツール使用では不可欠です
  5. 負荷の高いワークロードにはバッチ処理を使用する:予算が 32k トークンを超える場合はバッチ API を使用します
  6. 予算をタスクに合わせる:単純なタスクに過剰な割り当てをしないでください

Claude Code との統合

拡張思考モデルで Claude Code CLI を使用する場合:

# The CLI automatically handles extended thinking for supported models
# Use opus or sonnet models for complex tasks

claude --model claude-opus-4-8 "Analyze this codebase architecture"

関連項目

  • [[complex-reasoning]] - 複数ステップの推論パターン
  • [[deep-analysis]] - 分析的思考のテンプレート
  • [[llm-integration]] - LLM API の一般的なパターン

コメント