AI アシスタントによる編集
CLI や MCP でワークフローを調べて編集します。ワークベンチと同じサービスを利用します。
利用する Open Flow サービスに AI アシスタントを接続してください。ワークベンチ、CLI、MCP は、そのサービス上の同じフローを操作します。クライアントを切り替えても、別のワークスペースや実行サービスは作成されません。
クイックスタートで AI アシスタントの環境設定を説明しています。以下は oo flow コマンドグループを使う例です。MCP には、対応する flow_read、flow_schema、flow_edit、flow_check と実行ツールがあります。
編集前に仕様を調べる
oo flow schema code --json
oo flow read FLOW_ID --json
変更するノードの詳細と、コードやプロンプトの全文を読み取ります。ノードスキーマには、対応する設定、入力元、デフォルト値、例が記載されています。アクションやトリガーの識別子は推測せず、デプロイ先のカタログから取得してください。
リビジョンを指定して編集する
編集リクエストには、読み取った baseRevision、同じ操作で使い続ける requestId、順序付きの操作を含めます。次の例は Start、Code、実行エッジ、データのバインドを作成します。
{
"baseRevision": "OBSERVED_REVISION",
"requestId": "UNIQUE_REQUEST_ID",
"edits": [
{
"op": "node.add", "as": "start", "type": "start", "name": "Start",
"config": { "inputDefs": { "name": { "schema": { "type": "string" }, "nullable": false } } }
},
{
"op": "node.add", "as": "greet", "type": "code", "name": "Compose greeting",
"code": "export default ({name}) => ({message: `Hello, ${name}!`});",
"config": { "outputs": { "message": { "schema": { "type": "string" }, "nullable": false } } },
"inputs": { "name": { "kind": "output", "node": "$start", "port": "name" } }
},
{ "op": "edge.connect", "source": "$start", "target": "$greet" }
]
}
oo flow edit FLOW_ID --file edits.json --json
oo flow check FLOW_ID --json
as で別名を宣言するときは $ を付けません。同じバッチの後続操作では $alias を使い、次回以降のリクエストではサービスが返したノード参照を使います。バッチ全体が一括でコミットされます。ただし、保存されたドラフトに検証エラーが残る場合はあります。
関係のない設定を保つ
更新では、スキーマを含むオブジェクトを再帰的にマージします。配列は全体を置換します。省略したフィールドは変更されず、空のオブジェクトでも既存設定は消えません。
{
"op": "node.update",
"node": "NODE_REFERENCE",
"clear": [["retry"]]
}
明示的な clear、JSON の null、入力の未設定、デフォルト値の継承はそれぞれ意味が異なります。更新前に現在の値を読み、最新のスキーマで対応する入力元を確認してください。
競合や結果不明の応答に対処する
送信結果を確認できない場合は、同じリクエスト識別子で、まったく同じ内容を再送します。元の編集が成功したか分かるまでは、新しい識別子に変更しないでください。リビジョンが競合したら新しいドラフトを読み直し、変更の適用方法を判断します。他の編集を無断で上書きしてはいけません。
検証はワークフローを実行せず、外部アカウントの準備も確認しません。公開前に対象の入口をテストし、実行履歴を確認してください。詳しくはテストと公開を参照してください。