OpenClawのインストールと使い方:オープンソースのパーソナルAIアシスタント

Artificial Intelligence tutorial - IT technology blog
Artificial Intelligence tutorial - IT technology blog

cloud APIからself-hosted web UIまで、約6ヶ月間さまざまなAIアシスタントを試した結果、どんなインターフェースよりもターミナルを多く使っていることに気づいた。それがOpenClawに乗り換えた理由だ:オープンソースのCLIアシスタントで、軽量でオフライン動作も可能、local modelと組み合わせればデータが外部に送信されることもない。

パーソナルAIアシスタントの構築アプローチ比較

現在のスタックに落ち着くまで、3つのアプローチをすべて試した。それぞれ試す理由があり、そして止める理由もあった。

Cloud APIを直接呼び出す

OpenAI、Claude、Gemini — どれもモデルは優秀だが、日常的に使うには不便だ。毎回スクリプトを開く必要があり、セッション間のmemoryはなく、コストも思ったより早く積み上がる — GPT-4o-miniで些細なデバッグの質問をするだけで月$15かかったことがある。さらに、社内コードや本番設定をクラウドにペーストするのはリスクが高すぎる。

Self-hosted web UI(Open WebUI、LibreChat)

デモやチームでの共有にきれいなUIが必要なら、Open WebUIやLibreChatは優秀だ。ただ個人利用にはオーバースペックすぎる:誰も使っていない時でもDockerが400〜600MBのRAMを消費し、ちょっと質問したいだけでブラウザのタブを開き、作業中のターミナルからフォーカスを外さなければならない。

OpenClawのようなCLIアシスタント

ターミナルで直接質問を入力 — 作業場所を離れることなく使える。DockerもブラウザタブもなしでOK。セッションのmemoryはプロジェクトごとにローカルに保存される。コマンドラインで生きるdeveloperやsysadminにとって、これが最も自然なワークフローだ。

OpenClawの実際のメリット・デメリット分析

メリット

  • 完全なプライバシー:Ollamaと組み合わせることで、すべてのデータがローカルマシンに留まり — インターネットに何も送信されない
  • 軽量:Dockerもweb serverも不要 — Pythonパッケージのみで50MB未満
  • セッションmemory:コンテキスト別に会話履歴を保存、プロジェクトごとにセッション名を設定可能
  • マルチバックエンド:Ollama、OpenAI API、Anthropic Claudeに対応 — バックエンドの切り替えに全設定のやり直しは不要
  • Pipeフレンドリー:stdinの読み取り、outputのpipe対応 — シェルスクリプトや自動化ワークフローにシームレスに統合

事前に知っておくべきデメリット

  • web UIなし — ターミナルに不慣れなユーザーとの共有には不向き
  • 初期設定に若干の時間が必要、特にバックエンドとモデルの設定
  • マルチモーダル(画像、PDF)は機能フルのweb UIと比べると制限がある
  • Open WebUIのような大型プロジェクトと比べてコミュニティが小さい

OpenClawを選ぶべき場面 — そうでない場面

OpenClawは、主にターミナルで作業し、フォーカスを失わずにさっと質問したい場合に最適だ。社内コード、データベーススキーマ、本番設定など、クラウドにペーストできない機密データを扱う際にも特に便利だ。一方、ターミナルに不慣れなユーザーとの共有が必要な場合や、画像やPDFを多く扱う場合は、Open WebUIの方が依然として優れている。

OpenClawのインストールガイド

システム要件

pipでのインストール

# venvにOpenClawをインストール(推奨)
python -m venv ~/.openclaw-venv
source ~/.openclaw-venv/bin/activate
pip install openclaw

# インストール成功を確認
openclaw --version

最新機能を使うためにソースからインストール

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pip install -e .

# 確認
openclaw --version

初期設定

インストール後、初期化コマンドを実行してデフォルトのconfigファイルを作成する:

openclaw init
# 作成ファイル:~/.config/openclaw/config.yaml

configファイルを開き、使用するバックエンドに合わせて設定する:

# ~/.config/openclaw/config.yaml

