notes
Ros

ROS 2 の監視→デバッグ→再デプロイをエージェントで閉ループにする

監視は決定的コード (token ゼロ)、LLM エージェントはイベント駆動で起きる。人間が rosbag を渡してフィードバックする工程を消す構成と token 消費の抑え方

要点: 「人間が bag を録ってエージェントに渡す」工程は、監視を決定的コードに任せてエージェントをイベント駆動で起こす構成で消せる。token 消費 = 発火回数 × 1 回の調査コストで、両方独立に絞れる。

閉ループの形#

┌────────────────────────────────────────────┐
│ ロボット (ROS 2 stack)                       │
│ ├ watchdog ノード (不変条件・contract 監視)   │──異常──┐
│ └ ros2 bag record --snapshot-mode (循環)     │        │
└────────────────────────────────────────────┘        │
                ▲                                     ▼
      再起動・param │                      通知 (MCP notification / hook)
                │                                     ▼
┌────────────────────────────────────────────┐
│ エージェント (イベント駆動で起床)              │
│ ①通知で起床 → ②MCP tool で調査               │
│ → ③コード修正 → ④ビルド → ⑤部分再起動        │
│ → ⑥smoke 確認 → 復帰 or 人間へ報告           │
└────────────────────────────────────────────┘
  • 監視 (常駐) はエージェントではなく決定的コード。検査内容は [[runtime-verification-layers]] の 4 層
  • 異常検出と同時に snapshot サービスで直前 N 秒の bag + manifest を自動保存 ([[rosbag-manifest-launch-wrapper]])。エージェントが起きた時点で証拠が揃っている
  • エージェントに必要な口: topic echo / node info / param dump・set / service call / TF lookup / bag record を MCP tool 化する。echo は必ず件数・バイト数・時間で cap する (context 破裂防止)

token 消費の抑え方#

発火回数を絞る#

  • severity gate: WARN は UI に出すだけ。エージェントを起こすのは ERROR 以上
  • debounce / dedup: 同一 finding の再発火を N 分抑制
  • snapshot 保存はエージェント不要で完結させる (後でまとめて見られる)

1 回の調査コストを絞る#

  • watchdog 側で要約を作ってから渡す: 生 bag を渡さない。「finding 種別・直前 30 s の該当 topic 統計・関連数値の表」を JSON で渡すと初手から仮説に入れる
  • 定型調査はスクリプト化: エージェントはスクリプト実行 + 数値読みだけ
  • トリアージを安いモデルで: 「既知パターンか新規か」を小型モデルで判定し、新規だけ本調査に回す

例: 一晩の sim で findings 20 件 → dedup 5 件 → 既知 3 件は自動分類 → 新規 2 件だけ本調査。

カバレッジの限界#

異常クラス検出
数値破綻・通信断・QoS 不整合可 (不変条件)
宣言違反・タイムアウト可 (contract)
推定 vs 真値のズレ可 (sim 限定)
挙動の回帰可 (golden run)
設計そのものの誤り不能
仕様の解釈違い不能

下 2 つは人間 (またはエージェントとの議論) の領分。閉ループが覆うのは「手を動かす系」のデバッグ。

実機への拡張#

自動再デプロイは sim 限定にし、実機は承認制から始める (誤修正 → 自動再起動 → 暴走 の経路を塞ぐ)。基板レベルの観測は [[esp32-zenoh-can-probe]] で FW 無改修から始められる。

関連#

  • [[runtime-verification-layers]] — watchdog の検査 4 層
  • [[rosbag-manifest-launch-wrapper]] — snapshot bag の再現性
  • [[esp32-zenoh-can-probe]] — 基板レベルの観測をプローブで前倒し
最終更新:

On this page