OpenClawが話題なので使ってみている。最近はMastraとかLangChainとかOpenAI Agent SDKを使って同様にSlack上でパーソナルアシスタントぽいAIエージェントを作るのを試していたが、どれも常用するには至らない完成度のものしか作れず放置気味だった。Devinがとても有能なのでDevinを使える限りは自作するメリットがあまりなかった。

OpenClawはOSSのPersonal Assistantツールでとても多機能だ。GitHub Starsもすごく多くてX上でもOpenClawの話題をよく見るので、実際にさわってみなければと思って動かしてみた。

MacMiniとかVPSとかで動かしている勢もいるようだけど、ひとまず1つのマシンのローカルで完結させるようにしたかったので、Dockerで動かすことにした。

OpenClawは公式でDocker Composeでの稼働をサポートしている。なので基本的には公式ドキュメントの通りやるだけだ。CLIで対話形式で質問に答えていくだけで初期セットアップができる。

Docker - OpenClaw

なお私は最初DockerにAliasしたPodmanを使っていたので動かずハマった。いまはDockerで動かしているが、Podmanで動かすならそれ用のドキュメントもある Podman - OpenClaw

docker composeで起動したあとに管理画面にアクセスしようとすると認証周りでちょっと詰まったが、下記の記事が参考になった。

Running OpenClaw in Docker Simon Willison’s TILs

いまぐぐってみたら日本語でも私もほぼこの通りやったといえる記事があった。

OpenClawをDocker上に構築してSlack Bot化するまでのトラブルシュート

そしてなんとか動かすことができた。ネットワークは外部公開はしていない(外に出ることはもちろんできる)

GUIかTUIか選べるので、TUIから使うようにすれば上記の面倒さはなく動かすこともできる。

メッセージをやりとりするツールはSlackのSocket Modeを使っている。ネットワークを外部に公開する必要がないのでお気に入りの方法だ。普段の作業もSlack中心なので使いやすい。

LLMはOpenAIのSubscription(Codex)にした。

ここまでOpenClawを起動してSlack上で話せるようにしたところで、ChatGPTでWebブラウザ上で動かすのと同じような対話はできるようになった。

OpenClawをDockerで動かした場合、ホストOSの .openclaw/workspaces/ 以下がデフォルトでボリュームマウントされており、その配下にファイルを置くことでOpenClawのエージェントがそこを参照することができる。

私はそこにgitレポジトリをcloneしておいてみた。するとOpenClawのCodexがそこを参照してレポジトリに関する質問に答えたり、必要な実装をしてくれるようになった。Pull Requestまではまだ権限を与えてないのでできないが、それも権限を与えれば普通にできそうだ。

明日、OpenClawのその他に気付いた点について続きを書く。