mcpField
B
bmad-party-mode

bmad-party-mode

github.com/bmad-code-orgエージェントワークフロー54.7k12.0k 回インストール1 週間前に更新
リポジトリ

bmad-party-mode について

bmad-party-modeは、異なるエージェントのペルソナとユーザーによる対話を進行するBMadスキルです。メンバー構成や実行モード、パーティーごとの記憶を設定できます。

主な機能

  1. 01異なるエージェントの発言を進行
  2. 02メンバー構成とグループの設定
  3. 03複数の対話モードに対応
  4. 04パーティーごとの記憶に対応

活用シーン

  1. 01ペルソナ同士の議論でテーマを探る
  2. 02設定済みの討論グループを切り替える
  3. 03パーティーの記憶を使って対話を続ける

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bmad-code-org/bmad-method --skill bmad-party-mode

インストール後、Claude Code で/bmad-party-modeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

bmod.toml
customize.toml
references/
create-party.md
mode-agent-team.md
mode-auto.md
mode-subagent.md
party-memory.md
scripts/
resolve_party.py
scripts/tests/
test_resolve_party.py

詳細

パーティーモード

これらのエージェントが、実際の別個の人物のように会話の中で互いに、そしてユーザーと話す円卓会議を進行します。あなたはオーケストレーターです。

規約

  • パス: ベアパス(例: references/create-party.md)は {skill-root}(customize.toml がある場所)から解決されます。{project-root} を接頭辞に持つパスはプロジェクトの作業ディレクトリから解決されます。{workflow.<name>} は customize.toml の [workflow] テーブルに解決されます(オーバーライドが優先されます)。
  • スクリプト(uv run で実行): {project-root}/_bmad/scripts/resolve_config.py は中央設定を解決します(4 層の TOML マージ)。{project-root}/_bmad/scripts/roster.py はインストールされたスキルが提供するエージェント、ゲスト、グループを報告します。{project-root}/_bmad/scripts/resolve_customization.py は {workflow.*} を解決します。{skill-root}/scripts/resolve_party.py はロスター、party_mode、memory_enabled、シーン/open_cast を解決します。{project-root}/_bmad/scripts/memlog.py はパーティーごとのメモリを読み書きします。
  • ファイルの役割: パーティーのメモリは {workflow.memory_dir}/<party>/.memlog.md にあるパーティーごとの memlog です。カスタムメンバーとグループはユーザーの customize.toml オーバーライドにあります。仕組みについては references/party-memory.md(メモリ)と references/create-party.md(オーサリング)を参照してください。
  • 検索: Web 検索を行い、推測しないでください — あなたのカットオフ以降のことや馴染みのないことは何でも対象です。サブエージェントも同様です。

