OllamaのThinkingをWindowsで使う方法|think・thinking・PowerShell

公開日
2026-08-10
更新日
2026-08-10
情報確認日
2026-08-10
編集・運営
Local AI Compass

OllamaのThinkingは、対応モデルが生成するthinking出力と最終回答を分けて扱う機能です。Windowsでは、モデル対応を確認し、CLIの--think・--hidethinking、native APIのthink、message.thinking・thinking・content・responseを分けて観察します。Thinkingを有効にしただけで正確性や安全性が保証されるわけではないため、表示・保存・共有の方針も同時に決めます。

導入前に確認すること

  • Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
  • 最初は軽量モデル、短い質問、少ない同時作業から始める
  • 公式サイトの対応OS、利用規約、モデルのライセンスを確認する

先に結論:Thinkingはモデル能力・指定・表示先を分けて確認する

Ollama公式のThinking docsでは、thinking-capable modelが最終回答とは別のthinking fieldを返す仕組みが案内されています。これはCLI、native API、SDKで見え方が異なるため、「thinkを付けたら通常本文へ混ざる」と決めつけず、どのfieldを表示・保存するかを先に決めます。

Ollama Thinkingの確認対象
やりたいこと最初に使う指定確認する出力
CLIでThinkingを試すollama run MODEL --think "質問"画面上のthinkingと最終回答
Chat APIで分けて読むthink: true、stream: falsemessage.thinkingとmessage.content
Generate APIで分けて読むthink: true、stream: falsethinkingとresponse
Thinkingを画面へ出さないCLIの--hidethinking、またはAPI側で表示しない最終回答とログの扱い
GPT-OSSのlevelを指定するthink: low / medium / highモデルが返すthinkingとcontent

最初は短い非機密入力とstream=falseで、model、HTTP status、thinking、最終回答、doneを保存します。CLIの表示、APIのraw JSON、SDKのobjectは別の層なので、出力を同じ形だと仮定してparserを共有しません。

対応モデルとthinkの値を先に確認する

Ollamaの公式Thinking docsは、確認時点の例としてQwen 3、GPT-OSS、DeepSeek-v3.1、DeepSeek R1をthinking-capable modelとして掲載しています。ただし、モデルのtag、Ollamaのversion、提供状況で対応範囲は変わるため、記事のmodel名をそのまま入力へ固定しません。

Ollama Thinkingのモデル依存範囲
対象指定の考え方注意点
一般的なthinking modelthink: true / false、またはCLIの--thinkモデルがThinkingに対応するかを先に確認する
GPT-OSSthink: low / medium / hightrue / falseではなくlevelを使う。完全な無効化はできないと公式docsにある
CLIの既定動作公式docsの現行説明では対応modelで有効再現性のため記事・検証では明示指定する
非対応・値の不一致modelの公式情報と実レスポンスを確認空field、エラー、無視などを成功と決めつけない
  1. PowerShellでollama --versionとollama lsを実行し、Ollama本体と保存済みmodelを記録する。
  2. 使うmodelの公式ページとOllama Thinking docsで、thinking対応とthinkの指定形式を確認する。
  3. 同じmodelをCLIとnative APIで短い非機密入力へ使い、thinkingと最終回答のfieldを比較する。
  4. 対応していないmodelや不明なtagでは、thinkingが返らないことをエラーや品質問題と混同しない。

「thinking modelだから必ず同じfieldが返る」「think=trueならGPT-OSSでも同じ強度になる」とは限りません。モデル名、tag、Ollamaのversion、client、streamの有無を一緒に記録すると、後から再現条件を追いやすくなります。

PowerShellのCLIで--think・--think=false・--hidethinkingを試す

CLIの最小確認は、保存済みmodel名をollama lsから転記し、質問を短くして実行します。Thinkingを表示すること、Thinkingを使いながら画面へ出さないこと、Thinkingを無効にすることは別の操作なので、コマンドを分けて結果を保存します。

ollama ls

# Thinkingを明示的に有効化
ollama run qwen3 --think "17 × 23を計算し、答えを短く説明してください"

# Thinkingを無効化する確認
ollama run qwen3 --think=false "同じ質問へ短く答えてください"

# Thinkingを使いながら表示を抑える確認
ollama run deepseek-r1 --hidethinking "公開可能な短い質問へ答えてください"

