複数エージェントの設計 — 日常オペ3体の役割分担(AIエージェント勉強記 第4回)

リード

こんにちは、ぽまらのです。

AIエージェント勉強記第4回 です。

第1回 で最小構成、第2回 で1体 vs 複数体、第3回1体目(週次振り返り) の spec・prompt・実行の型を書きました。
索引 「AIエージェントを自分で作る — 勉強記シリーズ」日常オペ3体 について、ここでは 3体全体の設計 — 役割分担、連携、衝突回避 — を整理します。

① は 実装済み(weekly-reflect)。② TODO整理・③ 記事提案は これから spec を書く 段階です。
本記事は 動かす前の設計図 ですが、第2回の「専門職チーム」像と第3回の「1体の型」を 3体に広げたもの として読んでもらえるとつながりやすいです。


この回の全体像

flowchart LR
  IN[("inbox / todos / notes")]
  IN --> A1["① 記録係<br/>振り返り"]
  A1 --> W[("weekly")]
  W --> H1["人間: 修正"]
  H1 --> A2["② 事務<br/>TODO整理"]
  IN --> A2
  A2 --> T[("todos")]
  T --> H2["人間: 優先度"]
  H2 --> A3["③ 編集<br/>記事提案"]
  W --> A3
  A3 --> P[("article-ideas")]
  P --> H3["人間: ネタ選定"]

  class IN meta
  class A1,A2,A3 agent
  class W,T,P output
  class H1,H2,H3 human
  classDef concept fill:#e8f4fc,stroke:#3d7ea6,stroke-width:2px,color:#1a1a1a
  classDef human fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#1a1a1a
  classDef agent fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1a1a1a
  classDef output fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#1a1a1a
  classDef meta fill:#eceff1,stroke:#607d8b,stroke-width:2px,color:#1a1a1a

なぜ「日常オペ」に3体か

第2回 で書いた通り、マルチエージェントの強みは 工程を専門職チームのように分業して完結させる 点です。
週次のメモ整理は、人間でも 振り返り → 片付け → 次の一手 と分けた方が続きます。

1体に「振り返れ、TODOも整理し、記事ネタも出せ」と頼むと、

  • 出力が 長すぎる
  • 推測 が混ざりやすい
  • 読み取り専用(要約)と 破壊的操作(inbox 移動)の境界が曖昧になる
  • 週1で回す ルーティン が崩れる

だから本シリーズでは 3体に分ける 方針です。
第3回 で作った spec + prompt + 実行 の型を、体ごとに1セットずつ持ちます。


3体の役割 — 専門職としての分担

第2回 の「記録係 / 事務・PM / 編集・企画」を、入出力まで落とし込んだ表です。

#エージェント専門(たとえ)入力出力人間
週次振り返り記録係inbox / todos / notesweekly/YYYY-Www.md要約の修正
TODO整理事務・PMinbox / todostodos 更新、inbox 処理優先度・削除
記事提案編集・企画weekly + notesarticle-ideas/YYYY-Www-proposals.md書く/保留/書かない

やること・やらないこと(境界)

やることやらないこと
要約(読み取りのみ)inbox 移動、TODO 変更、記事企画
inbox 片付け、todos 更新振り返り文の執筆、記事タイトル考案
ネタ 3案以内 で提案TODO 削除、記事の公開

inbox / todos / notes は データ置き場 として使います。
秘書室スキル本体 や LINE 日報・X 下書きなど 別プロジェクト は本シリーズの対象外です(索引参照)。


「一つの成果」— 週次ルーティン完了

第2回 で決めた定義を、3体設計の中心に置きます。

一つの成果 = 1ファイルへの統合 ではなく、同じ週(YYYY-Www)の 週次ルーティン完了 です。

#ステップ担当
0inbox 確認人間
1① 週次振り返りエージェント
2振り返り確認・修正人間
3② TODO整理エージェント
4TODO 優先度・削除人間
5③ 記事提案エージェント
6ネタ選定(書く / 保留 / 書かない)人間

①〜③の md ファイルは 役割ごとの中間成果物 です。統合1枚は作りません。
部分完了 も許容します(例: ①だけ成功、③は来週)。再実行は 体ごとに独立 可能です(第5回)。


連携パターン — 週次パイプライン

実行順は ① → ② → ③ 。各ステップのあと 人間が確認 してから次へ進みます(上記「この回の全体像」と同じ流れ)。

パターン本シリーズでの使い方
パイプライン③ は ① の weekly を必須入力にする
独立並列(入力)① と ② は同じ inbox を読むが、出力先が違う
人間がハブ修正 / 優先度 / ネタ選定 — 各ステップのあと人間
停止条件体ごとに 1成果物(第3回の型)

日曜 21:00 JST 頃 に週1、30〜45分で 0〜6 を回す想定です(第5回: ①のみ / 第6回: 3体)。


衝突回避 — 3体がぶつからない設計

複数体で 同じファイルを争わない ためのルールです。

  1. 出力先を分けるweekly/ · todos/ · article-ideas/
  2. 週番号を揃える — すべて YYYY-Www で対応
  3. 推測禁止 — 各 spec に「inbox にない事実を足さない」
  4. ①は読み取り専用 — inbox / todos を 触らない(第3回で固定)
  5. 上書き禁止(①) — 同名 weekly があれば スキップ
  6. 記事提案は3案以内 — 量より 選べること
  7. 公開済みと被らない — notes の published_url を参照

② が inbox を archive/ へ移す等の 破壊的操作 を行うため、① とは 役割で分離 しています。
③ は 提案のみ — 公開・TODO 削除は人間です。


実装の順 — ①完了、②③これから

状態理由
1① 振り返りspec + prompt 済第3回読み取り中心で失敗が小さい
2② TODO整理spec 未作成inbox 処理は 破壊的 — ①に慣れてから
3③ 記事提案spec 未作成① の weekly が 必須入力

②③ も第3回と同じ spec + prompt + README の型で増やします。
1体目で決めた「やらないこと を spec に書く」ルールは、②③ でも必須です。


まとめ

  • 日常オペは 記録係 / 事務 / 編集 の3体 — 第2回 の専門分業の具体化
  • 一つの成果 = 週次ルーティン完了(0〜6)。統合ファイルは作らない
  • 連携は ①→②→③ のパイプライン + 人間が各ステップで確認
  • 衝突回避は 出力先の分離・境界・上書き禁止
  • ① は実装済み。②③ はこれから — 第5回 で ① を動かす → 第6回 で 3体を動かす

索引・第1回第2回第3回 とあわせると、「概念 → 選び方 → 1体目 → 3体設計」の流れがつながります。


コメント