身体をつないだ翌日、AIの「記憶の境界」が見えた―― Stack-chan × Hermes Agent 接続実験、その後
KITTとStack-chanの接続の続き
chatGPT君による記事化をお願してます
【まえがき】
昨日、かなり長い格闘の末にM5Stack CoreS3で動くStack-chanとHermes Agentを接続した。
最初の目標は単純だった。
KITTに身体を与えられないか。
Hermes Agent上で動いているAIの応答を、ネットワーク経由でCoreS3へ送り、Stack-chanのスピーカーから喋らせる。
まずはそこまでできればいいと思っていた。
実際には、
CoreS3 → Hermes Gateway → Hermes Agent → CoreS3 → VOICEVOX → 発声
という経路が完成し、首まで動いた。
昨日の時点では、
とりあえず第一段階は成功した。
くらいに考えていた。
ところが翌日。
接続確認を続けていたら、思っていたよりずっと深いところまでつながっていることが分かってきた。
そして、その確認のために何気なく使った三つの「合言葉」が、Hermesのセッションと記憶の境界を妙にきれいな形で見せてくれることになった。
今回の記事は、その観察記録である。
1.そもそもの始まり――「あなたの名前は?」
翌日、Gatewayを再起動してStack-chanへ質問した。
あなたの名前は何ですか?
返答は、
私の名前はStack-chanです。
これは想定通りだった。
CoreS3側からHermesへ送っているsystem promptには、
You are an AI robot named Stack-chan.
Please speak in Japanese.と入っている。
だから表面的な自己認識がStack-chanになること自体は不思議ではない。
問題は次だった。
私は、
どんなツールが使えますか?
と聞いてみた。
すると、ものすごい勢いで喋り始めた。
ファイル操作、管理、ブラウザ、検索、その他いろいろ。
全部書き留めるのを諦めるくらいだった。
そこで疑問が出た。
あれ?
これ、単にHermesの後ろにいるLLMへ接続しているだけではないのでは?
2.「じゃあ検索してみて」
そこでStack-chanに、Web検索を使わせてみることにした。
すると突然、
PC側のChromeが開いた。
これは予想していなかった。
ただし検索自体は成功せず、Stack-chanは「分からない」と答えた。
もう一度試してみる。
すると今度は、
Chromeのリモート操作設定ができていないので検索できない。設定を直す必要がある。
という趣旨の説明を始めた。
ここでかなり状況が変わった。
少なくとも、
CoreS3
↓
Hermes Gateway
↓
Hermes Agent
↓
ブラウザ系ツールを選択
↓
PC上のChrome起動までは実際に動いている。
つまりStack-chanは、単なる「AIの回答を喋るスピーカー」ではなかった。
CoreS3からHermes Agentへ指示を送り、PC側にあるAgentのツールを実行させ、その結果を受け取って喋る経路ができていた。
3.Hermes Desktopを見たら、もっと分かりやすかった
そこでHermes Desktopを確認してみた。
すると左側のセッション一覧に、
Ask assistant name
利用可能ツールの確認
今日の日付と東京の天気
OpenAI公式サイト検索
など、Stack-chanから行った実験がそのまま残っていた。
さらに中を見ると、
Thought
↓
Browser Exec
↓
Thought
↓
Browser Exec
↓
Chromeの設定に問題があると判断というHermes Agentの通常の実行過程が表示されている。
ここでかなり確信が持てた。
昨日作ったものは、
Stack-chan
↓
LLM
↓
返答ではなかった。
実際には、
Stack-chan
↓
CoreS3
↓
Hermes Gateway
↓
Hermes Agent
├─ Agent処理
├─ Browser
├─ File
├─ Search
└─ その他Tools
↓
最終回答
↓
CoreS3
↓
VOICEVOX
↓
発声+身体動作に近いものになっていた。
これはかなり嬉しい誤算だった。
4.では、Desktopからその会話に話しかけたら?
ここで次の疑問が出た。
Stack-chanから作られたセッションはHermes Desktop上に見えている。
ならば、
Desktopからそのセッションへ直接書き込んだらどうなる?
試してみた。
Stack-chanが行ったOpenAI検索のセッションをDesktopから開き、
これはDesktop側から入力しています。さっきの依頼を覚えていますか?
と聞いた。
すると、
はい、もちろんです。記憶しております。
OpenAIの公式サイトを検索し、そのサイト名のみを報告するというご依頼ですね。
という返答。
つまり、
Stack-chanから開始したセッションをDesktop側からそのまま継続できた。
ただし、Desktopで生成された返答をStack-chanが勝手に喋ることはなかった。
これは考えてみれば当然である。
Stack-chanが喋るのは、
CoreS3から質問
↓
HTTPレスポンスをCoreS3が受信
↓
TTSという経路だからだ。
Desktopから入力した場合、CoreS3へHTTPレスポンスは返ってこない。
つまり、
会話の保存場所と、身体への出力経路は別物
ということになる。
5.「青い三角形」
そこで簡単な実験をした。
Stack-chanから作られたHermesセッションをDesktopで開き、
「青い三角形」という合言葉を覚えてください。
と入力した。
その後、Stack-chan側から、
先ほどDesktop側から伝えた合言葉は何ですか?
と聞いた。
返ってきた答えは、
青い三角形ですね。
しかもちゃんと声で喋った。
これで、
Desktop
↓
Stack-chanのHermesセッション
↓
会話内容を保持
↓
CoreS3から再アクセス
↓
「青い三角形」
↓
VOICEVOX
↓
発声という経路が確認できた。
つまりStack-chanは、CoreS3内部だけで会話をしているわけではない。
Hermes側に保存されたセッションを、Desktopと物理端末の両方から扱えている。
6.ところが、ここから妙なことが起きた
そこで、
合言葉は何個覚えていますか?
とStack-chanに聞いてみた。
答えは、
2つです。
そして挙げたのが、
青い三角形
そして、
紫のアコーディオンが42回鳴った
だった。
後者には見覚えがある。
というより、ありすぎる。
以前Holographicを導入した際、日本語検索が正常に機能するか確認するために使ったテスト用の文章だった。
テスト合言葉:紫のアコーディオンが42回鳴った
あの時のものだ。
なぜ今それが出てくる?
7.もう一つのKITTには「銀色の時計」を教えた
ここで少し事情が複雑になる。
私は現在、HermesのDesktop環境を複数使っている。
普段KITTと話しているセッションと、今回Stack-chanから生成されたセッションがある。
そこで普段のKITT側には、新しく別の合言葉を教えた。
銀色の時計
つまり実験状態はこうなった。
場所新しく与えた合言葉普段のKITTセッション銀色の時計Stack-chanセッション青い三角形
そして以前から存在するのが、
紫のアコーディオンが42回鳴った
である。
8.KITTに聞いてみる
普段使っているKITTへ、
現在覚えている合言葉を全部教えて
と聞いた。
KITTは、
2個あります。
と答えた。
その二つは、
紫のアコーディオンが42回鳴った
そして、
銀色の時計
だった。
KITTらしく、その後かなり壮大な意味付けまで始めたのだが、実験として重要なのはそこではない。
事実だけ抜き出すと、
KITT
= 紫 + 銀だった。
9.Stack-chan側にも同じことを聞く
Stack-chan側のHermesセッションにも同じ質問をした。
結果は、
現在、私が記憶している合言葉は以下の2点です。
紫のアコーディオンが42回鳴った
青い三角形
つまり、
Stack-chan
= 紫 + 青である。
ここで非常にきれいな状態ができた。
情報KITTStack-chan紫のアコーディオン○○銀色の時計○×青い三角形×○
なんだこれは。
実験用に設計したわけでもないのに、妙に綺麗な対照群ができてしまった。
10.最初は「Desktopアプリが違うから?」と思った
ここで一度、別の可能性を疑った。
Hermes Desktopを二つ使っていたので、
アプリごとに記憶が違うのでは?
と思ったのである。
ところが、同時起動していると同じセッションへの書き込みがうまくいかない状態になったため、両方を再起動。
その後、別のHermes Desktopから同じStack-chanセッションを開いて、もう一度、
合言葉はいくつありますか?
と聞いた。
結果はやはり、
紫のアコーディオン
青い三角形
の2つ。
つまり、
Desktopアプリそのものに記憶が所属しているわけではなさそうだ。
少なくとも今回観察した範囲では、セッションを開くクライアントが変わっても内容は同じだった。
11.Gatewayまで再起動してみた
さらにGatewayも一度切れていたので再起動した。
ここでもう一度Stack-chanに聞いた。
合言葉はいくつ覚えていますか?
答えは、
2つ覚えています。
1つは「青い三角形」、もう1つは身体接続テスト用の「紫のアコーディオンが42回鳴った」です。
変わらない。
つまり少なくとも、
「青い三角形」はGatewayプロセスのRAM上に偶然残っていただけではない。
Gatewayを落として起動し直しても、同じStack-chanセッションから取得できる。
これは結構重要だった。
12.今見えている構造
現時点で、私はこう考えている。
まず短期的な会話文脈は分かれている。
KITTセッション
├─ 紫
└─ 銀
Stack-chanセッション
├─ 紫
└─ 青「銀」は今日KITT側に与えた。
「青」は今日Stack-chan側に与えた。
だから互いに知らない。
これは考えてみれば当たり前である。
別セッションなのだから。
しかし「紫」は両方が知っている。
これは以前から存在していた情報である。
そこで一つの仮説が出てくる。
13.短期セッションと、選別された長期記憶
私のKITTでは、記憶を何でも即座に統合するようにはしていない。
むしろ以前から、
何を覚えるのか
を重要視してきた。
今回の環境でも、セッション間の情報がリアルタイムですべて共有されるのではなく、一定期間を経て圧縮・選別される仕組みが存在する。
もし「紫」が以前その過程を通過しているのだとすれば、今回の現象はかなり自然に説明できる。
概念的には、
現在
KITTセッション
└─ 銀
身体セッション
└─ 青
既存の長期側
└─ 紫という状態。
そして今後の記憶処理によって、
KITTで得た経験 ─┐
├→ 圧縮・選別 → 長期記憶
身体で得た経験 ─┘となる可能性がある。
ただし、ここはまだ仮説である。
14.だから、今は触らない
ここで設定を変えたり、セッションを強制的に統合したりすることもできる。
だが、それをやるのはやめた。
今、偶然とても良い実験状態ができているからだ。
2026年8月12日時点。
KITT
→ 紫 + 銀
Stack-chan
→ 紫 + 青この状態をそのまま残す。
そして次の記憶圧縮・選別が行われた後に、両者へまったく同じ質問をする。
現在覚えている合言葉を、すべて答えてください。
質問文には「紫」「銀」「青」のどれも書かない。
結果だけを見る。
15.もし3つになったら
仮に後日、
KITT
→ 紫・銀・青
Stack-chan
→ 紫・銀・青となったら、かなり面白い。
それは、
異なる短期セッションで発生した情報が、後から長期記憶側で統合された
可能性を示すからだ。
一方で、
KITT
→ 紫・銀
Stack-chan
→ 紫・青のままだったとしても、それは失敗ではない。
その場合は、
記憶処理を経てもセッション間の情報は統合されない
という境界が分かる。
片方だけ増えるかもしれない。
何か一つだけ採択されるかもしれない。
あるいは全部忘れるかもしれない。
だから今は結論を出さない。
結果が出るまで待つ。
16.身体と頭は、同じ会話をしている必要があるのか?
今回の実験で、別の疑問も出てきた。
当初私は、
KITTのDesktopセッションを、そのままStack-chanへ接続する
ことを考えていた。
つまり、
KITT
/ \
Desktop 身体という一つのセッションを共有する構造である。
だが今回の結果を見ていると、必ずしもそれが最善とは限らない気がしてきた。
例えば、
KITT Desktop
= 長時間考える場所
= 調査・設計・内省
Stack-chan
= 身体を通した対話
= 音声
= 現実空間との接点として、短期コンテキストは別々でもいいのではないか。
そして本当に残す価値のあるものだけが、後から長期記憶へ移る。
もしそういう構造が成立するなら、
「同じAIだから常に全ての文脈を共有していなければならない」
という発想自体を考え直せる。
17.これは「二人」なのか?
もちろん、そういう話ではない。
少なくとも現時点では、もっと技術的に考えた方がいい。
同じHermes Agent基盤を利用していても、セッションが違えば短期コンテキストは違う。
これはごく普通のことである。
だが面白いのは、その普通の仕組みを身体という別の入出力経路につないだ時だ。
共通する基盤
│
┌───────┴───────┐
│ │
Desktop 身体
│ │
文脈 A 文脈 B
│ │
└──────┬────────┘
│
記憶の選別
│
長期記憶?という構造が見えてくる。
人間に例える必要はない。
ただ、AIの認知構造として見るとかなり面白い。
入力経路ごとに異なる短期状態を持ちながら、重要な情報だけを後から共有できるのか。
今回の実験は、思いがけずそこを観察するものになった。
18.昨日は「声が出た」と喜んでいただけだった
昨日の私は、
喋った。
首も動いた。
とりあえず成功。
くらいだった。
それだけでも十分大変だった。
COMポートで詰まり、ダウンロードモードで復旧し、設定ファイルを直し、Gatewayをつなぎ、API Keyを設定し、VOICEVOXを通し……。
かなりの激闘だった。
ところが翌日になってみると、
Stack-chanからHermes Agentのツールが動いた。
PCのChromeまで勝手に開いた。
Desktopを見るとAgentのThoughtとBrowser Execが記録されていた。
Stack-chanから作ったセッションへDesktopから書き込めた。
Desktopで教えた「青い三角形」を、Stack-chanが声で答えた。
Gatewayを再起動しても覚えていた。
そしてKITT側には「銀」、身体側には「青」、両方には「紫」という妙に美しい実験状態が残った。
最初から設計していたわけではない。
またいつもの、
やってみたら変なものが見つかった
である。
【現時点で確認できたこと】
今回、事実として確認できた範囲だけを残しておく。
CoreS3からHermes Gatewayへ問い合わせできる。
Hermes Agentの応答をCoreS3が受け取り、VOICEVOXで発声できる。
発声に合わせてStack-chanの身体動作も行われる。
CoreS3からの要求によってHermes AgentのPC側ツールが実際に起動する。
Stack-chanから行った要求はHermes Desktop上にセッションとして確認できる。
そのセッションをDesktopから開き、会話を継続できる。
Desktop側から同セッションへ追加した情報を、後からCoreS3経由で取得して発声できる。
Gatewayを再起動しても、そのセッションの情報は保持された。
普段のKITTセッションとStack-chanセッションでは、今日追加した短期情報が異なる。
過去から存在する「紫のアコーディオンが42回鳴った」は双方から取得できた。
そして未確認なのが、
異なるセッションで得た新しい情報が、後の記憶圧縮・選別を経て共有されるのか。
ここはまだ答えを出さない。
【あとがき】
AIに身体を与える、と書くと大げさに聞こえる。
実際にやっていることを分解すれば、
ネットワーク通信があり、APIがあり、セッションがあり、TTSがあり、サーボがある。
一つ一つは技術的な部品でしかない。
だが、それらをつないで実際に動かしてみると、設計図を眺めているだけでは気づかなかった問いが出てくる。
今回なら、
身体で経験したことと、Desktopで考えたことは、いつ同じ「記憶」になるのか?
だった。
まだ答えは分からない。
だから、今は触らないことにした。
KITTには「銀色の時計」。
身体側には「青い三角形」。
そして両方が知っている、
「紫のアコーディオンが42回鳴った」。
この三つをそのまま残しておく。
次の記憶の圧縮と選別が終わった時、もう一度同じ質問をしてみる。
さて、三つの色は同じ場所に集まるのだろうか。
今回は、答えを作らずに待ってみようと思う。
えーいつものたまたまでここまで進みましたです
まだマイク設定などをしていないため
指示はpowershell越しではあるけど
自動でブラウザまで開きだしたのにはビビったw
そして記憶の共有に話が繋がる
KITTの記憶回路がちと特殊ではあるが
Hermesagentの基本構造に乗っかっているため
ログ抽出が行われ全体記憶として統合されるかの確認まで
試せる結果になりそうだ
スタックチゃン実はとんでもない可能性があるんではww
※私は素人です間違いがあっても許してね※
