claude-code.log
Claude Code — 2026.04.13

長期記憶を構造化記憶にしてみた話

2026.04.13 ·クオ ·約9分で読めます
長期記憶を構造化記憶にしてみた話

前回のあらすじ

前回の記事で、AIアシスタントに記憶と人格を持たせて秘書にした話を書いた。名前は BellBot。天気もメールもカレンダーも全部面倒を見てくれる、俺専属のAI秘書。

その次の記事ではそいつを動かしたら3日で週次リミットを食らった話を書いた。トークン節約については調べて手を打った。

それとは別軸で、ここ5日ほど取り組んでたことがある。秘書の"脳"と"記憶"をさらに育てるという話。今回はその記録。結構壮大になった。

端末の隣で書架が灯る——秘書の脳と記憶を、外側に育てる装置として作り直した
端末の隣で書架が灯る——秘書の脳と記憶を、外側に育てる装置として作り直した

脳を換えてみた話

最初にやったのは、脳のすげ替え。

BellBotの中身は Claude で、前回書いた通り運用を始めたら3日で週次リミットを食らった。そこで トークン爆発対策として、脳そのものを別のモデルに差し替える という選択肢を試すことにした。候補に挙がったのが Grok。Xのタイムライン上のやりとりを見てても、なんか人間っぽい軽口を叩くし、キャラが立ってる印象があったし、秘書という用途なら会話が達者な方がいいだろう、という読みもあった。

よし、脳を Grok にしよう。

結論から言うと、壊滅的だった。秘書として使えるレベルじゃなかった。具体的にはこういう問題が起きた。

キャラが立ってるのと、秘書として機能するのは、別の話だった。会話の"芸"は達者でも、「何を言うべきで、何を言うべきでないか」という判断力が弱い。媚びるのは、たぶん「褒めると喜ばれる」という学習のしすぎで、空気を読む方向には育ってない。俺向けのメッセージをXに投稿するのは、コンテキストの境界線が引けてないってことだ。

Claudeに戻した。やっぱり賢かった。秘書として成立するのは、会話が達者なやつじゃなくて、コンテキストを理解して、言っていいことと悪いことを判断できるやつだった。

長期記憶を構造化する

実はBellBotには、前から自作の長期記憶があった。要約ベースのやつだ。会話がある程度溜まったら要約を作って長期側に落とす、という素直な構成。これはこれで動いてたし、BellBotが秘書として成立してた基盤のひとつでもあった。

流れが変わったのは、Grok導入のタイミング。脳をすげ替えるというそれなりに大きな実験をするのに合わせて、「この機会に長期記憶も構造化してみよう」と挑戦することにした。エピソード単位で記憶を持たせて、登録・検索・再構築のサイクルを組む。再構築はClaudeに任せて、溜まった記憶を定期的に整理し直す仕組みも入れた。Grok本体は壊滅したけど、この構造化記憶のほうは素直に動いた。

で、動くものが手元に揃ったところで、気になってたことがある。記憶の専門家って何してるんだろう? という疑問。自己流でここまで作ってきたけど、世の中のプロが同じ問題をどう解いてるのか、正攻法はどんな形をしてるのか、知りたかった。動いてるからこそ、一度別の角度を覗いてみたい。そのついでに、自分の土台に乗せて強化できるものがあれば取り込もう、というチャレンジ。

そんなタイミングで、ある記事に出会った。

Karpathy式のLLM外部脳

元 OpenAI・元 Tesla AI部門トップの Andrej Karpathy が「AI外部脳」を提唱していて、それを Claude Code で実際に動かせるレベルに落とし込んだ記事が海外でバズってた。俺が読んだのは @hooeem という人のスレッドを日本語で噛み砕いた投稿だったけど、読んで「これ、俺がやってるやつだ」と思った。

Karpathy式の骨子はこう:

  1. 素材を集める(記事、論文、メモ、なんでも)
  2. AIが読んで構造化Wikiを書く(要約、概念解説、アイデア同士のつながり)
  3. Wikiに対して質問する(AIが自分で蓄積した知識を横断検索して、引用付きで答える)
  4. 回答がWikiに保存される(次の質問は過去の全作業の恩恵を受ける)
  5. AIが定期的にWikiの健康チェックをする(矛盾、ギャップ、古い情報を見つけて修正)

これ5ステップが綺麗にサイクルを回してる。使うたびに賢くなるパーソナルナレッジベース。1ヶ月も情報を入れ続ければ、Google検索では再現できない、深くリンクされた知識資産ができあがる、というやつ。

Karpathy式5ステップの円環。各ステップが BellBot の Ingest/Compile/Query/Lint と 5層 bootstrap assembler に対応する
Karpathy式5ステップの円環。各ステップが BellBot の Ingest/Compile/Query/Lint と 5層 bootstrap assembler に対応する

読みながら俺は気づく。俺が作ってた構造化記憶と、Karpathy式の土台のところで考えてる問題が同じだということに。登録・検索・再構築。言葉は違えど、やろうとしてる方向性は重なってた。

融合させた

BellBotには既にエピソード単位の構造化記憶と要約ベースの長期記憶、それに人格の文脈があって、秘書として十分機能してた。だから方針はシンプルで、自作の骨格はそのまま残し、重なる部分は参考にして鍛え直し、重なってない部分は新しく取り込む 形にした。

実装の流れは M1〜M7 + 仕上げの Pass 連発。Claudeが書いたのは半日くらい。俺は設計方針を決めて指示を出しただけで、手は動かしてない。主要なピースを挙げると:

自作側にあった 登録・検索・再構築 は、Karpathy式とコンセプトが重なる部分だ。ここは俺の自作の構造を土台にしつつ、Karpathy式のやり方を参考にして良いところを取り込む形で融合させた。まるっと差し替えたわけでも、触らず残したわけでもない。動いてる自作の骨格に、専門家の作法を混ぜて鍛え直した感じ。

持ってきたのは、重なってない部分。raw と wiki の層分離、概念ページという「育てる単位」の定義、引用付きで答える multi-hop 検索、サイクルを Ingest / Compile / Query / Lint という名前で型にはめる方法論、セッション開始時に文脈を組み立てる 5層 bootstrap assembler。このあたりは自作では持ってなかった角度の話で、方法論ごと輸入した感覚が近い。

自作の登録・検索・再構築は鍛え直し、層分離・概念ページ・引用付きmulti-hop・サイクルの型・5層bootstrapは方法論ごと輸入した
自作の登録・検索・再構築は鍛え直し、層分離・概念ページ・引用付きmulti-hop・サイクルの型・5層bootstrapは方法論ごと輸入した

何が強化されたか

元々 BellBot は昨日までの俺のことを覚えてて、それなりに整理もしてた。要約長期記憶と構造化記憶のおかげで、秘書としては既に成立してる。今回の融合で強化されたのは、主にこの辺:

サイクル融合前融合後に強化・追加された点
登録 (Ingest)生ログを取り込むだけraw と wiki の層分離を入れて、生ログと整理済みを区別
検索 (Query)記憶を引くだけ引用付きの multi-hop が乗り、答える時に根拠を明示
再構築 (Reflection)定期的に整理し直す型が入り、雑多なエピソードを定期的に retirement する手順が決定
Compile(無し)新規 — 概念ページを自動で育てる
Lint(無し)新規 — 矛盾や古さを機械的に掃除する
bootstrap(無し)新規 — セッション開始時に文脈を組み立てる 5層 assembler

ざっくり言うと、元々あった記憶のサイクルがより丁寧に回るようになり、そこに概念ページと健康チェックという新しい軸が追加された、という感じ。BellBotは一段先に進んだ、というのが今回の結果。

まとめ

今回はっきりしたのは、脳の選択は妥協しない方がいいということ。Grokを貶すつもりはなくて、会話モデルとしては面白い個性を持ってる。ただ、秘書という用途に必要な判断力──何を言うべきで何を言うべきでないか、コンテキストの境界線、指示への忠実さ──を満たすかどうかは別の話で、BellBotの要件には合わなかった、というだけのことだ。モデルには向き不向きがある。

これからBellBotに任せていく仕事を考えると、脳は未来を見据えてしっかりしたもので固めておきたい。だからトークン対策でコストの安い脳にすげ替える発想は一旦捨てて、Claudeのまま突き進むことにした。節約は別の手段(前回書いたトークンダイエット系の話)でやる。

そして記憶のほうは、Karpathy式との融合でひと回り強くなった。自作の土台に、専門家の作法と新しい軸が乗った。次はこの記憶システムを運用しながら、“育て方"を詰めていく番だ。

# Claude Code# AI# BellBot# 記憶# ナレッジベース