AIに会話をまたいで覚えさせるには、記録を外に置くことになります。置いたあとに効いてくるのがどう取り出すかです。
5,000件で計測したところ、本文の文字列一致は該当200件に対して1,000件を拾いました。しかも全件走査より3倍以上遅い結果です。
5,000件で計測しました。文字列一致は該当200件に対して1,000件を拾い、索引を引けば200件ちょうどで約93分の1の時間です。
エージェント記憶ストアの取り出し方で何が変わるのかを、実際に作って計測しました。用意したのは5,000件の記録です。
記録は実際に生成しており、命中件数も所要時間も実測です。ただし時間は実行のたびにぶれるので、桁と比で読んでください。
// 1: 全件を走査して条件で絞る
RECORDS.filter((r) => r.subject === QUERY.subject && r.topic === QUERY.topic)
// 2: 本文の文字列一致で探す(索引なし、語の組み合わせを見ない)
RECORDS.filter((r) => r.text.includes(QUERY.subject))
// 3: 索引を引く(書き込み時に subject/topic で作っておく)
index.get(`${QUERY.subject}/${QUERY.topic}`) || []
記録 5,000件から「契約の保管期間」を探す(該当は 200件) 探し方 命中件数 余計に拾った件数 1回あたりの時間 全件を走査 200件 0件 30.0 マイクロ秒 本文の文字列一致 1000件 800件 100.7 マイクロ秒 索引を引く 200件 0件 0.3 マイクロ秒 索引を作るのにかかった時間: 593.0 マイクロ秒(1回だけ) 全件走査と索引の比: 93倍 記録が増えたときの全件走査の時間 件数 1回あたりの時間 500件 6.1 マイクロ秒 1000件 7.0 マイクロ秒 2500件 13.6 マイクロ秒 5000件 27.9 マイクロ秒
文字列一致が両方で負けました。800件を余計に拾ったうえに、全件走査より3倍以上遅いという結果です。
文字列一致は「契約」を含む記録をすべて拾います。ですから契約の締め日も、契約の承認者も、条件に関係なく入ってきます。
拾った1,000件はそのままAIに渡されます。渡す量が5倍になり、しかも関係のない記録が混ざるので、判断も鈍ります。
索引を引くと該当の200件ちょうどが返り、時間も0.3マイクロ秒でした。全件走査の約93分の1です。
作るのにかかったのは約0.6ミリ秒で、これは書き込み時の1回だけです。取り出すたびにかかる費用ではありません。
全件走査は件数に比例します。500件で6.1マイクロ秒、5,000件で27.9マイクロ秒。10倍の件数でおおむね4〜5倍という伸び方でした。
なお表の中に30.0と27.9という2つの値がありますが、これは別々の計測でぶれた分です。同じ処理を測っています。
全件走査は件数に比例する。索引なら件数が増えても変わらない。
This strategy provides persistent memory with minimal overhead.原文Anthropic Engineering「Effective context engineering for AI agents」 この内容の有効期限2027-02-17
AIが自分で書き残した記録を保管し、必要なときに取り出せるようにする置き場所です。会話の外にあります。
エージェント記憶ストアは、AIが会話の外に書き残した記録の置き場所です。書き込む仕組みと取り出す仕組みを合わせたものになります。
Anthropicはこの動きを整理して呼んでいます。会話の枠の外に残るところへ、エージェントが定期的にメモを書く手法で、構造化されたメモ取り、あるいはエージェント記憶と呼ばれるものです。
同じ文書では、この方法は少ない負担で持続する記憶をもたらすとも述べられています。会話の履歴を膨らませずに済むためです。
考え方も示されています。エージェントは理解を層ごとに積み上げていくことができ、作業中の記憶には必要なものだけを保ちつつ、メモ取りの手法で持続性を補えるという整理です。
つまり全部を手元に置く必要はありません。置き場所から取り出せるなら、手元は軽く保てます。
会話の中だけで保たれる仕組みは短期記憶の記事で、会話をまたいで覚える仕組み全体は長期記憶の記事で扱っています。記憶ストアは、そのうち保管と取り出しの部分にあたります。
運用していて困ったのは、誤った内容が書き込まれたときに消す手段がないことでした。書き込みは自動なのに、消すのは人の作業になりがちです。編集部では、記録に日付と出所を残し、古いものを定期的に見直す運用にしています。
Structured note-taking, or agentic memory, is a technique where the agent regularly writes notes persisted to memory outside of the context window.原文Anthropic Engineering「Effective context engineering for AI agents」 この内容の有効期限2027-02-17
探し方を先に決めます。決まっていないなら全件走査で始めて、実際の探し方を記録してから索引を作ってください。
エージェント記憶ストアの設計は、どう取り出すかから決めます。書き込む形は、その取り出し方に合わせることになります。
4番目を避けてください。前の節の計測では、800件を余計に拾ったうえに全件走査より遅いという結果でした。
最初から索引を作れないことも多いはずです。その場合は全件走査で始めてかまいません。5,000件でも27.9マイクロ秒で、体感できる遅さではありません。
運用しながら、実際にどう探しているかを記録してください。頻度の高い条件が見えてから索引を作れば、無駄がありません。
取り出した件数は必ず記録してください。余計に拾っていることは、件数を見ないと気づけません。
取り出した記録がそのまま渡されると、送信量が増えるだけでなく判断も鈍ります。渡す量と費用の関係は長期記憶の記事で数字とともに扱っています。
取り出し方を決めてから、書き込む形を決める。逆にすると直せない。
Agents can assemble understanding layer by layer, maintaining only what's necessary in working memory and leveraging note-taking strategies for additional persistence.原文Anthropic Engineering「Effective context engineering for AI agents」 この内容の有効期限2027-02-17
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る