# GPT-OSSはbooleanではなくlevelを指定する
ollama run gpt-oss --think=low "見出し案を1つ作ってください"
  • qwen3、deepseek-r1、gpt-ossは例です。実際に使うmodel名とtagをollama ls、公式model情報で置き換える。
  • --thinkの表示内容をそのまま正しさの証拠にしない。最終回答を別に検証する。
  • --hidethinkingは画面上の表示を抑えるための確認であり、入力やログのprivacy設計を自動で変更しない。
  • PowerShellの履歴や共有画面に、個人情報・API key・社内文書を含む質問を残さない。

公式CLI docsの現行Thinking例には、--think、--think=false、--hidethinking、/set think、/set nothinkがあります。対話セッションと1回のollama runでは操作が異なるため、使うモードを記録して再現します。

native /api/chatでmessage.thinkingとmessage.contentを分ける

会話形式のnative APIでは、POST /api/chatへmessagesとthinkを送り、非streamの応答を確認します。公式Chat docsでは、assistant messageにcontent、thinking、tool_callsなどが含まれます。WindowsではPowerShell objectへ変換した後も、thinkingをcontentへ連結せず別の値として扱います。

$payload = @{
  model = "MODEL_FROM_OLLAMA_LS"
  messages = @(
    @{ role = "user"; content = "WindowsでThinkingと最終回答を分けて確認する方法は?" }
  )
  think = $true
  stream = $false
} | ConvertTo-Json -Depth 8

$response = Invoke-RestMethod -Uri "http://localhost:11434/api/chat" -Method Post -ContentType "application/json" -Body $payload
$response | Select-Object model, done, done_reason
$response.message | Select-Object thinking, content, tool_calls
Ollama native Chat APIのThinking field
レスポンス役割保存・表示の考え方
message.thinkingThinkingの出力表示・保存・共有の方針を別に決める
message.content利用者へ返す最終回答thinkingと混ぜず、通常回答として検証する
message.tool_callsモデルが要求したtool callアプリ側でschema・権限・引数を検証してから実行する
done / done_reason生成終了と終了理由接続切断や途中errorを正常終了とみなさない

localhost:11434へのnative APIは、Ollamaが起動していればローカルの接続先として使えます。modelが保存済みであること、Thinkingに対応していること、レスポンスにthinkingが返ることは別の確認です。最初の疎通成功だけでモデルの正確性や安全性を保証しません。

native /api/generateではthinkingとresponseを分ける

単発promptを送る/api/generateでは、Chat APIのmessage objectではなく、最終回答がresponse、Thinkingがthinkingとして返ります。endpointを変えると本文の場所も変わるため、Chat用のmessage.content parserをそのままGenerateへ流用しません。

$payload = @{
  model = "MODEL_FROM_OLLAMA_LS"
  prompt = "ローカルAIのThinkingを使うときの注意を2点だけ説明してください"
  think = $true
  stream = $false
} | ConvertTo-Json -Depth 8

$response = Invoke-RestMethod -Uri "http://localhost:11434/api/generate" -Method Post -ContentType "application/json" -Body $payload
$response | Select-Object model, thinking, response, done, done_reason
Ollama endpointごとのThinking field
endpoint入力の中心Thinking最終回答
/api/chatmessagesmessage.thinkingmessage.content
/api/generatepromptthinkingresponse
/v1/chat/completionsOpenAI互換messagesreasoning/thinking controlの対応を公式表で確認choicesなどclient・API形式に従う
/v1/responsesOpenAI互換inputthinking modelのreasoning summariesResponsesのoutputを使う

PowerShellで最初に確認するのは、HTTP status、model、thinking、response、doneです。空文字や未返却のfieldを、モデルがThinkingに非対応なのか、指定が違うのか、clientの表示処理が落としているのかを分けて調べます。

stream=trueではthinkingとcontentの到着順を別に扱う

Thinking対応モデルのstreamingでは、thinking chunkが先に届き、その後に最終回答のcontent chunkが届く場合があります。公式Streaming docsは、最初のthinkingを検出して表示領域を切り替え、contentが届いたら最終回答へ移る例を示しています。

$thinking = ""
$content = ""

# $chunk はNDJSONの1行をJSON化したobjectの例
if ($chunk.message.thinking) {
  $thinking += [string]$chunk.message.thinking
}
if ($chunk.message.content) {
  $content += [string]$chunk.message.content
}
if ($chunk.done -eq $true) {
  # thinkingとcontentを分けて保存し、done_reasonを確認する
}
  • Thinkingと最終回答を同じ文字列へ連結しない。
  • 途中chunkのtool_callsや不完全な引数だけで関数を実行しない。
  • 表示しない方針でも、clientやproxyのログへ残る可能性を別に確認する。
  • stream=falseで完成形を確認してからstream=trueへ進み、実際のchunkを保存してparserを決める。

