TinyClaw: Discord、WhatsApp、TelegramでのマルチエージェントAIチーム
TinyClaw: マルチエージェントAIチームフレームワーク
1. TinyClawとは?
TinyClawは、コミュニティ主導でMITライセンスのツールで、Claude、OpenAIなどの数種類のAIプロバイダーをエージェントのチームに変換します。各エージェントは独自の隔離されたワークスペースで実行され、会話履歴を保持し、簡単なプレフィックスベースのコマンドシステムで同僚へ作業をハンドオフできます。TinyClawという名前は、小さなコードでも複雑な協働を管理できるという考えを表しています。
主要概念: - Agent – 定義された役割を持つ単一のAIインスタンス - Team – クエリを処理する際に連結または分岐するエージェントのグループ - Channel – エージェントがメッセージを受信する場所(Discord、WhatsApp、Telegram、Heartbeat)
CLIとシンプルなJSON設定ファイルによってすべての重い作業を行うため、TinyClawはmacOS、Linux、またはWSL‑2 Windowsで実行できます。
2. コア機能
| Feature | Description |
|---|---|
| マルチエージェント | 何十ものエージェントを同時に実行し、それぞれが独自のプロンプトとプロバイダーを使用します。 |
| マルチチーム | エージェントをチームに整理できます。1つは「リーダー」になったり、複数のチームメイトに分岐させたりできます。 |
| マルチチャネル | Discord、WhatsApp、Telegramを接続します。同一ユーザーは任意のプラットフォームから同じエージェントと対話できます。 |
| チーム観測 | エージェントとチーム間のメッセージフローを可視化するライブTUIダッシュボード。 |
| 並列処理 | エージェントは受信メッセージを同時に処理しますが、各エージェントごとに順序を維持します。 |
| 永続セッション | 会話はディスクにログされ、TinyClawを再起動すると前回の状態から再開します。 |
| ファイルベースキュー | アトミックなJSONファイルにより競合状態が発生せず、マルチエージェントシステムに最適です。 |
| Heartbeat | 各エージェントに対してスケジュールされた「チェックイン」プロンプトを実行し、システムをアクティブに保ち、保留中のタスクを捕捉します。 |
| 動的プロバイダー選択 | Anthropic Claude、OpenAI Codexなど他のプロバイダーへ切り替えても、サービス利用規約に違反しません。 |
| 簡単インストール | 環境を検出し、設定をすべて行うワンライナーのスクリプト。 |
3. アーキテクチャ概要
TinyClawのアーキテクチャは意図的にシンプルで、デバッグや拡張が容易です:
- Channels – ボットは受信メッセージをリッスンし、JSONファイルを
~/.tinyclaw/queue/incoming/に書き込みます。 - Queue Processor – 各ファイルを
processing/に移動し、適切なエージェントへディスパッチするウォッチドッグ。 - Agents – 各エージェントは
~/tinyclaw-workspace/<agent_id>/の独自ディレクトリで実行され、設定されたプロバイダーのCLI(Claudeのclaudeまたは OpenAIのcodex)を使用します。 - Persistence – 会話とエージェントの状態はワークスペースディレクトリ内に保存されます。シャットダウン時、ファイルベースキューはクリアされますがログは残ります。
- Visualization –
tinyclaw team visualize <id>がカレッシーUIを開き、ライブメッセージ履歴とエージェントステータスを表示します。
このフローはシステムを決定論的に保ちながら、高スループットを可能にします。
4. クイックスタートガイド
以下は、数分でTinyClawインスタンスを起動するステップバイステップのセットアップです。
前提条件 – macOS/Linux/WSL2 と Node v18+, tmux, jq, Bash 4.0+(macOS:
brew install bash)、Claude Code CLI、および Codex CLI。
4.1 ワンライナーインストール(推奨)
curl -fsSL https://raw.githubusercontent.com/jlia0/tinyclaw/main/scripts/remote-install.sh | bash
スクリプトは次のことを行います:
- OSを検出
- 欠落した依存関係をインストール
- リポジトリをクローンし、npmパッケージをインストール、バイナリスクリプトを ~/.local/bin/ にコピー
- オプション項目の入力を促す
4.2 ソースからの手動ビルド
git clone https://github.com/jlia0/tinyclaw.git
cd tinyclaw
npm install
./scripts/install.sh
4.3 初回起動 & セットアップウィザード
tinyclaw start # Tmuxセッションとインタラクティブウィザードを起動
ウィザードでは以下を案内します:
- チャネル選択 – Discord、WhatsApp、Telegramを有効化
- ボットトークン – 各有効化されたチャネルのトークンを貼り付け
- ワークスペース作成 – ルートディレクトリの名前を指定
- エージェント定義 – 主なアシスタント名、プロバイダー、モデルを選択
- Heartbeat – エージェントが新しいタスクをチェックする頻度を設定
完了後、TinyClawはデーモンを起動し、どのチャネルからも対話できます。
5. エージェントとチームの設定
エージェントおよびチーム設定は ~/.tinyclaw/settings.json に保存されます。
5.1 例設定
{
\"channels\": {
\"enabled\": [\"discord\", \"telegram\", \"whatsapp\"],
\"discord\": { \"bot_token\": \"YOUR_DISCORD_TOKEN\" },
\"telegram\": { \"bot_token\": \"YOUR_TELEGRAM_TOKEN\" },
\"whatsapp\": {}
},
\"workspace\": {
\"path\": \"/Users/me/tinyclaw-workspace\",\n \"name\": \"tinyclaw-workspace\"
},
\"agents\": {
\"assistant\": {
\"name\": \"Assistant\",\n \"provider\": \"anthropic\",\n \"model\": \"sonnet\",\n \"working_directory\": \"/Users/me/tinyclaw-workspace/assistant\"
},
\"coder\": {
\"name\": \"Code Assistant\",\n \"provider\": \"anthropic\",\n \"model\": \"sonnet\",\n \"working_directory\": \"/Users/me/tinyclaw-workspace/coder\"
}
},
\"teams\": {
\"dev\": {
\"name\": \"Development Team\",\n \"agents\": [\"coder\", \"reviewer\"],\n \"leader_agent\": \"coder\"
}
},
\"monitoring\": {
\"heartbeat_interval\": 3600
}
}
- 各エージェントディレクトリには
.claude/、heartbeat.md、およびAGENTS.mdテンプレートが含まれます。 - チームは連結または分岐できます;リーダーエージェントが元リクエストを受け取ります。
5.2 新エージェントの追加
tinyclaw agent add
ユーティリティは名前、プロバイダー、モデル、作業フォルダを設定するプロンプトを案内します。追加後は tinyclaw agent list で一覧確認できます。
5.3 エージェント&チームの削除
tinyclaw agent remove coder
tinyclaw team remove dev
関連ワークスペースを削除したい場合は手動でディレクトリを削除してください。
6. チャネル設定ガイド
- Discord – 開発者ポータルでボットを作成し、Message Content Intent を有効化し、トークンを貼り付けます。
- Telegram – BotFather を使用してボットを作成し、トークンを取得します。
- WhatsApp – 起動後、ターミナルに表示されるQRコードをスキャンします。
docs ディレクトリにフルスクリーン画像と詳細手順があります。
7. CLIの使用
TinyClawのCLIは数十のコマンドを備えています。以下は最も一般的なものです:
| Command | Purpose |
|---|---|
tinyclaw start/stop/restart |
デーモンを制御 |
tinyclaw status |
現在のプロセスとエージェントを表示 |
tinyclaw setup |
ウィザードを再実行して設定変更 |
tinyclaw logs <type> |
ログをテール (discord, whatsapp, queue など) |
tinyclaw attach |
実行中のTmuxセッションに添付 |
tinyclaw agent list |
設定済みエージェントを表示 |
tinyclaw team visualize <id> |
ライブダッシュボードを開く |
tinyclaw update |
GitHubリリースから自己更新 |
7.1 チャット内コマンド
ユーザーがチャネルを通じてメッセージを送ると、以下のプレフィックスが適用されます:
- @agent_id <msg> – 特定のエージェントへ転送
- @team_id <msg> – チームリーダーへ転送
- /agent と /team – 利用可能なエージェントまたはチームを一覧表示
プレフィックスの無いメッセージはデフォルトエージェントへ送られます。
8. 高度な機能
8.1 Heartbeat監視
エージェントは ~/tinyclaw-workspace/<agent_id>/heartbeat.md を編集して定期的な「チェックイン」を実行できます。デフォルトプロンプトは以下の通りです:
Check for:
1. Pending tasks
2. Errors
3. Unread messages
Take action if needed.
8.2 送信者ペアリング
スパム対策として、TinyClawは未知の送信者からの最初のメッセージにペアリングコードを生成します。コードは tinyclaw pairing approve <code> で承認する必要があります。
8.3 チーム可視化
tinyclaw team visualize dev を実行すると、カレッシーUIが開き、各エージェントの保留メッセージをリアルタイムで表示します。デバッグとAIチャットの観測が容易です。
9. 使用例
- 個人AIアシスタント – リマインダー、タスクリスト、イベント予定の管理
- コードレビュー・パイプライン –
@coderがバグを修正し、@reviewerがスタイルを確認、結果をユーザーへ送信 - ドキュメント生成 –
@writerがコードコメントからAPIドキュメントを作成 - マルチチャネルプレゼンス – Discord、WhatsApp、Telegram から同時にアクセス可能
10. コミュニティと貢献
TinyClawは貢献を歓迎します。メインリポジトリはGitHubにあり、2.2k件のスターと318件のフォークがあります。コミュニティチャネル:
- Discord – https://discord.com/invite/jH6AcEChuD
- GitHub Issues – バグ報告や機能提案
プロジェクトは簡易CIワークフローに従います。すべてのPRでテストが実行され、リリースプロセスはGitHub Actionsで自動化されています。新規貢献者はオープンな課題を選択したり、ドキュメントを追加したりして開始できます。
11. ライセンスとクレジット
MITライセンス。TinyClawはOpenClawに触発され、Claude CodeとCodex CLI、および人気のNodeライブラリ(discord.js、whatsapp-web.js、node-telegram-bot-api)を活用しています。
12. まとめ
TinyClawは、巨大なスタックのオーバーヘッドを伴わずに洗練されたエージェントオーケストレーションを試験するための プラグ&プレイ 環境を提供します。小さな足跡に隠れた豊富な機能セットで、開発者はチャット中心のワークフローを構築し、複数のAIモデルを統合し、エージェントの会話をライブで監視できます。ワンライナーインストールで、マルチチーム、クロスプラットフォームAIアシスタントを数分で立ち上げることが可能です。ぜひお試しください – 幸せなハッキングを!