計画してチームで実行する(POST /orchestrate)
/orchestrate は、1 つのクラウドのマシンで、次の順に自動で進めます。
- 計画を立てて、作業をパートに分ける。
- 依存の順に、ワーカーが実装する。
- 前のパートの作業を、次のパートに引き継ぐ。
- 結果を統合する。
pool に複数の AI を並べると、数理モデルが、計画を立てる AI と、各パートの担当をプールから選びます。
各ワーカーは、それぞれのエンジンで動きます。デスクトップの Fuga のオーケストラと同じです。メンバーが 1 人のプールでも動きます。
応答の形は /launch と同じで、runId が返ります。進み具合と結果は /result で読みます。resultText には、パートごとの要約と、担当したエンジンが入ります。
例
curl -X POST "https://www.kamui.ai/api/cloud/orchestrate" \
-H "x-kamui-api-key: kamui_sk_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"serverAuth": true,
"pool": ["codex", "claude", "grok"],
"prompt": "設定画面にダークモードの切り替えを足してください",
"repoUrl": "https://github.com/you/repo",
"params": { "autoMerge": false, "autoPush": true }
}'
# → { "runId": "<uuid>", "machineId": "...", "pool": ["codex","claude","grok"] }
# 金庫に認証が無いエンジンは外し、残りで動く(外したものは poolDropped に出る)
pool の書き方
要素には、エンジン名の文字列と、{engine, model?, effort?} の形を混ぜて書けます。
["codex", "claude"]
エンジン名だけ(モデルと労力はエンジンの既定)
[{"engine": "codex", "model": "gpt-5.6-terra"}]
モデルを決める
[{"engine": "claude", "effort": "high"}]
労力だけを決める
[{"engine": "codex", "model": "gpt-5.6-terra", "effort": "high"}]
モデルと労力を決める
[{"engine": "codex", "model": "gpt-5.6-terra"}, "claude", "grok"]
文字列と形を混ぜる
[{"engine": "codex", "model": "gpt-5.6-terra"},
{"engine": "codex", "model": "gpt-5.6-luna"}]
同じエンジンに別のモデルを並べると、そのエンジンはこのモデルの中から選ばれる
[{"engine": "codex", "model": "gpt-5.6-terra", "effort": "high"},
{"engine": "codex", "model": "gpt-5.6-luna", "effort": "medium"},
{"engine": "claude", "effort": "high"}]
同じエンジンで、モデルと労力の組み合わせを変えて並べられる
pool の決まり
- 要素は 16 個までです。超えると 400 になります。
- まったく同じ要素は、1 つにまとめます。
- クラウドの pool では、gemini、opencode、kimi は外されます。全部が外れると 400 になります。
poolを書いたときは、トップレベルのmodel・effortは使えません(400)。モデルや労力は、pool の要素の中に書きます。- 金庫に認証が無いエンジンは外し、残りで動きます。外したエンジンは、応答の
poolDroppedに出ます。残りが無いときは 412 になります。 - エンジンを限定したキーでは、pool のエンジンが全部、限定の中に入っている必要があります。入っていないと 403 になります。
パラメーター
| パラメーター | 型 | 必須 | 既定 | Fuga の設定 | 説明 |
|---|---|---|---|---|---|
prompt |
string | 必須 | — | 入力欄 | 作業の指示。計画の AI がパートに分ける。40 万文字まで。 |
repoUrl |
string | 必須 | — | — | 結果を統合する GitHub のリポジトリ。/orchestrate では必須。 |
serverAuth |
true | 必須 | — | — | クラウド金庫の認証で動かす。 |
pool |
array | 任意 | エンジン 1 人 | エージェントプール | 計画の AI が担当を割り当てる候補。書き方は上の「pool の書き方」。 |
engine |
string | 任意 | codex | — | pool を省いたときの、メンバー 1 人のプール。このときだけ、トップレベルの model・effort も使える。 |
baseBranch |
string | 任意 | リモートの既定 | — | clone の元、autoMerge の取り込み先のブランチ。 |
maxParallel |
number | 任意 | 2 | — | 同じ段(wave)の中で、同時に動かすワーカーの数。1〜16 の範囲に丸める。 |
params.autoMerge |
boolean | 任意 | true | 自動マージ | 終わったら baseBranch に統合する。取り込みたくないときは、false と書く。 |
params.autoPush |
boolean | 任意 | true | 自動プッシュ | 各パートの作業のブランチを push する。 |
params.requirementsGeneration |
boolean | 任意 | true | 要件定義の生成 | 計画に、要件定義のパートを入れる。 |
params.requirementsImageGeneration |
boolean | 任意 | true(要件定義の生成がオンのとき) | 要件定義の画像生成 | 要件定義に画像を入れる。金庫に fal のキーが要る。requirementsGeneration を false にすると、こちらもオフになる。 |
/orchestrate の params は、/launch と既定が違います。省くと、自動マージも要件定義もオンで動きます。必要なものは、true か false をはっきり書いてください。