AIに計算や判断をさせるとき、答えだけ返させるか、途中の考えも書かせるかで書き方が分かれます。後者がChain of Thoughtです。
4段の計算を5問で試したところ、誤りがあった3問について答えだけでは発生箇所を1件も指せず、途中を出すと3件とも指せました。ただし出力量は16倍になります。
4段の計算を5問で判定しました。誤りがあった3問のうち、答えだけでは0件、途中を出すと3件で発生箇所を特定できます。
Chain of Thoughtで何が変わるのかを、計算問題で判定しました。用意したのは4段の計算が5問で、うち3問はどこかの段で値が狂っているものです。
断っておくと、これはモデルに解かせた実測ではありません。誤りの位置を先に置いて、それが特定できるかどうかを判定したものです。置いた値はコードに書いてあります。
const PROBLEMS = [
{ name: '請求額の計算', steps: [1200, 3600, 3960, 3960], wrongAt: 2 },
{ name: '在庫の引き当て', steps: [50, 38, 38, 12], wrongAt: null },
{ name: '割引の適用', steps: [8000, 7200, 7200, 7920], wrongAt: 4 },
{ name: '日割りの計算', steps: [30, 18, 4800, 4800], wrongAt: 3 },
{ name: '税額の按分', steps: [10000, 1000, 1000, 11000], wrongAt: null },
];
// 答えだけ: 最終値しか見えないので、誤りがあることは分かっても場所は指せない
const answerOnly = (p) => ({ wrong: p.wrongAt !== null, locatable: false });
// 途中を出す: 各段の値が見えるので、誤りの段を指せる
const withSteps = (p) => ({ wrong: p.wrongAt !== null, locatable: p.wrongAt !== null });
4段の計算を5問。誤りの発生箇所を指せるか 問題 誤りの有無 答えだけ 途中を出す 請求額の計算 2段目 指せない 2段目と分かる 在庫の引き当て なし — — 割引の適用 4段目 指せない 4段目と分かる 日割りの計算 3段目 指せない 3段目と分かる 税額の按分 なし — — 誤りがあった問題: 3 / 5 答えだけで箇所を指せた: 0 / 3 途中を出して指せた: 3 / 3 1問あたりの出力量 答えだけ: 12 tok 途中を出す: 192 tok(4段ぶん + 最終値) 倍率: 16.0倍
得たものと失ったものがはっきり分かれました。誤りの箇所は0件から3件に特定できるようになり、出力量は16倍になっています。
ここを取り違えないでください。誤りがあった問題は、どちらの構成でも3問のままです。途中を出しても誤りは消えず、見えるようになるだけです。
とはいえ見えることの価値は小さくありません。請求額の計算が2段目で狂っていると分かれば、そこだけ直せます。最終値が違うとしか分からない場合は、全部やり直すことになります。
出力量は、1段あたりの説明を45トークン、最終値を12トークンと置いて積んでいます。4段ぶんで192トークンです。
段数が増えれば倍率も上がります。10段の処理なら、単純に計算して37倍になります。
誤りは減らない。見えるようになるだけで、その代償が出力量。
Claude's latest models offer thinking capabilities that can be especially helpful for tasks involving reflection after tool use or complex multistep reasoning.原文Claude Platform Docs「Prompting best practices」 この内容の有効期限2027-02-17
多段の処理だけです。1段で終わる処理に付けても、応答が遅くなって費用が増えるだけになります。
Chain of Thoughtを常用するかどうかは、処理が何段あるかで決まります。前の節の結果が、その判断材料になります。
3番目と4番目には向きません。Anthropicも、思考は応答を遅くするので、答えの質が実際に上がる場合にだけ使うべきで、それは典型的には多段の推論が要る問題だとしています。
途中を出させることと、それを利用者に見せることは分けて考えてください。出させたうえで、画面には最終の答えだけ表示する構成が取れます。
この形にすると、読みやすさを保ったまま原因を追える記録が残ります。記録の設計はエージェント可観測性の記事で扱っています。
注意点がひとつあります。書き出された途中の考えが、実際にその答えを導いた過程だという保証はありません。もっともらしい説明が後付けで書かれることもあります。
ですから途中の値は、鵜呑みにせず検算できる形にしておくのが安全です。自分で見直させる方法の限界は自己反省の記事で扱っています。
1段で終わる処理に付けても、遅くなって高くなるだけ。
Thinking adds latency and should only be used when it will meaningfully improve answer quality - typically for problems that require multistep reasoning.原文Claude Platform Docs「Prompting best practices」 この内容の有効期限2027-02-17
答えを出す前に、順を追った考えを書かせます。最近は機能として組み込まれているため、手で書かせるのは代替の位置づけです。
Chain of Thoughtは、結論に飛ばず、順を追った考えを書かせてから答えさせる書き方です。日本語では思考連鎖とも呼ばれます。
指示としては「順を追って考えてから答えてください」と伝えるだけです。途中の考えと最終の答えを、別々のまとまりとして返させる形にすると扱いやすくなります。
分けておけば、画面に出すのは答えだけにして、途中は記録にだけ残すといった使い分けができます。
位置づけが変わってきている点は押さえておいてください。近年のモデルには思考の機能が組み込まれており、手で書かせるやり方は、その機能が使えないときの代替として案内されています。
Anthropicの説明でも、思考が無効な場合には順を追った推論を促せる、という書き方になっています。機能が使えるなら、そちらを有効にするほうが確実です。
同じ問いを複数回解かせて多数決を取る方法や、複数の筋道を枝分かれさせて探す方法もあります。Chain of Thoughtはそのうち最も単純で、1本の筋道を書かせるだけです。
運用してみて効いたのは、途中の値を後から機械で照合できる形にしておくことでした。段ごとの数値が残っていれば、どこで狂ったかを人が読まなくても突き止められます。編集部でも、記事に載せる数値は実行結果から機械で取り出す形にしています。
When thinking is off, you can still encourage step-by-step reasoning by asking Claude to think through the problem.原文Claude Platform Docs「Prompting best practices」 この内容の有効期限2027-02-17
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る