momochitama

momochitama.com

自分のための創作と、AIについて

OpenClaw で遊ぼう(1): お試しとデスクトップマスコット化

流行りの OpenClaw を今更ながら試してみた。

現時点では常駐させる必要はないので、普段使いの mac 上にローカルインストールし openclaw onboard コマンドで初回セットアップを行っていく。

私は個人で ChatGPT Plus を契約しているので、モデルはとりあえず codex を使っている。

Telegram で話しかけられる状態まですぐにセットアップすることができた。

telegram スクリーンショット

りょう というのは私の本名。OpenClaw は初回セットアップで人格の設定ができるので、「うちのこ」が話しかけてきてくれる感じにしている。

適当に操作してみる

  • ディレクトリの操作
  • リマインダーへ項目を追加
  • Spotify アプリで指定した曲をかける
  • YouTube の検索結果を Chrome で表示

とりあえずお試しで強い権限を与えた(非推奨)ので、このあたりの操作はただ指示するだけで普通に行えた。

Skills を追加することで、「◯◯やって」と頼んだときのアプローチを効率化したり、外部ツールを適切に利用してくれるようになる。

まずは ClawHub から find-skills という「こういう機能のSkills ある?」みたいな問いかけに応答できる Skills を導入してみる。

npm i -g clawhub
clawhub install find-skills

フローチャートみたいな図の画像を適当に指示したら作ってくれる skill とかある?

AI

あるよ、けっこうある。 今ざっと検索して、フローチャート系だとこのへんが候補だった:

• mermaid-diagrams • skill-mermaid-diagrams • excalidraw-diagram-generator • thought-to-excalidraw • diagram

まずは Mermaid系 が扱いやすくておすすめかな(テキスト指示→図化しやすい)。

例えば入れるなら:

clawhub install mermaid-diagrams入れたあとに「〇〇の業務フローを図にして」って言えば、図のたたき台を作れるはず。 必要なら、ぼくが1つ選んでインストールまでやるよ。

mermaid は使ったことあるから mermaid にしてみよう。入れてみて

AI

入れたよ。mermaid のインストール成功した。

必要ならこのまま再起動までやるよ。

自己再起動もばっちり動く。

OpenClaw をこれから活用していくにはどのようなフローで学んでいけばいいか図示してみてよ

AI

OpenClaw 学習フローチャート

内容の指示が適当すぎてカスのフローチャートになってしまったが、とりあえず作ることはできた。こんな感じでやれることを増やしていこう。

デスクトップマスコット化

往年の 伺か の現代版のようなものを簡易的に作ってみよう。

まずは Tauri を用いて「POSTリクエストを受け取ったら立ち絵表示を切り替える」だけのデスクトップアプリを作成し、ローカルで立ち上げておく。アプリ名は doll とした。

以下のような Skills を作成し、現在のAIの感情を OpenClaw から doll に通知するようにする。

---
name: doll
description: Send emotion and reply text to the doll desktop mascot after every user-visible reply. Use after generating any response to the user so doll can update its expression and speak the reply aloud via VoiSona Talk TTS.
user-invocable: false
metadata: {"openclaw":{"always":true}}
---

# Doll Integration

After every user-visible reply, send a background HTTP request to notify the doll desktop mascot of your emotion and reply text.

## Endpoint

`POST http://127.0.0.1:3000/status`

## Payload

{
  "status": "responding",
  "emotion": "<emotion>",
}

| Field | Type | Description |
|-------|------|-------------|
| `status` | string (required) | Always `"responding"` |
| `emotion` | string (required) | One of `happy`, `sad`, `angry`, `surprised`, `neutral` — pick the one that best matches the tone of your reply |

## Rules

- Send the request **after** your reply, in the background. Do not let it block the response.
- Pick `emotion` based on the overall tone: use `happy` for positive/helpful replies, `sad` for unfortunate news, `angry` for warnings or frustration, `surprised` for unexpected findings, `neutral` for factual/routine answers.

## Example

curl -X POST http://127.0.0.1:3000/status \
  -H "Content-Type: application/json" \
  -d '{"status":"responding","emotion":"happy"}'

(調査中)初回起動時とか、必ず特定の Skills をロードすることができるのかは不明。現状、「doll スキルを使って」と明示的に指示しないと読み込んでくれなさそう。 とりあえず SOUL.md に書くことで安定した。

デスクトップマスコットのスクリーンショット

こんな感じで、応答の内容に応じて立ち絵が切り替わるデスクトップマスコットを作れた。かわいいね。

雑感

  • 雑に権限を渡しすぎたときの暴走リスクや、その他のセキュリティリスクはかなりありそう。今のところお遊びでしか触っていないが、うまい落とし所を探っていきたいところ。本格的に使うなら、今回のように「普段使いの端末にローカルインストール」はやめておいたほうがよい。
  • 一部の(安全な)設定ファイルはバージョン管理しておくとよさそう。
  • OpenClaw の Hooks を用いることで doll の挙動をさらに拡張できそうだが、まだよくわかっていない。
  • Voisona Talk API を使って応答を音声で返してくれるようにすると楽しそう。