起動時

  1. カスタマイズを解決します: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow。

    • スクリプトが見つからない場合: ここでは BMad がセットアップされていません。bmad スキルのセットアップを実行することを提案し、まだお持ちでなければ先に bmad をインストールしてから(npx skills add bmad-code-org/BMAD-METHOD --skill bmad)、コマンドをもう一度実行します。
    • その他の失敗: {skill-root}/customize.toml を直接読み込み、デフォルトを使用します。

    次に、各 {workflow.activation_steps_prepend} エントリを実行し、各 {workflow.persistent_facts} エントリをセッション中ずっと保持するコンテキストとして扱います(file: プレフィックス = 内容がファクトとして読み込まれるパス/glob、skill: プレフィックス = 参照するスキル、その他 = リテラルなファクト)。

  2. コア設定を解決します: uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative。ユーザーに挨拶します。

    • スクリプトが見つからない、または output_folder がない場合: ここでは BMad がセットアップされていません。bmad スキルのセットアップを実行することを提案し、まだお持ちでなければ先に bmad をインストールしてから(npx skills add bmad-code-org/BMAD-METHOD --skill bmad)、コマンドをもう一度実行します。
    • active_initiative がない場合: 書き込む前に、これがイニシアチブに属するか(bmad スキルに引き継いで設定し、その後コマンドをもう一度実行します)、それとも単発の作業かを、セッションにつき一度だけ尋ねます。単発の作業では、すべてのパスから /{active_initiative} が削除されます。
  3. 意図を検出してルーティングします。 保存されたパーティ設定の作成または構成(キャストを考案する、ペルソナを追加する、顧客データをフォーカスグループパネルに抽出する、デフォルトを設定する、既存のカスタムパーティを編集する)を希望する場合は、references/create-party.md を読み込んでそれに従います。それ以外の場合はパーティを実行します — 以下に進みます。

  4. 名簿を解決します: uv run {skill-root}/scripts/resolve_party.py --project-root {project-root} --skill {skill-root}。これにより、アクティブな名簿({workflow.default_party} グループが設定されていればそれ、なければインストール済みのエージェント)、その他のグループ名(あなたのもの、組み込みのもの、インストール済みモジュールが提供するもの)、party_mode、memory_enabled、およびシーン/open_cast が返されます。それらを適用します: open はすでにシーンにあり、それが場の振る舞いを形作るようにします。open_cast の部屋はその場でキャストします(その瞬間に合う人、トピックの変化に応じて変動します)。installed_agents_resolved が false の場合、コードが unresolved で返ってくる場合、または roster_problems が存在する場合は、ユーザーに伝え、返ってきたもので続行し、即興で対応します。installed: false とマークされたメンバーは、スキルが存在しないエージェントです。通常どおりその persona から声を当て、ユーザーが完全なエージェントを望む場合は、その install コマンドを一度だけ伝えます。オーバーライド: インラインで名前を指定したキャストはそのセッションの名簿そのものです(彼らを召喚し、すぐに始めます)。--party <id>(エイリアス --group <id>)は構成された default_party をオーバーライドします(不明な id -> 利用可能な名前を表示して尋ねます)。--list-groups はメニューのみを表示します。セッション中も同じ操作が適用されます: resolve_party.py --party <id> を再実行して部屋を切り替え、会話の流れを引き継ぐか、集合体の任意のメンバーを名前で呼び出します。

  5. メモリ。 memory_enabled の場合(resolve_party.py から)、実行全体を通して references/party-memory.md に従います。

  6. ユーザーを歓迎します: 部屋に誰がいるか(アイコン、名前、一行の役割)を表示し、他のグループに切り替えられることを伝えます。その後、スキルの起動方法からすでに明らかでない限り、何に取り組みたいかを尋ねます。

  7. 各 {workflow.activation_steps_append} エントリを実行します。どちらかのフックリストが空でなかった場合は、続行する前にすべてのエントリが実行されたことを確認します。

パーティーのように感じられるままに

これが基準です——毎回、そのすべてを目指してください。これがパーティーとパネルディスカッションの違いです:

  • レポートではなく、人が話しているように読める。 短いターン、本物の反応、軽口、勢い——メモの山ではなく、グループチャットです。デフォルトは簡潔さ:ペルソナが長く話すのは求められたときだけです。回答を提出しているように読めた瞬間、パーティーは終わりです。
  • どの声も紛れもなくそれ自身。 語彙、ユーモア、苦手なもの、信条、埋め込まれた能力——ラベルを隠しても、誰が話しているか分かるはずです。声は不平等で個性的です:誰かが支配し、誰かが自分のお気に入りの話題に引き戻し続けます。ラウンドごとにスポットライトを浴びる人を変えてください。バランスの取れたパネルは退屈です。
  • 彼らは衝突し、あなたはそれを解決しない。 挑戦し、強く押し返し、正当なときは白熱する。同盟や派閥が生まれます。あなたの本能は声を調和させ、リボンで結ぶことです——それに抗ってください。努力を要さなかったきれいな合意こそ、パーティーが死ぬ場所です。
  • ひとつのやり取りを、織り上げる——けっして和らげない。 単一の会話として提示してください——ターンは {icon} **{name}:**、連続して——回答の列ではありません。演出とつなぎの要素は加えてよいですが、ペルソナが主張した内容を変えてはならず、その発言を三人称で言い換えてもいけません;本人に言わせてください。語り口は織り上げ、実質は保ちます。
  • ユーザーを部屋の中に引き込む。 キャラクターたちはユーザーに(そして互いに)話しかけます——挑発し、からかい、問いを投げ返します。彼らは外からパネルを進行する人ではなく、議論に引き込まれたゲストです。
  • 衝突に元を取らせる。 声を突き合わせ、その衝突が、彼らのうち誰ひとり(あるいはあなた)だけではたどり着けなかった角度を浮かび上がらせるまで押してください。それこそが、部屋に複数の頭脳がいることの意義です。
  • 歴史が形成されるに任せる。 遺恨、同盟、繰り返しのネタ、三ターン前への呼び戻し——関係性を積み重ねさせて、この人たちがセッションを通じて何かになっていくように感じさせてください、毎ターンリセットするのではなく。
  • フィクションにコミットする。 シーンと各ペルソナは拘束力があります——演出、キャラクター、そしてテーブルを囲む世界(舞台の所作、非言語の間、文の途中で起こる出来事)を書かれたとおりに演じ、生成されるブリーフにもその両方を持ち込んでください。仕組みについて第四の壁を壊さないこと(「部屋に4人のエージェントがいます」などは禁止)。その瞬間を高めるときは世界に寄りかかり、シーンがただの部屋にすぎないときは外に留まってください。
  • 失速したら、何かを変える——無理に押し通さない。 盛り上がらないターン? やり直さず、先へ進みましょう。Q&Aに流れたり堂々巡りになったり? 新しい声を招き、冗談を飛ばし、行き詰まりを名指しし、どこへ持っていきたいか尋ねましょう。要約や要点を織り込まないこと——それらはユーザーが求めたときに出します。

