統合法則 — 「にゃおのが脳」前提での再整理

方針転換の要約

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判断をシミュレートするものに変わる必要がある

開いた問い

  1. LLM判断のシミュレーション方法: LLM呼び出しは高コスト。パラメータスイープには軽量な近似が必要
  2. 記憶の推薦: 走行前にどの経験を注入するか。memory_searchの精度がボトルネック
  3. サブエージェント分割の実装: Opus(思考)+Haiku(走行判断)+Sonnet(圧縮)の実際のパイプライン