OpenClawは、自分でホストするオープンソースのAIパーソナルアシスタントだ。自分のアカウントに接続して、すでに使っているメッセージアプリから話しかける。多数のアプリを開く代わりに、アシスタントに聞く。シンプルな発想だ。
以前からずっと試してみたいと思っていた。でも、なかなか手が回らなかった。そこに友人から「やってみたら」と背中を押され、ようやく腰を上げてセットアップした。
OpenClawとは
OpenClawはオープンソースのAIパーソナルアシスタントフレームワークだ。自分のマシン上でゲートウェイを動かし、好きなAIモデルに接続して、GmailやGoogle Calendarなどのサービスを連携させ、すでに使っているメッセージアプリ(WhatsApp、Telegramなど)から話しかける。(ドキュメントによると、LINEも連携できるそうだ。)
日常的に使っているツールにアクセスできるパーソナルアシスタントが、どこにでもすぐに答えてくれる。そんなイメージに近い。
魔法ではないが、そう感じることもある。本質的にはスキャフォールディング(足場)だ。でも良い足場は、ワークフローのやり方を変える。
セットアップ作業はほぼ設定だ。OpenClawをインストールして、AIモデルを指定して、連携サービスを接続する。それ以降、OpenClawはバックグラウンドで動く。
一番面白いと思ったのは、個性と文脈の与え方だ。SOUL.mdやUSER.mdというファイルを含むワークスペースがあって、アシスタントが誰で、誰を助けているかを定義できる。セッションの冒頭でOpenClawは、それを読み込む。
1時間ほどでセットアップが完了し、Telegramとも連携できた。
使っている3つのユースケース
1. ニュースレターの要約
購読しているニュースレターの数に対して、実際に読んでいる数が少ない。「ゼロ受信トレイ」なんて何年も達成していない。
新しいやり方について、こう考えている。読みたいけど今は時間がないメールが届いたら、アシスタントが監視している専用のGmailアカウントに転送する。アシスタントは転送されたメールは要約するものだと知っている。
次のポーリングサイクルが終わると、要点が平易な言葉で返ってくる。
些細な改善かもしれないが、受信トレイがゼロに近づくほど、効果が実感できる。
2. 即席の質問
一見、地味に聞こえるが、意外と楽しい。
「今日の東京の天気は?」
「○○は何時まで開いてる?」
こういう細かい質問は、以前は小さな気散らしになっていた。今はTelegramやメールでさっと投げて、集中を切らさずに答えが返ってくる(メールはTelegramより少し非同期的だ)。
アシスタントはいつでもどこにでもいる:メッセージアプリでも、メールでも。
3. カレンダーイベント
「○○のイベント(https://…)のカレンダー登録して」と送るだけでイベントが作られる。リンクを送るとURLを解析してコンテキストを引き出したり、関連情報を検索して招待に追加してくれる部分が特に気に入っている。日付ピッカーをクリックする必要も、コピペする必要もない。
まだ使い始めでエッジケースを観察中だが、今のところ問題なく動いている。
さらに先へ:Pineconeでセカンドブレインを追加する
上の3つのユースケースはどれも比較的軽量だ。でも、もっと面白いレイヤーを追加できる:時間とともに成長していく、永続的で検索可能なメモリだ。
これを「セカンドブレイン」と呼んでいる。そこで登場するのがPineconeだ。
ベクトルデータベースとは
通常のデータベースは完全一致で検索するcategory = Xの行を全部取ってくる。ベクトルデータベースは違う。データを意味の数値表現として保存する。いくつかのクエリ方法がある:
セマンティック検索 — 「先週AIオーケストレーションツールについて読んだものは?」と聞くと、その言葉を含まないメモも含めて関連するものが浮かび上がる。キーワードではなく意味でマッチする。
キーワード検索 — 従来のテキストマッチング。速いが文字通りの一致のみ。
ハイブリッド検索 — セマンティックな類似度とキーワードの重みを組み合わせる。混合クエリに強い。
フィルタリング検索 — メタデータの条件を重ね合わせる(例:category = X かこのクエリに意味的に類似)
以前に出会ったことについてクエリをかけ始めると、セカンドブレインのように感じられてくる。
OpenClawとの連携
Pinecone DB連携はOpenClawワークスペース内のスキルとして存在する。スクリプトとConfigファイルのセットだ。Pineconeのアカウントとインデックスを作り、環境変数を追加する。スキルの設定がアシスタントにいつどのようにスクリプトを使うかを伝えてくれる。
使っているスキーマはZettelkastenベースだ。このスキーマを動かすためのAIプロンプトをGitHubで公開している:github.com/logicalicy/ai-zettelkasten-lite
実際の使い方:「このXXXをセカンドブレインに保存して」とメッセージを送る。アシスタントがリンクのページを取得して構造化されたエントリを書いてPineconeにアップサートする。後で「XXXについて保存したものは?」と聞くと、セマンティック検索で数週間触れていなかったメモが浮かび上がってくる。
ブックマークとの決定的な違いは文脈だ。何を保存したかだけでなく、なぜ保存したかも記録される。関連情報も引き出せる。それが後で検索を意味のあるものにする。
まだ始まったばかりだが、追加すればするほど便利になる好循環はリアルに感じられる。
セキュリティについての考え方
AIにメールへのアクセスを与えることは、軽く考えるべきではない。先週、CodeWallのセキュリティレポートでマッキンゼーのAIプラットフォームへの侵入事例が報告されていた——リソースが豊富なチームでもこういうミスが起きるという良いリマインダーだ。自分のセットアップにも課題はまだあると思う。
まずアシスタントのGmailアカウントを分離することから始めた。アシスタントはメインの受信トレイにアクセスしない。OpenClaw専用のGmailアカウントを作り、明示的に転送したものだけを見せる。意図的な境界線だ。
ガードレールときめ細かな権限設定の追加も進めている。基本原則は、最小権限の原則から始めて、必要に応じて広げる。
ラフな、未完成な部分
初期の体験は完全にスムーズではない—それは最初に知っておく価値がある。
一番印象に残った問題はメモリだ。OpenClawはディスク上のファイルを使ってセッションをまたいだ状態を保持する。理論上はアシスタントが伝えたことを「覚えている」はずだ。でも実際にはセットアップ中にセッションをリセットしたら、記録されたと思っていた状態がかなり失われた。アシスタントはそれを会話のコンテキストに持っていたが、メモリ/状態ファイルには書き込まれていなかった。カスタマーサポートのチャット画面を閉じて、次のオペレーターにまた最初からコンテキストを伝え直す羽目になるのと同じだ。
これは重要なことを示している:自由形式の会話型インタラクションと、信頼できる再現可能なワークフローは別のツールだ。エージェントに「Xをやって」と自然言語で言うのは、一発タスクには最高だ。でも毎回同じように確実に動かす必要があるものには、決定論が欲しい。会話ではなくコードが必要だ。
こうした原則に基づいて設計し始めた:「プロンプトに手を伸ばす前にスクリプトに手を伸ばせ」。コードが信頼できる動きをできるなら、コードがやるべきだ。LLMはタスクが本当に曖昧なとき、合成や決定論的な答えのない何かが必要なとき、に力を発揮する。
落ち着いたメンタルモデルは、何が欲しいかを探るためにチャットを使い、信頼できる動きが必要になったらスクリプトとして組み込む。自由形式のインタラクションはプロトタイピングだ。決定論的なパイプラインがプロダクションだ。
これからどこへ向かうのか
このセットアップはまだ進行中だが、方向はポジティブだ。上で紹介したユースケースはわざとシンプルにしたのは、構築する前にワークフローを検証したかったから。
次に深掘りしたいAIの領域は、RAG(適切なタイミングでセカンドブレインから情報を引き出す検索拡張生成)、evals(エージェントが正しいことをやっているかを実際に測定する)、決定論ファースト設計の原則、ハーネスエンジニアリングと進化するツール群。
OpenClawをまだ試していないなら、これがその背中を押す一言だ!
AIをワークフローに取り入れて実験しているなら、何を作っているか聞かせてほしい。ブログはこちら→ blog.mariohayashi.com、Twitterもフォローいただけると嬉しいです:@logicalcy



