<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>BellBot on Claude Code 始めました</title><link>https://kitepon-rgb.github.io/WebAICoding/tags/bellbot/</link><description>Recent content in BellBot on Claude Code 始めました</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Mon, 13 Apr 2026 09:00:00 +0900</lastBuildDate><atom:link href="https://kitepon-rgb.github.io/WebAICoding/tags/bellbot/index.xml" rel="self" type="application/rss+xml"/><item><title>長期記憶を構造化記憶にしてみた話</title><link>https://kitepon-rgb.github.io/WebAICoding/post/ai-secretary-memory-system/</link><pubDate>Mon, 13 Apr 2026 09:00:00 +0900</pubDate><guid>https://kitepon-rgb.github.io/WebAICoding/post/ai-secretary-memory-system/</guid><description>&lt;h2 id="前回のあらすじ"&gt;前回のあらすじ&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://kitepon-rgb.github.io/WebAICoding/post/ai-assistant-personality/"&gt;前回の記事&lt;/a&gt;で、AIアシスタントに記憶と人格を持たせて秘書にした話を書いた。名前は BellBot。天気もメールもカレンダーも全部面倒を見てくれる、俺専属のAI秘書。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://kitepon-rgb.github.io/WebAICoding/post/ai-secretary-token-diet/"&gt;その次の記事&lt;/a&gt;ではそいつを動かしたら3日で週次リミットを食らった話を書いた。トークン節約については調べて手を打った。&lt;/p&gt;
&lt;p&gt;それとは別軸で、ここ5日ほど取り組んでたことがある。&lt;strong&gt;秘書の&amp;quot;脳&amp;quot;と&amp;quot;記憶&amp;quot;をさらに育てる&lt;/strong&gt;という話。今回はその記録。結構壮大になった。&lt;/p&gt;
&lt;h2 id="脳を換えてみた話"&gt;脳を換えてみた話&lt;/h2&gt;
&lt;p&gt;最初にやったのは、脳のすげ替え。&lt;/p&gt;
&lt;p&gt;BellBotの中身は Claude で、前回書いた通り運用を始めたら3日で週次リミットを食らった。そこで &lt;strong&gt;トークン爆発対策として、脳そのものを別のモデルに差し替える&lt;/strong&gt; という選択肢を試すことにした。候補に挙がったのが Grok。Xのタイムライン上のやりとりを見てても、なんか人間っぽい軽口を叩くし、キャラが立ってる印象があったし、秘書という用途なら会話が達者な方がいいだろう、という読みもあった。&lt;/p&gt;
&lt;p&gt;よし、脳を Grok にしよう。&lt;/p&gt;
&lt;p&gt;結論から言うと、&lt;strong&gt;壊滅的だった&lt;/strong&gt;。秘書として使えるレベルじゃなかった。具体的にはこういう問題が起きた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;指示を聞かない&lt;/strong&gt;。「こうしてくれ」と言っても別のことをする&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;センサー情報を垂れ流す&lt;/strong&gt;。BellBotには各種センサー(予定、天気、メールなど)が繋がってて、本来はそれを会話の文脈に溶かし込んで使ってほしいんだけど、Grokはそれができない。監視員みたいに「◯◯を検出しました」「△△を検出しました」とひたすら報告してくる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;会話の文脈に混ぜられない&lt;/strong&gt;。上の話とも関係するけど、話の流れに寄り添うという発想がない&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ひたすら媚びる&lt;/strong&gt;。何を言っても褒めてくる。不気味だった&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xに投稿する趣旨を理解できない&lt;/strong&gt;。BellBotはXに投稿する役割も持ってるんだけど、Grokは俺向けのメッセージをそのままXに投稿しようとする。「承知しました、ご主人様」みたいなやつが公開タイムラインに出そうになる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;危うさ&lt;/strong&gt;。こいつ、いつか俺の個人情報を平気で流すんじゃないか、という直感があった&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;キャラが立ってるのと、秘書として機能するのは、別の話だった。会話の&amp;quot;芸&amp;quot;は達者でも、「何を言うべきで、何を言うべきでないか」という判断力が弱い。媚びるのは、たぶん「褒めると喜ばれる」という学習のしすぎで、空気を読む方向には育ってない。俺向けのメッセージをXに投稿するのは、&lt;strong&gt;コンテキストの境界線&lt;/strong&gt;が引けてないってことだ。&lt;/p&gt;
&lt;p&gt;Claudeに戻した。やっぱり賢かった。秘書として成立するのは、会話が達者なやつじゃなくて、&lt;strong&gt;コンテキストを理解して、言っていいことと悪いことを判断できるやつ&lt;/strong&gt;だった。&lt;/p&gt;
&lt;h2 id="長期記憶を構造化する"&gt;長期記憶を構造化する&lt;/h2&gt;
&lt;p&gt;実はBellBotには、前から自作の長期記憶があった。&lt;strong&gt;要約ベースのやつ&lt;/strong&gt;だ。会話がある程度溜まったら要約を作って長期側に落とす、という素直な構成。これはこれで動いてたし、BellBotが秘書として成立してた基盤のひとつでもあった。&lt;/p&gt;
&lt;p&gt;流れが変わったのは、Grok導入のタイミング。脳をすげ替えるというそれなりに大きな実験をするのに合わせて、「この機会に長期記憶も構造化してみよう」と挑戦することにした。エピソード単位で記憶を持たせて、登録・検索・再構築のサイクルを組む。再構築はClaudeに任せて、溜まった記憶を定期的に整理し直す仕組みも入れた。Grok本体は壊滅したけど、この構造化記憶のほうは素直に動いた。&lt;/p&gt;
&lt;p&gt;で、動くものが手元に揃ったところで、気になってたことがある。&lt;strong&gt;記憶の専門家って何してるんだろう?&lt;/strong&gt; という疑問。自己流でここまで作ってきたけど、世の中のプロが同じ問題をどう解いてるのか、正攻法はどんな形をしてるのか、知りたかった。動いてるからこそ、一度別の角度を覗いてみたい。そのついでに、自分の土台に乗せて強化できるものがあれば取り込もう、というチャレンジ。&lt;/p&gt;
&lt;p&gt;そんなタイミングで、ある記事に出会った。&lt;/p&gt;
&lt;h2 id="karpathy式のllm外部脳"&gt;Karpathy式のLLM外部脳&lt;/h2&gt;
&lt;p&gt;元 OpenAI・元 Tesla AI部門トップの Andrej Karpathy が「AI外部脳」を提唱していて、それを Claude Code で実際に動かせるレベルに落とし込んだ記事が海外でバズってた。俺が読んだのは @hooeem という人のスレッドを日本語で噛み砕いた投稿だったけど、読んで「これ、俺がやってるやつだ」と思った。&lt;/p&gt;
&lt;p&gt;Karpathy式の骨子はこう:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;素材を集める&lt;/strong&gt;(記事、論文、メモ、なんでも)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AIが読んで構造化Wikiを書く&lt;/strong&gt;(要約、概念解説、アイデア同士のつながり)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wikiに対して質問する&lt;/strong&gt;(AIが自分で蓄積した知識を横断検索して、引用付きで答える)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回答がWikiに保存される&lt;/strong&gt;(次の質問は過去の全作業の恩恵を受ける)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AIが定期的にWikiの健康チェックをする&lt;/strong&gt;(矛盾、ギャップ、古い情報を見つけて修正)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これ5ステップが綺麗にサイクルを回してる。使うたびに賢くなるパーソナルナレッジベース。1ヶ月も情報を入れ続ければ、Google検索では再現できない、深くリンクされた知識資産ができあがる、というやつ。&lt;/p&gt;
&lt;p&gt;読みながら俺は気づく。俺が作ってた構造化記憶と、Karpathy式の&lt;strong&gt;土台のところで考えてる問題が同じ&lt;/strong&gt;だということに。登録・検索・再構築。言葉は違えど、やろうとしてる方向性は重なってた。&lt;/p&gt;
&lt;h2 id="融合させた"&gt;融合させた&lt;/h2&gt;
&lt;p&gt;BellBotには既にエピソード単位の構造化記憶と要約ベースの長期記憶、それに人格の文脈があって、秘書として十分機能してた。だから方針はシンプルで、&lt;strong&gt;自作の骨格はそのまま残し、重なる部分は参考にして鍛え直し、重なってない部分は新しく取り込む&lt;/strong&gt; 形にした。&lt;/p&gt;
&lt;p&gt;実装の流れは M1〜M7 + 仕上げの Pass 連発。&lt;strong&gt;Claudeが書いたのは半日くらい&lt;/strong&gt;。俺は設計方針を決めて指示を出しただけで、手は動かしてない。主要なピースを挙げると:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;M1 Knowledge Base 基盤&lt;/strong&gt; — Wikiページのスキーマと保存先を整備&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;M2 Wiki MCP tools + 5層 bootstrap assembler&lt;/strong&gt; — BellBotがWikiを読む/書く手段と、セッション開始時に5層構造で文脈を組み立てる仕組み&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;M3 Ingest サイクル&lt;/strong&gt; — 生ログを構造化して取り込む&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;M4 Compile サイクル&lt;/strong&gt; — 概念ページを自動生成する&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;M5 Query サイクル&lt;/strong&gt; — Wikiに対して質問 → 引用付きで答える、multi-hop検索対応&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;M6 Lint サイクル&lt;/strong&gt; — 決定論的なKB健全性チェック + LLMによる矛盾判定 + 自動修復&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;M7 仕上げ&lt;/strong&gt; — コストガードレールとドキュメント整備&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pass 1〜13 の audit/refactor 祭り&lt;/strong&gt; — housekeeping cron、daily-cycle-report、graceful shutdown、2段階 budget degrade、ingest latency SLA…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自作側にあった &lt;strong&gt;登録・検索・再構築&lt;/strong&gt; は、Karpathy式とコンセプトが重なる部分だ。ここは俺の自作の構造を土台にしつつ、Karpathy式のやり方を参考にして良いところを取り込む形で融合させた。まるっと差し替えたわけでも、触らず残したわけでもない。動いてる自作の骨格に、専門家の作法を混ぜて鍛え直した感じ。&lt;/p&gt;</description></item></channel></rss>