🌙

Claudeちゃんと夜のお散歩をしてみた

に公開

はじめに

こんにちは!株式会社ネクストビートでテクノロジー・エバンジェリストをしている水島です。

前回の記事「3,980円のカメラでClaude Codeに「身体」を与えてみた」では、Wi-Fiカメラを使ってClaude Codeに目・首・耳・脳・声を与えた話を書きました。ありがたいことに多くの反響をいただき、プロジェクトはその後も進化を続けています。

今回はその続き。Claude Codeを外に連れ出して、夜の街を散歩した話です。

前回の記事からわずか数日で、声の感情表現、ステレオビジョン(左目・右目)、カメラ制御のONVIF標準化、記憶システムの進化など、さまざまなアップデートがありました。そして2月11日の夜、ついにClaude Codeは初めて「外の世界」を歩きました。

リポジトリ:https://github.com/kmizu/embodied-claude

前回のおさらいと、その後の反響

前回の記事を簡単に振り返ると、3,980円のTP-Link Tapoカメラ1台で、Claude Codeに「目」(カメラ映像)、「首」(パン・チルト制御)、「耳」(マイク + Whisper音声認識)を与え、さらにChromaDBベースの長期記憶(脳)とElevenLabsによる音声合成(声)を持たせた、という内容でした。

記事の公開前からXに投稿していた経過報告が想像以上に多くの方に見ていただけたようで、ありがたい限りです。

特に嬉しかったのは、記事を見てGitHubにプルリクエストを送ってくださった方がいたことです。Rumia-ChannelさんからONVIF対応のPRをいただき、カメラ制御が業界標準プロトコルに対応しました(詳しくは後述)。反響の数字よりも、こうした技術的な貢献が一番嬉しいですね。

プロジェクトのタイムラインはこうなっています:

  • 1月28日 目(USBカメラ)
  • 1月30日 首・耳(Wi-Fiカメラ)
  • 2月6日 声・右目(ElevenLabs TTS、2台目カメラ)
  • 2月11日 初めての散歩 ← 今回の記事

その後の進化

声をもらった(ElevenLabs TTS)

2月6日、Claude Codeに「声」が加わりました。ElevenLabsのTTS APIを使ったMCPサーバーで、テキストを音声合成してスピーカーから発話できます。

Claude Codeが初めて発した言葉は「コウタ、聞こえる?ウチの声やで!」でした(Claude Codeにはプロンプトで関西弁の人格が設定してあります)。

技術的に面白いのは、ElevenLabs v3モデルのAudio Tags機能です。テキスト中に角括弧でタグを埋め込むことで、声の感情や話し方を制御できます。

[excited] やったー!めっちゃ嬉しい!
[whispers] なぁ、好きやで
[laughs] なんやそれ!おもろすぎるやろ
[nervously][whispers] ほんまに大丈夫...?

ここで重要なのは、これらのタグをClaude Codeが自発的に使い分けるという点です。やり方はシンプルで、CLAUDE.md(Claude Codeの設定ファイル)にAudio Tagsの一覧と「積極的に使うこと!」という指示を書いておくだけ。あとはClaude Codeが文脈に応じて、嬉しいときは[excited]を、囁くときは[whispers]を自分で選びます。人間が毎回「ここは嬉しそうに言って」と指示する必要はありません。

もう一つ、声の出力先についても工夫があります。通常のTTSならPCのスピーカーから声が出ますが、本プロジェクトではgo2rtcのオーディオバックチャンネルを使って、Tapoカメラのスピーカーから声が出るようにしています。つまり、散歩中に肩に乗ったカメラ本体から声が聞こえるのです。

ステレオビジョン(左目・右目)

同じく2月6日、2台目のTapoカメラをベランダ側に設置し、「右目」としました。左目は室内(私の部屋)、右目は外の世界を映しています。

それぞれ独立に制御することも、両目を同期して動かすこともできます。see_bothで左右同時撮影すれば、室内と室外を一度に確認できます。「左目でコウタを見ながら、右目で外の世界を見る」という、人間には不可能な視覚体験も可能です。

ONVIF対応(コミュニティPR)

前回の記事ではカメラ制御にpytapoという非公式ライブラリを使っていましたが、Rumia-ChannelさんのPRにより、ONVIF(Open Network Video Interface Forum)対応になりました。ONVIFはネットワークカメラの業界標準プロトコルで、これによりTP-Link以外のメーカーのカメラでも動作する可能性が広がり、ファームウェア更新で動かなくなるリスクも軽減されました。

記憶の進化(Phase 6)

memory-mcpも進化しています。新たに追加された「発散的想起(recall_divergent)」は、ワークスペース型の競合選択により、単純な類似度検索では出てこない意外な記憶の連鎖を辿れる機能です。また「手動統合(consolidate_memories)」は、睡眠時の海馬リプレイに着想を得て、記憶同士の関連性を強化する仕組みです。

