前回、ClawdbotをインストールしてDiscord連携まで完了させました。「これでDiscordから家のPCを自在に操作できるぞ!」と意気込んでいたのですが、使い始めてすぐに「あれ?これ意外と不便じゃないか?」という現実に直面しました。
具体的には、「Discord経由だと、PC内のローカルファイルに自由にアクセスできない」という問題(仕様)です。
今回は、Clawdbotのサンドボックス構造の話と、それを解決するためのGitHubを中心としたワークフローについてまとめます。
期待していたこと vs 現実
期待していた挙動
Clawdbotはローカルマシンで動いているのだから、Discordチャットでこう言えば通じると思っていました。
ユーザー: 「ドキュメントフォルダにある project-a/README.md を読んで要約して」 Clawdbot: 「はい、読み込みました。要約は〜〜〜」
実際の挙動
しかし実際には、Clawdbotは「そのようなファイルは見つかりません」と答えます。
なぜなら、Clawdbot(のエージェント)は、PC全体を支配しているわけではなく、非常に限定された安全な「サンドボックス(箱庭)」の中だけで動いているからです。
技術的な背景:Sandboxの壁
Clawdbotが提供するワークスペースは、初期設定では /home/user/clawd (またはそれに準ずるディレクトリ)以下に隔離されています。
- PC使用者(私): C:\Users\user\Documents や WSLの /mnt/c にアクセスできる。
- Clawdbot: /home/user/clawd という狭い世界しか見えていない。
セキュリティ的にはこれが正解です。もしDiscord経由で外部の人間がPC内のすべてのファイル(ssh鍵やプライベートな画像など)を触れたら大事故になります。だからこそ隔離されているのですが、「自分のコードを直させたい」という用途ではこの壁が邪魔になります。
解決策:GitHubを「橋」にする
「サンドボックスから出られないなら、サンドボックスの中に持ってくればいい」わけですが、いちいちファイルをアップロードしたりコピーしたりするのは面倒です。
そこでたどり着いたのが、「GitHubを経由地点(ハブ)にする」という運用です。
推奨ワークフロー
- Local (Human): Windows/VSCodeでコードを書く、原稿を書く。
- Push: 変更をGitHubリポジトリにPushする。
- Clawdbot (Agent): サンドボックス内で git clone または git pull する。
- Work: エージェントはサンドボックス内のリポジトリに対して作業(解析、修正、テスト)を行う。
- PR: 修正結果をプルリクエストとして投げる。
「思ったほど万能じゃない」けど、それがいい
最初は「ローカルファイルを直接いじってくれよ」と思いましたが、よく考えると、AIが勝手にローカルファイルを書き換えるのはリスクが高いです。
GitHubを経由することで:
- 履歴が残る(AIが何をどう変えたか追える)
- ワンクッション置ける(変な変更はマージしなければいい)
- 環境が汚れにくい(サンドボックス内で完結する)
というメリットがあります。
まとめ
Clawdbotは「インストールすればPC操作を全権委任できる執事」ではなく、「隔離された部屋に住んでいる優秀なプログラマ」というイメージで接するのが正解でした。
「部屋(サンドボックス)」の外にあるファイルは見えないので、仕事をお願いするときはGitHubという「ポスト」を経由して資料を渡してあげる。そう考えると、非常に理にかなった設計だと言えます。
次回は、実際にこのGitHubワークフローを使って、Clawdbotに記事のリライトやコード修正を依頼する具体的な手順を試してみます。