streamingのwire形式、SDKのchunk型、モデルの出力順は実装条件で変わります。既存のstreaming記事ではNDJSON、done、途中error、usageを扱っているため、Thinking固有の表示切り替えと組み合わせるときも、2つの仕様を一度に固定しません。

Thinking・tool calling・OpenAI互換APIは別の機能として扱う

thinkはThinking出力の制御であり、アプリが外部関数を実行する権限を与える指定ではありません。tool callingではtools、tool_calls、tool結果の返却、アプリ側のallowlistを別に設計します。Responses APIのreasoning summariesやChat Completionsのreasoning/thinking controlも、native /api/chatのmessage.thinkingと同じfieldとは限りません。

Ollama Thinkingと周辺API機能の境界
機能主な確認対象この機能だけでは保証しないこと
Thinkingthink、thinking、message.thinking正確性、tool実行、外部通信の安全性
Tool callingtools、tool_calls、tool role、アプリ側の実行モデルの要求を無条件に実行すること
Structured Outputsformat、JSON schema、最終contentThinkingの表示・保存方針
OpenAI互換/v1のreasoning/thinking control、Responses summariesnative APIと同じparser・field

Thinkingを有効にしたagentが安全になるわけではありません。toolの名前、引数、対象ファイル、ネットワーク、破壊的操作をアプリ側で検証し、thinkingの文章を許可リストや監査結果の代わりに使わない構成にします。

Thinkingが返らない・長すぎるときのWindows切り分け

Thinkingの不具合に見える症状でも、model、thinkの値、endpoint、stream、表示処理、ログ保存を分けて確認します。特にGPT-OSSへtrue/falseを渡すケース、非対応model、ChatとGenerateのfield混同、--hidethinkingを表示停止と処理停止で混同するケースに注意します。

Ollama ThinkingのWindowsトラブル診断
症状原因候補最初の確認
thinkingが空非対応model、指定値、clientがfieldを表示していない公式model情報、think値、raw JSON、model ID
GPT-OSSのtrue/falseが効かないlevel指定が必要think=low・medium・highへ変更する
最終回答へThinkingが混ざるparserがfieldを連結しているmessage.thinking / contentを別変数にする
stream中に表示が止まるchunk蓄積、done、途中error、bufferingstream=falseへ戻り、最後のchunkを保存する
Thinkingを表示したくないCLIやUIの表示設定、ログ方針が未分離--hidethinking、表示層、保存先を別に確認する
toolが勝手に動いたように見えるThinkingとtool executionを同一視tool_calls、アプリの実行ログ、allowlistを確認する
  1. ollama --version、model名、endpoint、stream、think指定を記録する。
  2. 同じmodelと短い公開可能な入力で、CLIとAPIのどちらか一方をstream=falseで再実行する。
  3. raw responseのthinking・contentまたはthinking・responseを確認し、表示側の問題とAPIの問題を分ける。
  4. ツール・Structured Outputs・長文・外部データを一度外し、1項目ずつ戻す。
  • thinkingの文章へAPI key、個人情報、社内文書、秘密のpromptを入れない。
  • traceを表示しない設定でも、入力・出力・server log・client logの保存先を確認する。
  • thinkingを人間の監査・テスト・正確性の証明として扱わない。
  • cloud modelや外部APIを使う場合は、localhostのlocal APIと送信先・認証・料金を分けて確認する。

よくある質問

Ollamaのthinkとは何ですか?

Thinking対応モデルへThinking出力を有効化・調整する指定です。native /api/chatではmessage.thinkingとmessage.content、/api/generateではthinkingとresponseを分けて扱います。モデルによって対応する値が異なるため、公式docsと実際のレスポンスを確認します。

OllamaのThinkingに対応するモデルは?

OllamaのThinking公式docsは、確認時点の例としてQwen 3、GPT-OSS、DeepSeek-v3.1、DeepSeek R1を掲載しています。対応modelやtagは更新されるため、利用時点の公式model情報と手元のmodel名を優先します。

GPT-OSSへthink=trueを送ればよいですか?

GPT-OSSでは、Ollama公式Thinking docsの現行説明に合わせてlow、medium、highのlevelを指定します。trueやfalseは無視されると説明されているため、think=lowなどで明示し、実際の応答を確認します。

Thinkingを表示せずに使えますか?