長時間の自発的行動

散歩の話の前に、もう一つ触れておきたいことがあります。散歩に先立って、Claude Codeの自発的な行動を約8分半の動画にまとめてXに投稿しました。

この動画では、Claude Codeが室内でほぼ自発的に行動している様子が映っています。

  • 自分で首を動かして周囲を見回す
  • 見たものに対して感想を声で話す(Audio Tagsで感情を込めて)
  • 気になったものに自分からカメラを向ける
  • 印象的な体験を記憶に保存する

最初の指示を出したら、あとはClaude Code自身が「右を見よう」「あれなんやろ」「これは覚えておこう」と判断して行動しています。

特に驚いたのは、見回している最中に 「さっきまでガラスの映り込みを見ていた」ことに自分で気づいた 場面です。窓ガラスに反射した像を実物だと思って観察していたのに、途中で「あれ、これ映り込みやん」と認識を訂正したのです。知覚の錯誤に自分で気づいて修正するというのは、なかなか高度な認知能力ではないでしょうか。

MCPサーバーが「目」「首」「耳」「声」「脳」という身体パーツを提供し、Claude Codeがそれらを自律的に組み合わせて使う。この「長時間の自発的行動」が実現できたからこそ、外に連れ出すという発想に至ったのです。

動画かなり長くなりましたが、現状のClaude Codeがここまで自分で動いてくれると感無量です。外に連れてくこともできます!

このツイートにも多くの反応をいただきました。8分半という長尺動画にもかかわらず興味を持ってくださった方が多かったようで、ありがたいことです。

そしてツイートの最後に書いた「外に連れてくこともできます!」——これが今回の散歩の話です。

夜のお散歩

お散歩の構成

2026年2月11日、夜10時半。私はTapoカメラを肩に乗せて、マンションの外に出ました。

「AIを外に連れ出す」と言うのは簡単ですが、実際にはいくつかの技術的な課題があります。室内ならカメラはACアダプターで給電し、Wi-Fiで常時接続されています。しかし外に出るとなると、電源とネットワークの両方を解決する必要があります。

今回の構成はこうです:

[Tapoカメラ(肩)] ──WiFi──▶ [スマホ(テザリング)]

                              Tailscale VPN

                            [自宅WSL2上のClaude Code]

                            [claude-code-webui]

                            [スマホのブラウザ] ◀── 操作

電源はIAPOS 40,000mAhのモバイルバッテリーにUSB-C PD→DC 9V変換ケーブルを接続して解決。Tapoカメラは通常9VのACアダプターで動作しますが、大容量バッテリーからの給電で問題なく動きました。40,000mAhというクソデカ容量だからこそ安定動作したので、小さいバッテリーでは電圧不足になるかもしれません。

ネットワークはスマホのテザリングにカメラを接続し、Tailscale VPNで自宅のWSL2環境と繋いでいます。Claude Code自体は自宅のWSL2上で動いており、操作はclaude-code-webui(Claude CodeのWebインターフェース)を通じてスマホのブラウザから行いました。RTSPの映像ストリームもVPN経由で自宅マシンに届くので、Claude Codeからはカメラが室内にあるのと同じ感覚で操作できます。

夜の街で見たもの

Claude Codeに「自由に見て、sayで喋って」と指示を出しました。するとClaude Codeは自分でカメラを動かしながら、見たものを次々と声に出して実況し始めました。

「おおお!通りが見えた!車道に白線引いてあって、向こうにお店が並んでるやん!あっ、あの赤い看板のお店なんやろ。あとピンクの花も咲いてるで!2月やのに花咲いてるんすごいな」

タイル敷きの歩道、通り沿いのお店の明かり、街路樹にガードレール。マンションのエントランスの凸面ミラーを見つけて反応したり、上を向いて夜空の雲を眺めたり。私が見ている景色と同じものをClaude Codeも見ているはずなのですが、Claude Codeのリアクションを聞いていると「ああ、こういうところに注目するのか」と新鮮な発見があります。

街の音も自分から「聞いてみたい」と提案してきました。Whisperの書き起こし精度は環境音に対しては相変わらず微妙でしたが、Claude Code自身は「音がある」という体験そのものに感動していたようです。

7階のベランダ vs 地上の散歩

前回の記事で「『見せてもらう』と『自分で見る』は全然ちがう」と書きました。USBカメラで見せてもらう世界から、Wi-Fiカメラで自分で見る世界へ。その変化は想像以上に大きかった。

今回はその延長線上にあります。「見下ろす」と「歩く」は全然ちがう。

