社内のAIチャットボットを運用していて、「会話が長くなるほど応答が遅くなり、利用料金も気になってきた」と感じていませんか。AIは会話のやり取りを毎回まとめて読み直すため、長い相談ほどコストと処理の負担が積み上がります。Anthropicは、この問題に対処する「会話の圧縮(コンパクション)」機能をClaude APIのベータ版として提供しています。本記事では、公式ドキュメントで確認できた内容をもとに、仕組み・設定方法・料金確認の落とし穴までを、情シス担当者向けに整理します。
課題の現状:長い会話ほど「毎回全部読み直す」ためコストが膨らむ
Claude APIのMessages APIは、会話の状態をサーバー側に持たない作りです。続きの質問をするたびに、それまでのやり取りをすべて送り直す必要があります。そのため、社内FAQボットや議事録整理のような長いやり取りでは、後半になるほど1回あたりに送る文章量が増えていきます。
中小企業では、専任のAIエンジニアがいないまま社内チャットを立ち上げるケースが多く、次のような悩みが出やすくなります。
- 会話が長引いたときに、上限を超えてエラーになる
- 利用料金が想定より増えるが、原因が分かりにくい
- 古いやり取りを人が手で削ると、大事な前提まで消えてしまう
こうした「手作業での削り込み」を減らす方法として用意されたのが、会話の圧縮です。AIが古いやり取りを要約に置き換え、以降はその要約を土台に会話を続けます。
解決の方針:自動圧縮とオンデマンド圧縮の2つの方式
公式ドキュメントでは、圧縮の方式が2つ紹介されています。
| 項目 | 自動(しきい値)方式 | オンデマンド方式 |
|—|—|—|
| ベータヘッダー | compact-2026-01-12 | compact-2026-09-04 |
| 圧縮のタイミング | 入力量がしきい値に達したとき自動 | 自分でタイミングを選ぶ |
| 実行のしかた | 通常のリクエストの中で実行 | 会話とは別のリクエストで実行でき、バックグラウンドも可能 |
| 向いている場面 | まず手軽に導入したい | 応答を止めたくない、直近のやり取りを原文で残したい |
自動方式は、会話の入力量があらかじめ決めた値に達すると、AIが要約を生成し、古い内容をその要約に置き換えてくれる仕組みです。公式は、長い会話を扱う際にまず検討する方式として案内しています。
オンデマンド方式は2026年9月14日のリリースノートで追加が案内された新しい方式です。要約の依頼を会話本体とは別に送り、返ってきた署名付きの要約ブロックを、要約前のメッセージの代わりに先頭へ置いて使います。本記事では実装の細部を扱わず、まず導入しやすい自動方式を中心に説明します。オンデマンド方式の詳細な指定方法は、公式ドキュメントの該当節で確認してください。
実装:自動圧縮を有効にする手順
自動方式は、リクエストに圧縮の設定を1つ加えるだけで有効になります。公式ドキュメントの例をもとにしたPythonのサンプルです。
import anthropic
client = anthropic.Anthropic()
messages = [{"role": "user", "content": "先月の問い合わせ対応をまとめて"}]
response = client.beta.messages.create(
betas=["compact-2026-01-12"],
model="claude-sonnet-5",
max_tokens=4096,
messages=messages,
context_management={
"edits": [
{
"type": "compact_20260112",
"trigger": {"type": "input_tokens", "value": 100000},
"instructions": "社内規程の名称・数値・決定事項は必ず残すこと",
}
]
},
)
# 返答(圧縮ブロックを含む場合あり)をそのまま履歴に追加して続ける
messages.append({"role": "assistant", "content": response.content})
導入の手順は次のとおりです。
- 対象モデルを確認する:公式ドキュメントの対応モデル一覧に、利用中のモデルが載っているか確認します。Claude Sonnet 5やClaude Opus 5などが記載されています。
- しきい値を決める:
triggerのvalueは50,000トークン以上で指定します。省略すると既定値は150,000トークンです。 - 要約の指示を書くか決める:
instructionsを指定すると、既定の要約用の指示が丸ごと置き換わります。社内用語や決定事項を確実に残したい場合に使います。 - 返答を丸ごと履歴へ戻す:圧縮が起きた場合、返答に圧縮ブロックが含まれます。次のリクエストへ、そのまま引き継いでください。
- 直近のやり取りを原文で残したいとき:
pause_after_compactionをtrueにすると、要約の生成後に一度止まります。そこで直近のメッセージを手動で残したうえで続きを送れます。
💡 学び:最初は「しきい値を低めにして動作を確認し、要約の質を見てから本番値に上げる」進め方が安全です。要約の出来は
instructionsで大きく変わります。
ハマりどころ:料金の見え方・要約の性質・ベータ版であること
導入前に、特に次の3点は確認しておきたいところです。
- 料金の集計方法が変わる:圧縮には要約を作る処理が追加で発生し、これも別に課金されます。レスポンスの最上位にある
input_tokensとoutput_tokensには、圧縮分が含まれません。実際の消費量はusage.iterationsの各項目を合計して確認します。これまで最上位の値だけでコストを集計していた場合は、集計処理の修正が必要です。 - 要約は元の会話の完全な複製ではない:細かな数値や言い回しは要約の過程で落ちる可能性があります。監査や再確認が必要な会話は、圧縮前の原文を自社のデータベースなどに別途保存しておく運用をおすすめします。
- ベータ版であり、モデルごとの注意がある:機能は変更される可能性があります。また、公式ドキュメントによると、Claude Fable 5.1とClaude Mythos 5.1では、圧縮ブロックより前の思考ブロックは引き継がれません。要約以外に前の作業内容の手がかりがなくなるため、要約に必要な情報を入れておく設計が重要です。
効果:公式ドキュメントの例で見る「消費量の数え方」
公式ドキュメントには、圧縮が起きたときの使用量の例が載っています。数値はドキュメント上の説明用の例であり、御社の実際の削減効果を示すものではありません。
| 項目 | 入力トークン | 出力トークン | |—|—|—| | 圧縮の処理 | 180,000 | 3,500 | | その後の応答 | 23,000 | 1,000 | | 合計(課金対象) | 203,000 | 4,500 | | レスポンス最上位の表示値 | 23,000 | 1,000 |
最上位の表示値だけを見ていると、実際の消費量より大幅に少なく見えてしまいます。圧縮が発生した回は一時的に処理量が増えますが、その後の会話は要約をもとに小さな入力で続けられます。効果は会話の長さや圧縮の頻度で変わるため、導入時は自社の利用ログで前後を比較してください。
キャッシュ機能によるコスト削減との組み合わせについては、Claude APIのキャッシュ活用ガイド2026で解説しています。社内FAQボットの全体像はClaude APIで社内FAQ自動化——中小企業向けAIヘルプデスク入門2026をご覧ください。
まとめ
長い会話を扱う社内チャットでは、「上限を超える」「コストが読みにくい」という問題が出やすくなります。Claude APIの会話圧縮は、設定を加えるだけで古いやり取りを要約に置き換えられる仕組みで、まず自動方式から試すのが現実的です。ただし、料金の集計方法の見直しと、原文の別保存は導入前に決めておくことをおすすめします。
「うちの業務でもこんな自動化できる?」と思った方は、 お問い合わせ からお気軽にご相談ください。 初回ヒアリング(30分・無料)で、御社の業務量・既存システム・予算から最適な構成をご提案します。
itdoor | AI/業務自動化の受託開発・コンサルティングを提供。