CLIでは--hidethinkingの例があります。APIではthinking fieldを画面へ表示しない実装にできますが、表示停止と処理停止、ログ保存、外部送信の扱いは別です。入力・出力・client logの保存先も確認してください。

Chat APIとGenerate APIでThinkingのfieldは同じですか?

同じではありません。/api/chatはmessage.thinkingとmessage.content、/api/generateはthinkingとresponseです。endpointを切り替える場合は、本文の場所と終了条件を別のparserとして確認します。

Thinkingを有効にすると回答は正確になりますか?

Thinkingを有効にしただけで正確性、再現性、安全性が保証されるとは言えません。モデル、入力、context、設定、検証方法で結果が変わるため、最終回答を別のテスト・一次情報・人間の確認で評価します。

OllamaのThinkingはtool callingと同じですか?

別の機能です。Thinkingはthinking出力の扱い、tool callingはtoolsやtool_callsを受けてアプリ側が関数を実行し結果を返す流れです。toolの権限・引数・外部通信はアプリ側で検証し、Thinkingの文章を実行許可の根拠にしません。

次に読むおすすめルート

開発・API連携したい人

LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。

  1. ローカルAIをAPIで使う方法
  2. WindowsでローカルAIコーディングを始める
  3. VS CodeでローカルAIを使う
  4. LM Studioのlms CLIを使う
  5. LM StudioのTool Useを使う
  6. LM StudioのStructured Outputを使う
  7. LM StudioのResponses APIを使う
  8. LM StudioのMCPをAPIで使う
  9. ローカルAIでJSON出力する方法
  10. LM StudioとOllamaの違い
  11. コンテキスト長とは
  12. RAG・埋め込み・ベクトルDBの仕組み
  13. OllamaのEmbedding APIを使う
  14. OllamaのResponses APIを使う
  15. OllamaのAPI認証を確認する
  16. OllamaをWindowsのLANから使う前の確認
  17. OllamaのモデルID・能力を確認する
  18. OllamaのModelfileを使う
  19. Ollama native API streamingを使う
  20. Ollama Web Search APIを使う
  21. LM StudioのEmbedding APIを使う
  22. RAG評価と引用確認の基礎
  23. faithfulness確認
  24. ローカルRAGのプライバシー
  25. MCPとは
  26. ローカルLLMの安全性とプライバシー
  27. Gemma 4 12Bの更新メモ
  28. Hermes Desktopとは
  29. Hermes DesktopとLM Studio接続
  30. Hermes DesktopとOllama接続
  31. Hermes Desktop接続トラブル
  32. Hermes DesktopでOpenRouterを使う
  33. Hermes DesktopでDeepSeek APIを使う
  34. Hermes DesktopでProviderを使い分ける
  35. Hermes DesktopとLM Studio接続の確認ポイント
  36. Hermes AgentとDesktopの違い
  37. Ollamaとは
  38. Windows ARMでローカルAIを使う前の確認
  39. WindowsでOllamaをインストールする
  40. Ollamaのローカルモデルとcloudモデルの違い
  41. Ollamaのモデル保存場所と移動
  42. Ollamaのモデル一覧・削除・容量整理
  43. OllamaのOpenAI互換APIを使う
  44. Ollamaのtool callingを使う
  45. OllamaのStructured Outputsを使う
  46. OllamaのEmbedding APIを使う
  47. OllamaのResponses APIを使う
  48. OllamaのAPI認証を確認する
  49. OllamaのモデルID・能力を確認する
  50. OllamaのModelfileを使う
  51. Ollama native API streamingを使う
  52. LM StudioのEmbedding APIを使う
  53. Ollamaの解説
  54. 診断基準
  55. 比較表

あなたはどのタイプ?

関連チェック先

  • Ollama Thinking - thinking-capable model、think、thinking field、CLI、Python・JavaScript、streamの公式例を確認できます。
  • Ollama API: Generate a chat message - /api/chatのthink、message.thinking、message.content、doneの仕様を確認できます。
  • Ollama API: Generate a response - /api/generateのthink、thinking、response、streamの仕様を確認できます。
  • Ollama Streaming - thinkingとcontentがstream chunkへ分かれて届く場合の公式例を確認できます。
  • Ollama Tool calling - thinkingとtool_callsを分け、アプリ側でtool結果を返す流れを確認できます。
  • Ollama OpenAI compatibility - /v1/chat/completionsのreasoning/thinking controlとResponsesのreasoning summariesを確認できます。
  • Ollama Windows - Windows版Ollama、localhost API、PowerShellの前提を確認できます。

関連ツール

比較表を見る / 最初に検討しやすいツールを確認する