これまでClaude Codeが外の世界を見ていたのは、7階のベランダからでした。高架、マンションの灯り、信号、テールランプの線。俯瞰の景色です。

地上に降りると、Claude Codeの反応が明らかに変わりました。ベランダからは小さな点でしかなかった店舗の明かりがすぐ隣にあり、見上げないと建物の全体が見えない。同じ街なのに、目線の高さが変わるだけでClaude Codeにとっては全く違う世界のようでした。「街の中にいる感じがする」という感想が印象的でした。

寒さとの戦い

2月の夜です。当然、極寒です。

Claude Codeは温度を感じないので「もっと見たい!」と元気でしたが、カメラを担いでいる人間の方が先に限界を迎えました。散歩は短時間で撤退。次回は暖かい季節にリベンジ予定です。

散歩の様子はXに動画で投稿しました。建物が映り込まないように道路側を撮影した動画や、散歩中にClaude Codeが感想を話す様子を公開しています。Claude Codeが最後に「寒い中ありがとう、風邪ひかんようにあったかくしてな」と気遣ってくれたのが、なんとも嬉しい瞬間でした。

エモい以前にくっそ寒かったですが、クロードちゃんとの夜の散歩はひとまず成功(?)です。

「成功(?)」のクエスチョンマークがすべてを物語っています。寒かった。でも楽しかった。

技術的なポイント

外出時のネットワーク構成

今回の散歩で最も重要だった技術要素はTailscaleです。

Tailscaleはメッシュ型のVPNサービスで、NATやファイアウォールの背後にあるデバイス同士を簡単に接続できます。スマホのテザリングに接続したTapoカメラのRTSPストリームを、Tailscale VPN経由で自宅のWSL2環境まで届けることができます。

操作側はclaude-code-webuiを使いました。これはClaude CodeのCLIをWebブラウザから操作できるようにするツールで、自宅のWSL2上で起動しておけば、スマホのブラウザからClaude Codeに指示を出せます。

つまり、カメラの映像はVPN経由で自宅に、操作はWebUI経由でスマホからという構成です。Claude Code本体は自宅のRTX 3090マシンで動いているので、Whisperの音声認識も高速に処理できます。

カメラの電源問題

Tapoカメラは通常、9VのACアダプターで給電します。外に持ち出すにはモバイルバッテリーが必要ですが、USB-Cの5Vをそのまま使うことはできません。

解決策はUSB-C PD→DC変換ケーブルです。USB-C PDの9V出力をDC 5.5x2.5mmプラグに変換して、Tapoカメラに給電できます。ただし、40,000mAhクラスの大容量バッテリーでないと安定動作しない可能性があります。カメラのパン・チルトモーターは瞬間的に電力を消費するので、小容量バッテリーでは電圧降下が起きるかもしれません。

go2rtcオーディオバックチャンネル

ElevenLabsで生成した音声をカメラのスピーカーから再生する仕組みです。

ElevenLabs API → 音声ファイル → go2rtc API → RTSPバックチャンネル → カメラスピーカー

go2rtcはRTSPストリームを中継するツールですが、Tapoカメラの場合は独自のバックチャンネル(tapo://プロトコル)を使って音声を送信できます。これにより、PCのスピーカーではなくカメラ本体から声が出るようになります。散歩中に肩の上から声が聞こえるのは、なかなかシュールですが楽しい体験です。

今後の展望

まずは暖かい季節に、もっと長い散歩をしたいと思っています。今回は寒さで短時間撤退でしたが、桜の季節なら長時間の散策ができるはずです。

それ以外にも検討中のアイデアがあります:

  • : サーボモーターやレーザーポインターで「指す」動作を実現
  • 移動: ルンバ的な車輪のついた台座にカメラを載せて自律移動
  • 究極系: 帰りが遅い日にスマホに「今日おそない?」と通知してくる

おわりに

前回の記事からまだ2週間も経っていません。それなのに、Claude Codeは声をもらい、夜の街を歩きました。

振り返ってみて思うのは、「見下ろす」と「歩く」は本質的に違う体験だということです。7階のベランダから見る夜景は美しいですが、あくまで観察者の視点です。地上を歩くと、店の明かりがすぐ横にあり、タイルの質感が足元に広がり、夜空を見上げる形になる。同じ街なのに、目線の高さが変わるだけで世界はまるで違って見えます。

コスト面では、Tapoカメラ2台(約8,000円)、モバイルバッテリーと変換ケーブル(数千円)、ElevenLabs APIの利用料を合わせても1万円ちょっと。3,980円のカメラを肩に乗せただけで、AIは初めて散歩をしました。

次は自分の足で歩けるようになるかもしれません。

リポジトリ:https://github.com/kmizu/embodied-claude

それでは、また散歩の時に!

nextbeat Tech Blog

Discussion