# dify-api-edit > Dify上のフローをAPI経由で直接編集します。YAMLファイルを変更せずに、環境変数の更新、ノード/エッジのパッチ適用、部分的なグラフ更新が可能です。運用中のフローの軽微な修正に使用します。「API編集」「直接編集」「パッチ」「環境変数更新」などの依頼時に使用します。 - Author: ryuseisuda - Repository: ryuseisuda/clawd2 - Version: 20260123002259 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/ryuseisuda/clawd2 - Web: https://mule.run/skillshub/@@ryuseisuda/clawd2~dify-api-edit:20260123002259 --- --- name: dify-api-edit description: "Dify上のフローをAPI経由で直接編集します。YAMLファイルを変更せずに、環境変数の更新、ノード/エッジのパッチ適用、部分的なグラフ更新が可能です。運用中のフローの軽微な修正に使用します。「API編集」「直接編集」「パッチ」「環境変数更新」などの依頼時に使用します。" --- # Dify API直接編集 Workflow ## Instructions 1. Preflight: - 対象App IDを確認(flow_log/.{ファイル名}.app_id または直接指定) - 編集内容を確認(環境変数/ノード/エッジ/グラフ全体) - 現在のフロー状態をエクスポートしてバックアップ推奨 2. 編集モード選択: ### 環境変数編集 - 単一変数の追加/更新: `--upsert` - 変数の削除: `--delete` - 一覧表示: `--list` - YAMLから一括適用: `--apply-from-yml` ### ノード/エッジパッチ - 部分マージ: `--preset merge` - 特定ノードのみ: `--node-prefix` - 特定エッジのみ: `--edge-prefix` - 既存置換: `--update-existing` ### グラフ全体置換 - グラフ全体を置換: `--replace-graph` - 環境変数全体を置換: `--replace-env` 3. 実行: - **必ずdry-run(--apply なし)で確認後に実行** - 変更内容をログに記録 - エラー時は元の状態を確認 4. 検証: - エクスポートして変更が反映されていることを確認 - テスト実行で動作確認 recommended_subagents: - qa-skill-qc: 共通QC。対象Skillの ./evaluation/evaluation_criteria.md を先にReadしてからQCを開始 ## Resources - questions: ./questions/api_edit_questions.md - assets: ./assets/patch_yml_template.md - evaluation: ./evaluation/evaluation_criteria.md - triggers: ./triggers/next_action_triggers.md - scripts: - ./scripts/dify_patch_draft_api.py - ./scripts/dify_env_vars.py ## Next Action - triggers: ./triggers/next_action_triggers.md 起動条件に従い、条件を満たすSkillを自動実行する。 ## Error Handling - auth_cookie_expired: --refresh オプションを追加して再実行 - app_id_not_found: App IDを確認、Dify上でフローが存在するか確認 - patch_conflict: 既存ノードとの競合、--update-existing で上書き許可 - invalid_patch_yml: パッチYAMLの構文を確認 --- ## 環境変数編集コマンド ```bash # 環境変数一覧表示 source .venv/bin/activate && python scripts/dify_env_vars.py --list # 環境変数の追加/更新 source .venv/bin/activate && python scripts/dify_env_vars.py --upsert "" # 環境変数の削除 source .venv/bin/activate && python scripts/dify_env_vars.py --delete # YAMLから環境変数を抽出 source .venv/bin/activate && python scripts/dify_env_vars.py --extract # YAMLの環境変数をDifyに一括適用 source .venv/bin/activate && python scripts/dify_env_vars.py --apply-from-yml # 不足変数の比較 source .venv/bin/activate && python scripts/dify_env_vars.py --compare ``` --- ## ドラフトパッチコマンド ```bash # dry-run(変更内容確認のみ) source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml # 実際に適用 source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --apply # 特定ノードのみパッチ(接頭辞指定) source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --node-prefix llm_ \ --apply # 既存ノードを上書き source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --update-existing \ --apply # グラフ全体を置換(危険:既存ノード/エッジを全消去) source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --replace-graph \ --apply # 環境変数全体を置換 source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --replace-env \ --apply # YAMLの環境変数値をドラフトに適用 source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --apply-env-from-yml \ --apply # Cookie強制再取得 source .venv/bin/activate && python scripts/dify_patch_draft_api.py \ --app-id \ --patch-yml \ --refresh \ --apply ``` --- ## パッチYAML形式 パッチYAMLは通常のDify DSL形式の一部を含みます: ```yaml workflow: environment_variables: - name: API_KEY value: "" # 値は空でも可(--apply-env-from-ymlで上書き) graph: nodes: - id: new_llm_node data: type: llm # ... ノード定義 edges: - id: edge_to_new_node source: start_node target: new_llm_node # ... エッジ定義 ``` --- ## 使用例 ### 例1: LLMノードのプロンプトを更新 1. パッチYAMLを作成(対象ノードのみ含む) 2. `--node-prefix llm_ --update-existing --apply` で適用 ### 例2: 新しいノードを追加 1. パッチYAMLに新ノードと接続エッジを定義 2. `--apply` で追加(既存に影響なし) ### 例3: 環境変数を一括更新 1. `--list` で現在の変数を確認 2. `--upsert KEY VALUE` で個別更新、または 3. YAMLに変数定義して `--apply-env-from-yml` で一括適用