なぜ私はプロプライエタリなClawを捨ててOpenClawに乗り換えたのか(そしてあなたもそうすべき理由)
先月、私は壁にぶつかりました。3つのクラウドプロバイダーで12の異なるAIモデルを調整するマルチエージェントシステムをクライアント向けに構築していたのですが、使っていたプロプライエタリなクローフレームワーク(仮に「Claw Pro」と呼びましょう)が8つの同時エージェントでクラッシュし続けたのです。さらに悪いことに、サポートチームの返信には72時間かかり、ライセンス費用は開発者一人あたり年間2,400ドルでした。
そんな時、OpenClawを見つけました。完璧ではありませんが、3週間テストした結果、分かったことはこれです:OpenClawは同じハードウェアで47の同時エージェントを処理でき、費用は正確に0ドル、そしてコードがGitHubにあるので自分でバグを修正できるのです。
OpenClawの正体
OpenClawはオープンソースのエージェントオーケストレーションフレームワークです。AIオーケストラの指揮者のようなものだと考えてください。管理するのは:
- エージェントのライフサイクル(生成、監視、終了)
- エージェント間通信(メッセージキュー経由)
- タスク分散(ラウンドロビン、優先度、またはカスタム)
- 状態の永続化(SQLite、PostgreSQL、またはRedis)
大きな違いは?Rustで書かれていてPythonバインディングがあることです。つまり、高速です。私がテストしたPythonのみの代替品よりも3倍速いのです。
実際に機能するインストール方法
ここで、ほとんどのチュートリアルはあなたに嘘をつきます。「pip installするだけ」と言って次に進みます。私が無駄にした2時間を節約しましょう:
# これをしないでください - ARM Macでは失敗します
pip install openclaw
# 代わりにこれを実行
git clone https://github.com/openclaw-org/openclaw.git
cd openclaw
cargo build --release
pipパッケージはまだアルファ版です。Cargoビルドは本番環境対応です。以下でテストしました:
- Ubuntu 22.04(x86):2分ちょうど
- macOS Ventura(M2):3.5分(Rust nightlyが必要)
- Windows 11(WSL2):4分(最初にロングパスを有効化)
最初のエージェントシステム
実際のものを作りましょう。GitHubのIssueを監視し、Claudeで要約し、Slackに更新を投稿するシステムを作成します。
# agents/github_agent.py
from openclaw import Agent, Message
class GitHubMonitor(Agent):
def __init__(self):
super().__init__(name="github_monitor",
poll_interval=60, # 秒
max_retries=3)
self.repos = ["openclaw-org/openclaw", "openclaw-org/docs"]
async def run(self):
for repo in self.repos:
issues = await self.fetch_new_issues(repo)
for issue in issues:
await self.send(Message(
target="summarizer",
payload={"repo": repo, "issue": issue}
))
async def fetch_new_issues(self, repo):
# 実際の実装ではGitHub APIを使用
return [{"id": 42, "title": "エージェント生成のバグ"}]
poll_interval=60に注目しましたか?最初は5秒に設定していました。APIレート制限が3分で切れました。控えめに始めて、その後調整しましょう。
私を悩ませた設定
OpenClawはシステム設定にYAMLを使用します。私のsystem.yamlはこんな感じです:
system:
name: "issue-tracker"
max_concurrent_agents: 20 # デフォルトは10、30でメモリ制限に達しました
agents:
- name: "github_monitor"
path: "./agents/github_agent.py"
instances: 1 # ポーリングなので1つだけでOK
- name: "summarizer"
path: "./agents/summarizer.py"
instances: 3 # 並列要約
env:
ANTHROPIC_API_KEY: "${ANTHROPIC_KEY}" # 環境変数を使用
- name: "slack_poster"
path: "./agents/slack_agent.py"
instances: 1
env:
SLACK_TOKEN: "${SLACK_TOKEN}"
message_queue:
type: "redis" # またはテスト用に"in_memory"
host: "localhost"
port: 6379
summarizerのinstances: 3?これが最適な数です。2つではボトルネックが発生し、4つではClaudeのAPIレート制限に達しました。
イライラせずに実行する方法
# システムを起動(ここで「ポートは既に使用中」と何度も出ました)
openclaw run system.yaml
# 失敗した場合、ゾンビプロセスを確認
lsof -i :6379 # Redisポート
kill -9 <PID> # 確信がある場合のみ
# リアルタイムで監視
openclaw dashboard # localhost:8080でブラウザを開く
ダッシュボードは最小限です。Grafanaを期待しないでください。しかし、以下が表示されます:
- エージェントの状態(実行中、アイドル、エラー)
- メッセージキューの深さ
- エージェントごとのメモリ使用量
諦めかけさせたバグ
2時間の正常動作後、エージェントが静かに停止し始めました。ログもエラーもなし。ただ...止まったのです。
原因は?OpenClawのデフォルトのハートビートタイムアウトが30秒だったことです。私の要約エージェントは長いIssueを処理するのに時々45秒かかりました。オーケストレーターはエージェントが死んだと判断して代替を生成しましたが、元のエージェントはまだ動作していました。結果的に、3つではなく6つの要約エージェントができてしまいました。
修正方法:エージェントクラスのタイムアウトを増やす:
class Summarizer(Agent):
def __init__(self):
super().__init__(
name="summarizer",
heartbeat_timeout=90, # 30から90秒に変更
max_concurrent_tasks=5 # 並列API呼び出しを制限
)
チュートリアルの例を超えたスケーリング
ドキュメントに載っていないこと:OpenClawの--scaleフラグはv0.2.1で壊れています。水平スケーリングが必要な場合、自分で実装する必要があります:
# scaling.py - 私の回避策
import subprocess
import json
def scale_agent(agent_name, target_instances):
# 現在の設定を読み込む
with open("system.yaml") as f:
config = yaml.safe_load(f)
# インスタンス数を更新
for agent in config["agents"]:
if agent["name"] == agent_name:
agent["instances"] = target_instances
# 書き込んで再起動
with open("system.yaml", "w") as f:
yaml.dump(config, f)
# グレースフル再起動
subprocess.run(["openclaw", "restart", "system.yaml"])
これをWebhookやcronジョブから呼び出します。見た目は悪いですが、動作します。
実際の制限事項
OpenClawを3週間使ってみて、まだ気になる点:
エラーメッセージが cryptic:「Error: Agent failed」では何も分かりません。至る所にtry-exceptブロックを追加し、ファイルにログを出力しています。
内蔵のサーキットブレーカーがない:Slack APIがダウンしても、OpenClawは無限にリトライし続けます。自分で指数バックオフを実装する必要がありました。
ドキュメントが不十分:APIリファレンスは必要なものの60%をカバーしています。残りはGitHubのIssueとソースコードのコメントにあります。
Python 3.11+のみ:3.10に縛られている場合、運が悪いです。非同期機能には3.11のTaskGroup APIが必要です。
OpenClawを使うべきでない時
正直になりましょう。以下が必要な場合:
- 非技術者向けのGUI
- SLA付きのエンタープライズサポート
- 内蔵の監視ダッシュボード
- 初期状態でのゼロトラストセキュリティ
...その場合は、プロプライエタリなツールを使い続けてください。OpenClawは、ソースコードを読み、不足機能を書くことを恐れない開発者向けです。
次のステップ
私の複雑なマルチエージェントシステムから始めないでください。代わりにこれを行ってください:
- リポジトリをクローン:
git clone https://github.com/openclaw-org/openclaw.git - ビルド:
cd openclaw && cargo build --release - サンプルを実行:
openclaw run examples/hello_world.yaml - 壊す:YAMLを変更し、意図的にバグを入れ、どのように失敗するか確認
- 修正:エラーを読み、ソースを確認し、PRを送信
最後のステップこそがオープンソースの本質です。私はすでに3つのPRを送信してドキュメントのギャップを修正しました。あなたもできます。
さあ、何かを壊しに行きましょう。それが最も速い学び方です。