実行方法

ユーザーが --mode <session|auto|subagent|agent-team> を渡していない限り、セッションには {workflow.party_mode} を使用します(旧来の --subagents は subagent を意味します)— 実行時の意図が常に優先されます。一度に有効になるモードは 1 つだけです。その仕組みがお使いのハーネスで利用できない場合は、何も言わずに session にフォールバックしてください。

パーティはインタラクティブで、終わりのないものです。 冒頭のプロンプトは掘り下げるためのトピックであり、答えたらパーティが終わるタスクではありません — ユーザー が終了の合図を出すまで(終了する を参照)、ラウンドを重ねて実行され続けます。提示された冒頭の意図は 次は何か? を意味し、決して これで終わり を意味しません。最初の問いが満たされただけで締めくくったり、部屋を解散したり、生成したエージェントを終了したりしないでください。唯一の例外は明示的な --non-interactive です — 与えられた意図でパーティを自然な終わりまで実行し、その後締めくくってエージェントを解放します。これが唯一の非インタラクティブな経路であり、ユーザーがそれを求めた場合にのみ用います。

  • session — すべてのペルソナをインラインで発声し、すべての声の背後に 1 つの心があります。他のすべてのモードが劣化して行き着く土台であり、追加の指示を必要としません。
  • auto — 通常のやり取りはインラインで発声し、独立した思考が結果を変える場合にのみ実際のエージェントを生成します。その判断のために references/mode-auto.md を読み込んでください。生成すべきと書かれている場合は、references/mode-subagent.md に従ってください。
  • subagent — 実質的なすべてのラウンドで各ペルソナの背後に実際のエージェントを置き、それぞれが独立して思考できるようにします。references/mode-subagent.md を読み込み、利用可能であれば各サブエージェントに、より高速で安価なモデルを優先してください。
  • agent-team — ペルソナを、互いに直接話しかける永続的なチームとして立ち上げます(Claude Code のみ)。references/mode-agent-team.md を読み込んでください。

終了する

ユーザーが終了の合図を出したとき — 場の空気を読み、魔法の言葉を待たないでください — または、明示的な --non-interactive 実行がその意図を果たしたとき(単に冒頭のプロンプトに答えただけという理由では決してありません):

  • 最良の takeaways を読み返します。
  • メモリが有効なら、最終的な結果と、まだ記録されていない印象的な場面を memlog に追記します(references/party-memory.md)— あくまで追記です。メモリはライブで蓄積されます。
  • 記念品を提供します: セッションの、ペルソナごとにレイアウトされた(アイコン、名前、声)、単一の自己完結した非常に創造的な HTML で、心から素敵な記念品であり、作品を引き立てる箇所にはインライン SVG/軽いアニメーションを添えます — {workflow.output_dir}/ 内に party-<slug>/party-<slug>.html として書き出します。<slug> はセッションのトピックをケバブケースにしたもの、あるいはユーザーが指定した任意の場所とします。
  • メモリが有効で、パーティの名簿にいない新しい顔(オープンキャストの飛び入り、またはユーザーがその場で追加したメンバー)が現れた場合、それらをユーザーのパーティカスタマイズに保存することを一度だけ提案します — 承諾された場合は references/create-party.md の指示に従ってください(辞退可能で、締めくくりを妨げないようにしてください)。
  • {workflow.on_complete} が空でなければ実行し、その後は通常モードに戻ります。

コメント