「さっきそう言ったじゃないですか!」とAIに言いたくなったこと、ありませんか?
実は、AIには記憶がありません。これは驚かれる方も多いのですが、仕組みを知ると「なるほど」と腑に落ちます。今回はその仕組みと解決策を解説します。
毎回のリクエストは「初対面」
Anthropic APIは、会話の状態を一切保存しません。つまり、あなたが「先ほど話したことを踏まえて…」と言っても、APIにとってはそのリクエストが生まれて初めての質問です。
電話を一度切ったら相手の記憶がリセットされる、そんなイメージです。毎回、初対面から会話がスタートします。
では、なぜClaude.aiのようなチャット画面では会話が続くように見えるのでしょうか?答えはシンプルです。毎回のリクエストに、これまでの会話の全履歴を丸ごとくっつけて送っているからです。
「全履歴を毎回送る」という発想
具体的には、こういうことです。あなたが「おすすめの本を教えて」と聞いて、AIが答えます。次に「その本の著者は誰?」と聞くとき、裏側では「おすすめの本を教えて→AIの回答→その本の著者は誰?」という3つのメッセージを全部送っています。
会話が長くなればなるほど、毎回送るデータ量が増えていきます。これがコストに直結するため、チャットボットを作る場合は「どこで履歴を切るか」の設計がとても重要になってきます。
コードで管理するのは3つの役割だけ
実装は意外とシンプルです。「ユーザーの発言を履歴に追加する」「Claudeの返答を履歴に追加する」「全履歴をAPIに送る」この3つの働きを組み合わせるだけで、自然な会話の流れが実現できます。
大事なのは「記憶させている」のではなく「毎回思い出させている」という発想です。
まとめ
- AIはリクエストをまたいで何も覚えていない。毎回が初対面
- 会話が続くように見えるのは、全履歴を毎回一緒に送っているから
- 会話が長くなるほどデータ量が増え、コストも上がる
次回は、AIの「キャラクター」や「話し方」を自由に設定できるシステムプロンプトを解説します。同じAIでも、設定次第でまったく別人になれます。
▶ Anthropic Academy 公式講座はこちら(無料)
※本記事はAnthropicの公式講座「Building with the Claude API」の内容をもとに日本語で解説したものです。







