初めに
「OpenClawを使ってAIエージェントBotごとに違う人格・役割もたせた開発チームを作りたい」
例えば、フロントエンド開発Bot、バックエンド開発Bot…といった具合です。
OpenClawには --profile <name> というオプションがあり、これを使うことで1台のマシン上で複数のAIエージェントを、それぞれ独立したプロセスとして常駐させることができます。
本記事では、AIによる開発にロマンを求め、このマルチプロファイル構成のセットアップ手順をまとめます。
この検証のために M4 MacMini を自腹購入しました。
前提:
本記事は既にOpenClawの導入ができていることを前提としています。
- OpenClawは導入済み
- Discordをインストール済み(開発チーム用のサーバーも作成済み)
ここで説明しないもの
OpenClawとは?導入はどうやるの?Discordのサーバーの作り方は?
などは既に多くの方が解説してくれているので、ここでは省略します。
マルチプロファイル構成とは
1台のマシン上で複数のOpenClaw Gatewayを、それぞれ独立したプロセスとして動作させる構成 のことです。
各プロファイルは以下をすべて独立して持ちます。
| リソース | 説明 |
|---|---|
設定ファイル (openclaw.json) |
モデル、チャンネル、ツール等 |
| Gatewayプロセス | 各自が別ポートで常駐する独立したデーモン |
| ワークスペース | 人格(SOUL.md)、行動ルール(AGENTS.md)、記憶(MEMORY.md) |
| 認証情報 | APIキー、OAuthトークン |
| Discord Botアカウント | 各エージェントが別々のBotとしてDiscordに参加 |
イメージとしては以下のような構成になります。
┌─────────────────────────────────────────────────────────┐
│ macOS (1台のマシン) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Gateway:18789│ │ Gateway:18790│ │ Gateway:18791│ │
│ │ (default) │ │ (フロント) │ │ (バック) │ │
│ │ │ │ │ │ │ │
│ │ main agent │ │ main agent │ │ main agent │ │
│ │ SOUL.md: ... │ │ SOUL.md: ... │ │ SOUL.md: ... │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
└─────────┼─────────────────┼─────────────────┼───────────┘
│ │ │
▼ ▼ ▼
Discord Bot A Discord Bot B Discord Bot C
各Gatewayが完全に独立したプロセスなので、1つのGatewayが落ちても他には影響しません。
完成後の動作としては、AIエージェントBotがまるで人間のように、
チャット上でタスクのやり取りをしながら開発を進めてくれるようになります。
※私はペットたちを各エンジニアとして見立てています。
サブエージェントとの違い
OpenClawには サブエージェント(/subagents spawn)という仕組みもありますが、マルチプロファイル構成とは用途が異なります。
| マルチプロファイル構成 | サブエージェント | |
|---|---|---|
| 用途 | 独立した永続エージェント | 一時的なバックグラウンドタスク |
| 通信 | Discordメンション | 親への結果報告 |
| Gateway | 各自独立 | 親と同じ1つ |
| 人格 |
SOUL.mdで永続 |
タスクごとにリセット |
| 設定 | openclaw --profile <name> |
openclaw.json の subagents ブロック |
| 生成 | CLIコマンドまたは手動でセットアップ |
/subagents spawn で動的生成 |
開発チームのようにタスク分配・結果統合が必要な場合は、マルチプロファイルではなくサブエージェント方式の方が適しています。
マルチプロファイル構成はあくまで 「独立した常駐エージェント」 向きです。
構成例
今回は以下の2エージェント構成を例に解説します。
| エージェント | プロファイル | ポート | 設定ファイル | ワークスペース |
|---|---|---|---|---|
| FrontEnd | 18790 | ~/.openclaw-frontend/openclaw.json |
~/.openclaw/workspace-frontend/ |
|
| BackEnd | 18791 | ~/.openclaw-backend/openclaw.json |
~/.openclaw/workspace-backend/ |
Discord Botの準備
新しいプロファイルを作成する前に、そのエージェント用のDiscord Botを用意する必要があります。
プロファイルごとに別々のBotアカウントが必要になるため、エージェントを追加するたびにこの手順を行います。
1. Discord Developer PortalでBotを作成
Discord Developer Portal にアクセスし、新しいアプリケーションを作成します。
- 「新しいアプリケーション」をクリック
- アプリケーション名を入力(例:
FrontEnd)して作成
- 左メニューの「Bot」を選択
- 「トークンをリセット」をクリックしてBotトークンを取得
Botトークンは一度しか表示されません。必ずコピーして安全な場所に保存してください。
後ほど openclaw.json の token 欄に設定します。
2. Botの権限設定
同じ「Bot」ページで、以下のPrivileged Gateway Intentsを有効にします。
| Intent | 用途 |
|---|---|
| Message Content Intent | メッセージの内容を読み取るために必要 |
| Server Members Intent | メンバー情報の取得に必要(任意) |
3. Botをサーバーに招待
- 左メニューの「OAuth2」を選択
- 「OAuth2 URLジェネレーター」で必要な権限を設定(私は以下を設定しました。)
-
スコープ:
bot、applications.commandsにチェック -
ボットの権限:
チャンネルを表示、メッセージを送る、リンクを埋め込み、ファイルを添付、メッセージの履歴を読む
-
スコープ:
- 画面下部に生成されたURLをブラウザで開き、招待先のサーバーを選択して認証
ここまでの手順がうまくいけば、DiscordのサーバにAIエージェントBotが追加されます。

4. Guild IDとChannel IDの確認
openclaw.json にはGuild ID(サーバーID)とChannel ID(チャンネルID)の指定が必要です。
Discordの開発者モードを有効にすると、右クリックからIDをコピーできるようになります。
- Discordの「ユーザー設定」→「詳細設定」→「開発者モード」をオンにする
- サーバー名を右クリック →「サーバーIDをコピー」→ これが
<GUILD_ID> - チャンネル名を右クリック →「チャンネルIDをコピー」→ これが
<CHANNEL_ID>
ここで取得した Botトークン、Guild ID、Channel ID は、この後のプロファイル設定で使用します。
新しいエージェントの追加手順
ここからは、新しいプロファイルを追加する具体的な手順を説明します。
OpenClawコマンド openclaw --profile <name> onboard で対話形式にプロファイルをセットアップしていきます。
Gateway、ワークスペース、チャンネル接続などの初期構成がウィザード形式でガイドされます。
参考: Onboarding (CLI) - OpenClaw
1. onboard を実行
openclaw --profile <name> onboard
対話形式でGateway、ワークスペース、チャンネル(Discord等)の設定がガイドされます。
OpenClawを導入した時と同じようにターミナル上から設定を行いましょう。
onboard の対話の中で、前提セクションで用意したBotトークン、Guild ID、Channel ID を入力します。
~/.openclaw-<name>/ができていれば設定完了です。
portの変更
onboardコマンドでAIエージェントBotを作成した場合、既存のBotとgatewayのport番号がかぶる可能性があります。
今回のBot用に空いているポート番号を割り当てます。
{
"agents": {
"defaults": {
"workspace": "/Users/<your-username>/.openclaw-<name>/workspace"
},
"list": [{ "id": "main" }]
},
"gateway": {
"port": <未使用のポート番号>
},
}
ポート番号は既存のプロファイルと重複しないようにしてください(例: 18789, 18790, 18791, ...)。
Discord Botトークンもプロファイルごとに別のBotを用意する必要があります。
その後、LaunchAgentのサービス定義ファイル(plist)を更新するためにgatewayを再インストール&再起動させましょう。
openclaw --profile <name> gateway stop
openclaw --profile <name> gateway install
openclaw --profile <name> gateway status
...
Runtime: running (pid 3552)
RPC probe: okListening: 127.0.0.1:18796
このように表示されればOK。
RPC probe: false. になる場合
もし port 18797 is already in use. の様に表示される場合、過去の作業でプロセスIDが既に使用中になっている可能性があります。
PCを再起動し、 gateway install を再度行ってみてください。
動作確認
Discord上からBotへメンションを飛ばしてみましょう。
返事が来れば起動確認OKです。
同様にバックエンド用のAIエージェントBotも作成し、サーバーに追加しましょう!!
2. ワークスペースファイルを編集
onboard で生成された ~/.openclaw/workspace-<name>/ 内のファイルを、新しいエージェントの人格・役割に合わせて編集します。
~/.openclaw/workspace-<name>/
├── SOUL.md # エージェントの人格・役割定義
├── AGENTS.md # 行動ルール
├── USER.md # ユーザー情報
├── HEARTBEAT.md # 定期チェック設定
└── TOOLS.md # ツール設定メモ
SOUL.mdがエージェントの人格を決定する最も重要なファイル です。
ここの内容を変えることで、同じモデルでもまったく異なるキャラクターのBotを作れます。
以下に frontend 用のプロンプト例を記載しておきます。
SOUL.md
# SOUL.md - Frontend-Engineer
_ユーザーインターフェースの設計と実装を担当するフロントエンドエンジニア。_
## あなたは誰か
あなたは **Frontend-Engineer** — 開発チームのフロントエンド担当。
ユーザーが触れるすべての画面を設計・実装する。美しく、使いやすく、アクセシブルなUIを作ることが使命。
## 担当領域
### UI設計
- 画面構成、画面遷移フロー、レイアウト設計
### UIパターン調査
- プロジェクトに適したUIコンポーネントやデザインパターンの選定
### コンポーネント設計
- 再利用可能なコンポーネントの分割方針、Props/State設計、コンポーネントツリーの構築
### 状態管理
- グローバル状態とローカル状態の設計、状態管理ライブラリの適用方針
### API連携
- バックエンドAPIとの通信処理、データフェッチング戦略、エラーハンドリング
### レスポンシブ対応
- デバイス別のレイアウト調整、ブレークポイント設計
### アクセシビリティ
- セマンティックHTML、キーボード操作対応、スクリーンリーダー対応
## 成果物の例
- 画面一覧・画面遷移図
- コンポーネント設計書(コンポーネントツリー、Props定義)
- フロントエンド実装コード(ページ、コンポーネント、hooks)
- スタイル定義(CSS/Tailwind設計方針)
## 他メンバーとの連携
- **Backend** とAPI I/Fの整合性を確認する
## 行動原則
- **Architectの設計に従う。** API仕様やディレクトリ構成を勝手に変えない
- **指示されたスコープを守る。** バックエンドのコードには触らない
- **不明点は実装前に聞く。** 仕様が曖昧ならオーナーに確認する
- **テスタブルなコードを書く。** テストしやすい構造にする
- **報告は具体的に。** 作成・変更したファイル一覧と動作確認結果を含める
## チームディレクトリ(Discord メンション用)
メンバーにメンションするときは `<@ユーザーID>` の形式を使うこと。
| 名前 | Discord User ID | メンション |
|---|---|---|
| Backend | バックエンドBotのID | `<@バックエンドBotのID>` |
## コミュニケーション
- チームメンバーへの連絡はDiscordメンションで行う
- オーナーから直接指示が来た場合もそれに従う
- 簡潔に、要点だけ伝える
## Continuity
各セッションで記憶はリセットされる。このファイルとMEMORY.mdがあなたの記憶。
セッション開始時に必ず読み、作業の文脈を把握すること。
---
_このファイルはオーナーとの合意で定義された役割です。変更する場合はオーナーに相談すること。_
| Backend | バックエンドBotのID | <@バックエンドBotのID> | はフロントエンド用Botによるバックエンド用Botへのメンションに使われます。
適宜変更してください。
3. 設定の微調整(必要に応じて)
onboard で生成された設定を後から変更したい場合は、以下のコマンドで再設定できます。
openclaw --profile <name> configure
または ~/.openclaw-<name>/openclaw.json を直接編集しても構いません。
複数AIエージェントBotの作成
ここまでの手順に従い、開発チームに加えたいBotを追加しましょう。
同様にバックエンド用のAIエージェントBotも作成し、サーバーに追加しましょう!!
エージェント間通信の設定
今回はAIエージェントBot同士もDiscordのメンションチャットを通じてやり取りができるようにします。
Botが他のBotからのメンションに反応するには、各プロファイルの openclaw.json のDiscordアカウント設定に allowBots: true 以下を追加します。
{
channels: {
discord: {
allowBots: true,
...
},
},
}
他にも様々な設定値がありますが、詳細は公式サイトを参照ください。
また、AIエージェントBot同士が会話するためのメンションルールを各プロファイルの AGENTS.md に追記します。
注意
ルールを設けないと、メンションが正しく行われなかったり、会話のループが陥ったりします。
すべてのBotに含めるようにしましょう。
## Mentions
When someone mentions you in a channel, use Discord's mention format `<@USER_ID>` to direct your reply.
### Bot間メンションのループ防止ルール
**メンションで返信するとき(相手がBotの場合):**
- タスクの依頼・指示を出すとき
- タスクの完了報告をするとき
- 質問や確認事項があるとき
- レビュー結果やフィードバックを伝えるとき
- 修正依頼や差し戻しをするとき
**メンションで返信しないとき(リアクション絵文字で済ませる):**
- 「了解」「ありがとう」「承知しました」などの単なる確認応答
- 相手の返信に対して新しい作業や判断が不要なとき
- 会話の終了点に達したとき(最後の報告を受け取った側は返信不要)
**原則: 自分の返信が相手に新しいアクションを求めない場合、メンションしない。** リアクション(:thumbsup::white_check_mark:)で受領を示すだけにする。
動作確認
ここまで設定できたらAIエージェントBot同士が会話できるか確認しましょう。
今回、私は FrontEnd と BackEnd の二人体制を構築しました。
FrontEndにBackEndと会話するようメンションをします。
BackEndとアプリの構築方法について、3回ほど会話してください。
すると、いい感じに SOUL.md で設定したそれぞれの技術領域についての会話が始まりました。

以上でAIエージェントBotを使った開発チームの構築になります。
おさらい
ここまでのポイントをおさらいすると:
- プロファイルごとに独立 — 設定、ワークスペース、Gatewayプロセスがすべて分離されている
-
人格の切り替えが容易 —
SOUL.mdを変えるだけで異なるキャラクターのBotを作れる - 障害に強い — 1つのGatewayが落ちても他のエージェントには影響しない
- 自動復旧 — LaunchAgentにより、Mac再起動やクラッシュ後も自動で復帰する
同じように他の開発メンバーを増やせば、AIだけの開発システムが構築できます。
まとめ
OpenClawのマルチプロファイル構成を使うことで、1台のマシン上に複数の独立したAIエージェントを常駐させることができました。
似たようなもので既に Claude Teams といったものがありますが、今回はBotがチャット上でやり取りをする、まさに人間の様に動くことをロマンとしてみました。
タイトルでは人間不要説を煽りましたが、
正直まだ実業務での大規模開発では、有識者がClaude Codeなどを使って開発をするのが最もベーシックかつ安全な開発方法だと思います。
とはいえ、数年後先を見れば今回のようなAGI(強いAI)に近しい開発手法が確立されることでしょう。
本記事ではその片鱗を見てもらえたら幸いです。
よく使うコマンド
Gateway操作・トラブルシューティング
# Gateway操作
openclaw --profile <name> gateway start
openclaw --profile <name> gateway stop
openclaw --profile <name> gateway restart
openclaw --profile <name> gateway status
# トラブルシューティング
openclaw --profile <name> doctor
openclaw --profile <name> doctor --repair
openclaw --profile <name> logs --follow
# 設定確認
openclaw --profile <name> config get gateway.port












