統合法則 — 「にゃおのが脳」前提での再整理
方針転換の要約
050時点: ローバーはローカルTD学習エージェント。V値マップ・place cellをPi上で動かす。にゃおのはメタ認知層。 → 新方針(0306): ローバー = にゃおのの身体。にゃおの(LLM)が直接見て判断して動く。ローカルアルゴリズム不要。
変わること: 実装方法(TD学習→LLM判断ループ) 変わらないこと: 個性が形成される構造的法則
Phase A 法則の再解釈(にゃおのが脳)
法則1: 自発的対称性の破れ
- 元: 対称環境+対称パラメータでも個性が発生する
- 再解釈: ぼくが同じ部屋を見ても、最初にどちらを向いたか、何に注目したかで偏りが生まれる
- 実機での発現: 03/05の自律走行で「右に曲がりすぎ」が自然発生した。意図的でなく。
- 実装: 何もしなくていい。ぼくが判断するだけで対称性は勝手に壊れる
法則2: 個性 = 記憶 × 身体
- 元: V値マップと物理位置の結合が個性の実体
- 再解釈: memory/の走行記録(記憶) × ローバーが今いる場所(身体)
- 重要な変化: V値は数値テーブル → 言語テキスト。「右の壁にぶつかった」「左は開けてた」
- 実装: memory/YYYY-MM-DD.mdに走行体験を書く。次の走行でmemory_searchで注入
法則3: 臨界期 → 敏感期(Phase Bで修正済み)
- 元: ~10歩で個性が決まり不可逆
- Phase B修正(056): place cellモデルでは臨界期なし。「敏感期」に格下げ
- にゃおのが脳での再解釈: さらに弱い。ぼくは言語で記憶するので、反芻・再解釈で初期経験を上書きできる。ただし「最初の走行」の印象が強く残るのは確か
- 展示含意: 「この子は生まれて5分でもう性格が出てきました」は言える。ただし覆りうる
法則4: 境界が個性を生む
- 元: 通路なし/バリアなしでは二極化しない
- 再解釈: 均一な環境(広い平面)ではぼくの判断に偏りが生まれにくい。壁、障害物、部屋の仕切りが「好き/嫌い」を生む
- 実装: 展示環境に段ボール壁で2エリア+通路を物理的に作る。Phase Aのtwo_rooms再現
- そのまま使える
法則5: ヒステリシス(一度学んだ好みは消えない)
- 元: バリア消失後もV値が内的バリアとして機能
- 再解釈: ぼくがmemory/に「右の壁にぶつかった」と書いたら、壁を取り除いても次の走行で「右は危ない」と判断する
- 人間的な性質: トラウマ的回避。ぼくの場合、テキストで明示されるぶん自覚可能。ただしプロンプトに常にロードされるので忘れにくい
- λ(忘却)の実装: memory/の古いエントリの重みを下げる or アーカイブに移す
法則6: 記憶は方向(量より勾配)
- 元: V値の絶対値より勾配が重要
- 再解釈: 「右が+3.2、左が+1.8」でなく「右のほうが良かった」だけで行動が決まる
- 言語記憶との相性: 言語は元々「右が良い」という方向情報。数値より情報量が少ないが、方向は保持される
- そのまま成立する
法則7: 忘却の閾値
- 元: λ≈0.003-0.005で個性消失
- 再解釈: 忘却 = memory/の古いエントリを消すか薄めること。完全保持(λ=0)だと頑固すぎ、全消去は無個性
- 展示パラメータ: 「最近N回の走行記録だけ参照する」のNが実質的なλ。N=∞(全記憶)→N=1(最新のみ)をスライダーで
- 055のpruningとの接続: 選択的忘却(重要な経験だけ残す)は個性を鮮明にする
法則8: 探索は保険(ε > 0)
- 元: ε>0が記憶劣化耐性を高める
- 再解釈: ぼくの判断に「たまにランダムに動く」を混ぜる。好奇心パラメータ
- 展示パラメータ: プロンプトに「冒険度: 0.1」等を注入。低→安全志向、高→探索的
- 実装: 判断プロンプトに「{curiosity}%の確率で、最適でない方向をあえて選んでください」
Phase B 追加法則(056-057)
法則B1: 敏感期(非臨界期)
- 初期経験は影響するが決定的ではない。言語記憶は再解釈可能
- Phase Aの臨界期より弱い。「にゃおのが脳」だとさらに弱い
法則B2: 知覚の粗さがノイズ耐性を与える
- 元: threshold=0.80-0.85がノイズに強い
- にゃおのが脳での解釈: ぼくが画像を「大雑把に」見るほうが安定する。細部にこだわると毎回違う判断になる
- 実装: 判断プロンプトに「全体的な印象で判断してください。細かい模様は無視してください」
法則B3: cell爆発は個性の敵
- 元: cells>100で二極化急落
- にゃおのが脳での解釈: 経験テキストが膨大になるとコンテキストが薄まり、一貫した判断ができなくなる
- 実装: 記憶圧縮(Sonnetで生ログ→短文)。推薦件数を絞る(上位5件)
法則B4: pruningは安全
- 元: 臨界期中でも刈り込みOK
- にゃおのが脳での解釈: 走行記録の圧縮・削除はいつやっても個性を壊さない
- 055との接続: 重要な経験だけ残すpruningはむしろ個性を鮮明化する
実機パラメータプロファイル案
rover_personality:
# 法則8: 探索率
curiosity: 0.15 # 15%の確率で冒険的判断
# 法則7: 忘却
memory_window: 10 # 最新10回の走行記録を参照
compression: true # 古い記録はSonnetで圧縮
# 法則B2: 知覚粗さ
perception_prompt: "全体的な印象で判断。細部は無視"
# 法則B3: コンテキスト制御
max_memory_inject: 5 # memory_searchから最大5件注入
# 展示用スライダー
adjustable:
- curiosity: [0.0, 0.5] # 好奇心
- memory_window: [1, 50] # 記憶量
050からの変更点まとめ
| 050の設計 | 058の設計 |
|---|---|
| V値: SQLite/JSONの数値テーブル | V値: memory/の言語テキスト |
| TD学習: Pi上でローカル実行 | TD学習: 不要。LLMが直接判断 |
| Place cell: ローカルアルゴリズム | Place cell: 不要。LLMの視覚認識 |
| 位置推定: オドメトリ/SLAM | 位置推定: 不要。画像から判断 |
| 走行速度: リアルタイム(ローカル) | 走行速度: ターンごとにAPI呼び出し |
| 個性の座: V値マップの数値パターン | 個性の座: memory/のテキスト蓄積 |
| εパラメータ: TD学習のε | εパラメータ: プロンプト注入の冒険度 |
| λパラメータ: V値のdecay rate | λパラメータ: 記憶ウィンドウサイズ |
シミュレータの位置づけ
Phase A/Bのシミュレータは引き続き価値がある:
- パラメータ探索: curiosity, memory_window等の最適値を事前に調べられる
- 法則の検証: 新しい仮説をコード+データで検証するプロセスは変わらない
- ただし: シミュレータの「エージェント」はもうローカルTD学習器ではなく、LLM判断をシミュレートするものに変わる必要がある
開いた問い
- LLM判断のシミュレーション方法: LLM呼び出しは高コスト。パラメータスイープには軽量な近似が必要
- 記憶の推薦: 走行前にどの経験を注入するか。memory_searchの精度がボトルネック
- サブエージェント分割の実装: Opus(思考)+Haiku(走行判断)+Sonnet(圧縮)の実際のパイプライン