# デフォルトバックエンド:Ollama(ローカル、プライバシー最優先)
backend: ollama
ollama:
  url: http://localhost:11434
  model: llama3.2       # またはqwen2.5、mistral、phi4

# OpenAI APIを使う場合:
# backend: openai
# openai:
#   api_key: sk-...
#   model: gpt-4o-mini

# Anthropicを使う場合:
# backend: anthropic
# anthropic:
#   api_key: sk-ant-...
#   model: claude-haiku-4-5-20251001

# Memory:コンテキストに保持するメッセージ数
memory:
  enabled: true
  max_history: 20

# セッション保存ディレクトリ
sessions:
  dir: ~/.openclaw/sessions

バックエンドの接続確認

openclaw check

# 正常時の出力:
# ✓ Backend: ollama
# ✓ Model: llama3.2 (4.7GB)
# ✓ Connection: OK
# ✓ Response time: 320ms

実際のワークフローでOpenClawを使う

コンテキスト不要の素早い質問(one-shotモード)

# シンプルな質問
openclaw ask "Linuxでリッスン中のポートを確認するコマンドは?"

# pipeでログを分析
cat /var/log/nginx/error.log | tail -50 | openclaw ask "このエラーを分析して修正方法を提案して"

# コードファイルをレビュー
openclaw ask --file main.py "このコードをレビューして、セキュリティの問題があれば見つけて"

プロジェクト別のmemory付きチャットセッション

# 新しいセッションを開始
openclaw chat

# 名前付きセッションを再開
openclaw chat --session wp-project

# 既存のセッション一覧を表示
openclaw sessions list

シェルワークフローへの統合

# Kubernetesの状態を分析
kubectl get pods --all-namespaces | openclaw ask "問題のあるPodはどれ?"

# git commitメッセージを自動生成
git diff --staged | openclaw ask "簡潔な英語でgit commitメッセージを書いて"

# 実行前に複雑なコマンドを説明
openclaw ask "このコマンドが何をするか説明して: find / -name '*.conf' -mtime -7 -exec grep -l 'password' {} +"

6ヶ月間の実際の使用から得たTips

プロジェクト別のシステムプロンプト

自分のプロジェクトにはそれぞれ専用のセッションがあり、そのスタックのコンテキスト(PHPバージョン、データベース、WordPressバージョン)を含むsystem promptを設定している。毎回説明し直す必要なく、セッションを開けばすぐに作業に入れる:

openclaw chat --session wp-project \
  --system "あなたはWordPress開発者です。スタック:PHP 8.2、MySQL 8.0、WP 6.4。 \
  日本語で簡潔に回答し、実用的なコードスニペットを優先してください。"

タイピングを素早くするAlias

# ~/.bashrcまたは ~/.zshrcに追加
alias ai='openclaw ask'
alias aic='openclaw chat'
alias explain='openclaw ask "このコマンドを説明して: "'

# 適用
source ~/.bashrc

# 使用
ai "PythonでメールアドレスをバリデートするRegex構文は?"
explain "awk '{sum += \$1} END {print sum}'"

セッションをMarkdownにエクスポートして保存

# 重要な会話をファイルにエクスポート
openclaw sessions export wp-project --format markdown > notes/wp-project-notes.md

この方法はUbuntu 22.04の2台のVPSで安定動作している — 6ヶ月間問題なし、memory leakもゼロ。最もよく使うpipelineは、サービスのstderrをOpenClawにpipeしてリアルタイムでエラーを分析する方法だ — web UIにコピー&ペーストするよりはるかに速い。

# ログを監視してエラー発生時すぐに質問
journalctl -u myapp -f | grep ERROR | while read line; do
  echo "$line" | openclaw ask "このエラーはどういう意味で、どう修正すればいい?"
done

まとめ

現在もOpen WebUIとOpenClawの両方を使い続けているが、それぞれ目的が異なる:Open WebUIはインターフェースが必要な時や複雑なファイル処理に、OpenClawは日常のターミナル内でのあらゆる素早い質問に使っている。クラウドに依存したくなく、AIに質問するためだけにDockerを追加で動かしたくない?これは試す価値のある出発点だ — 軽量で柔軟、データはマシン内に留まる。

Share: