第38回: マルチエージェント入門 — チームで働く秘書たち
この回で学ぶこと
マルチエージェント(チーム秘書)の概念と仕組み
エージェントの登録方法(
openclaw agents addコマンド)AGENTS.md(エージェント運用マニュアル)の役割と書き方
Lobsterワークフローエンジンの概要
前回のおさらい
Claude Code(開発)とOpenClaw(運用)の役割分担を学んだ。Claude Codeでスキルを作り、OpenClawに渡して自動運用する。今回は、秘書を1人ではなくチームとして運用する方法を学ぶ。
マルチエージェントの概念
ここまでの講座では、秘書は1人だった。マルチエージェントとは、秘書を複数人のチームとして構成すること。
例えば以下のようなチーム構成が考えられる。
リサーチャー | 情報収集と要約 | Web検索、ニュース分析、データ収集 |
ライター | 文章作成 | ブログ記事、メール文面、レポート |
校正担当 | 品質チェック | 誤字脱字、論理矛盾、ファクトチェック |
1人の秘書に全部やらせると、指示が長く複雑になる。チーム制にすると、各エージェントに短い専門的な指示だけ出せばよい。結果として品質が上がる。
エージェントの登録方法
エージェントの登録は、コマンド1つでできる。
openclaw agents add researcher --workspace ./agents/researcher
researcherがエージェントのID(名前のようなもの)-workspaceはそのエージェント専用の作業フォルダ
登録したエージェントの一覧は openclaw agents list で確認できる。
もう少し詳しく設定したい場合は、openclaw.json に直接書くこともできる。
{
"agents": {
"list": [
{
"id": "researcher",
"identity": {
"name": "リサーチャー",
"emoji": "🔍",
"theme": "正確性を最優先する調査員"
}
},
{
"id": "writer",
"identity": {
"name": "ライター",
"emoji": "✍️",
"theme": "読みやすさを最優先する執筆者"
}
}
]
}
}
identity の各項目の意味:
name: エージェントの表示名。チャットで@リサーチャーのように呼ぶときに使うemoji: メッセージ確認時のリアクション絵文字theme: そのエージェントの性格の一言説明。システムプロンプト(AIへの裏方指示)に自動で組み込まれる
エージェントのワークスペース
各エージェントは**自分専用の作業フォルダ(ワークスペース)**を持つ。
agents/
├── researcher/ ← リサーチャーのワークスペース
│ ├── SOUL.md ← 性格・行動指針
│ ├── AGENTS.md ← 運用マニュアル(後述)
│ ├── MEMORY.md ← 長期記憶
│ ├── skills/ ← このエージェント専用のスキル
│ └── memory/ ← 日次メモ
├── writer/ ← ライターのワークスペース
│ ├── SOUL.md
│ ├── AGENTS.md
│ └── ...
Part 3で学んだSOUL.mdの書き方がそのまま使える。リサーチャーのSOUL.mdには「正確性を最優先にする。裏付けのない情報は報告しない」、ライターのSOUL.mdには「読者目線で書く。難しい用語は避ける」と書く。
重要な注意点: 各エージェントのワークスペースは必ず別のフォルダにすること。同じフォルダを共有すると、記憶や設定が混ざってしまう。
AGENTS.md — エージェントの運用マニュアル
ここで混同しやすいポイントを整理する。
性格・価値観・口調 | 「あなたはどんな人ですか」 | |
作業ルール・手順・禁止事項 | 「仕事のマニュアル」 |
AGENTS.mdは、そのエージェントが毎回のリクエストで読み込む運用マニュアル。セキュリティルール、データの扱い方、報告フォーマットなどを書く。
AGENTS.mdの書き方の例(リサーチャー用):
# 運用ルール
## データの扱い
- 情報源のURLを必ず記録すること
- 1つの主張に対して最低2つの情報源を確認すること
## 報告フォーマット
- 結論を最初に書く
- 情報源を末尾にリスト化する
## 禁止事項
- 裏付けのない推測を事実として報告しない
- 3日以上前のニュースを「最新」と表現しない
SOUL.mdが「性格」なら、AGENTS.mdは「社内マニュアル」。両方あることで、エージェントの振る舞いが安定する。
エージェント間の連携方法
チーム内でエージェント同士が仕事を受け渡す方法は、主に2つある。
方法1: @メンション(シンプル)
エージェントが返答の中で @ライター のように書くと、そのメッセージがライターのエージェントに自動で届く。LINEのグループチャットで @メンションして特定の人に話しかけるのと同じ感覚。
方法2: sessions_spawn(サブエージェント委任)
メインのエージェント(指揮役)が、別のエージェントに独立した作業を頼む方法。指揮役エージェントが「リサーチャーに調査を頼む」→ リサーチャーが独立して調査を実行 → 結果を指揮役に報告、という流れ。
こちらは「指揮役が部下に仕事を振って、終わったら報告をもらう」イメージ。部下は自分専用の作業スペースで集中して作業するので、指揮役の邪魔にならない。
初心者はまず@メンション方式から始めるのがおすすめ。仕組みがシンプルで、何が起きているか追いやすい。
Lobsterワークフローエンジン(応用)
ここからは応用編。「決まった手順を毎回同じ順番で実行したい」場合に使う仕組みを紹介する。
Lobsterは、OpenClawチームが開発したオプションのワークフローエンジン。OpenClaw本体とは別にインストールして使う追加ツールという位置づけ。
第36回で学んだ「パイプライン」の考え方を、設定ファイルで定義して繰り返し実行できるようにしたもの。
Lobsterの特徴:
各ステップの実行結果を次のステップに自動で受け渡す(手動コピペ不要)
承認ゲート: 重要なステップの前に「人間の確認」を挟める(勝手に公開されない安心感)
一時停止と再開: 承認待ちで自動停止し、許可を出すと続きが動く
設定ファイルの例(記事作成パイプライン):
name: article-pipeline
steps:
- id: research
command: openclaw invoke research-task
- id: draft
command: openclaw invoke write-draft
stdin: $research.stdout
- id: review
command: openclaw invoke quality-check
stdin: $draft.stdout
approval: required
この例の流れ:
researchステップ: 調査を実行するdraftステップ: 調査結果($research.stdout)を受け取って下書きを作成するreviewステップ:approval: requiredがあるので、ここで一旦停止する。人間が内容を確認して、OKを出してから品質チェックが走る
$ステップID.stdout は「前のステップの出力結果」を意味する特別な書き方。ステップ間のデータの受け渡しはLobsterが自動で管理してくれる。
注意: Lobsterが管理するのは「手順の流れ」であって、エージェント同士の会話ではない。各ステップでどのツールやスキルを呼ぶかを決めておき、決まった順番で確実に実行するのがLobsterの役割。エージェント間のリアルタイムなやり取りには、先ほど紹介した@メンションやsessions_spawnを使う。
使い分けのまとめ
エージェント同士で会話させたい | @メンション | リサーチャーがライターに資料を渡す |
指揮役が部下に仕事を振りたい | sessions_spawn | メインが調査を委任→結果を受け取る |
決まった手順を毎回同じ順番で回したい | Lobster | 調査→下書き→承認→公開のパイプライン |
最初は@メンション方式でチーム運用を始めて、慣れてきたら用途に合わせてsessions_spawnやLobsterを導入するのがおすすめ。
ゴール状態
マルチエージェント(チーム秘書)の概念を理解している
openclaw agents addでエージェントを登録できるSOUL.md(性格)とAGENTS.md(運用マニュアル)の違いを理解している
エージェント間の連携方法(@メンション / sessions_spawn)を知っている
Lobsterの役割と基本的な書き方を知っている