第12章 AIにDSLを作らせてインポート

この章では、第1章1-3で概要を説明したパターン3「DSLファイルのインポート」の詳しい手順を説明します。生成AIにDSLファイル(アプリの設計内容を書き出したファイル。取り込むと同じ構成のアプリを作れる)を書かせ、Difyに取り込み、取り込んだ後の調整までを一通り行えるようになります。あわせて、作ったアプリをDSLファイルとして書き出す(エクスポートする)操作と使いどころも説明します。

12-1. DSLファイルとは

DSLファイル は、Difyのアプリの設計内容を YAML(ヤムル。設定や設計を書くための、人が読めるテキスト形式) で書き出したファイルです。Difyはこのファイルの取り込み(インポート)と書き出し(エクスポート)に対応しています。ファイルには、次の内容が書かれています。

DSLファイルに書かれているもの 内容
アプリの基本情報 アプリ名・説明・アプリの種類(ワークフロー、チャットボットなど)
処理の流れ(ノードの構成) どのノードをどうつないでいるか、各ノードの設定
AIモデルの設定値 どのモデルをどんな設定(パラメータ)で呼ぶか
AIモデルへの指示文 LLMノードなどに書いた指示文(プロンプト)
ナレッジとの接続情報 どのナレッジ(保管庫)をつないでいるか、という参照の情報

一方、次のものはDSLファイルに 含まれません

DSLファイルに含まれないもの 意味すること
外部ツール用のAPIキー(秘密の接続情報) 取り込んだ側の環境で、ツールの接続設定をやり直す必要がある
ナレッジに登録した資料の中身 接続情報だけが書かれ、資料そのものは移らない。取り込んだ側でナレッジを用意してつなぎ直す
実行履歴(ログ) 過去の利用記録は移らない

つまりDSLファイルは「アプリの設計図」であり、資料や秘密の接続情報は入っていません。だからこそ、生成AIに設計図だけを書かせて、資料(ナレッジ)とモデルは自分の環境で後からつなぐ、という本章の進め方が成り立ちます。

DSLファイルの中身は、たとえば次のような形をしたテキストです(あくまで形の一例です。実際の項目名・構成は、アプリの内容やバージョンにより異なります)。

app:
  name: 会議記録の要約
  mode: workflow
  description: 会議の記録を3項目に整理して要約するワークフロー

中身を自分で読める必要はありません。本章の進め方では、この中身を書くのは生成AIの仕事で、私たちの仕事は「何を作ってほしいかを正しく伝えること」と「取り込んだ後に確認・調整すること」です。

生成AIにDSLファイルを書かせてDifyに取り込む流れ 図12-1 生成AIにDSLファイルを書かせてDifyに取り込む流れ(取り込んだ後に、ナレッジとモデルを手動でつなぐ)

12-2. 生成AIへの依頼のしかた

依頼文の型

生成AIへの依頼文には、次の4点を入れます。この4点がそろっていれば、意図に近いDSLファイルが返ってくる確率が上がります。

依頼文に入れる項目 書くこと
①アプリの種類 チャットボット・チャットフロー・ワークフローなど、どの種類で作るか(序章0-2)
②処理の流れ 何を受け取り、どんな順で処理し、何を返すか。ノード名(ユーザー入力・LLM・知識検索・出力など)を添えると、意図がより正確に伝わる
③各ノードの設定 LLMノードへの指示文の内容、応答の言語、出力の形式など
④手動でつなぐものの明示 ナレッジとAIモデルは取り込んだ後に自分でつなぐので、DSLファイルには仮の設定でよい、と伝える

あわせて、回答の形式として「YAMLのコードブロック1つで、全文を省略せずに出力してください」と指定しておくと、次の保存の手順が楽になります。

依頼に使う生成AIは、お使いの環境で利用が認められているもの(ChatGPT・Claudeなど)を使ってください。また、依頼文に個人情報や外部に出せない内部情報を書かないでください。処理の流れの説明は、一般的な言葉で書けば十分です。

依頼文の例1:ワークフロー(文書の要約)

Difyにインポートできる DSLファイル(YAML形式)を作ってください。

- アプリの種類:ワークフロー
- アプリ名:会議記録の要約
- 処理の流れ:
  1. ユーザー入力ノードで、会議の記録の文章を受け取る
  2. LLMノードで、受け取った文章を「決定事項」「継続検討」「次回予定」の
     3項目に整理して要約する
  3. 出力ノードで、要約の結果を返す
- 各ノードの設定:
  - LLMノードへの指示文は「あなたは会議記録を整理する事務担当です。
    入力された会議記録を、決定事項・継続検討・次回予定の3項目に
    整理してください。記録に無いことは書かないでください。」とする
  - 応答は日本語とする
- 注意:
  - 使うAIモデルの指定は仮でよい(取り込んだ後にこちらで選び直します)
  - 回答はYAMLのコードブロック1つで、全文を省略せずに出力してください

依頼文の例2:チャットボット(資料にもとづくFAQ応答)

Difyにインポートできる DSLファイル(YAML形式)を作ってください。

- アプリの種類:チャットボット
- アプリ名:庁内手続きFAQ
- 内容:職員からの質問に、接続した資料(ナレッジ)を根拠に答える
- 指示文の内容:
  - あなたは庁内手続きの案内係です
  - 接続された資料の内容にもとづいて答えてください
  - 資料に無いことは推測で答えず、「資料には見当たりません」と返してください
  - 応答は日本語とする
- 注意:
  - ナレッジ(資料の保管庫)は取り込んだ後にこちらで手動でつなぐので、
    DSLファイルに資料の内容は含めなくてよい
  - 使うAIモデルは取り込んだ後にこちらで選び直します
  - 回答はYAMLのコードブロック1つで、全文を省略せずに出力してください

回答からYAMLを取り出してファイルに保存する

前提:生成AIの回答に、YAMLのコードブロック(枠で囲まれたテキスト)が含まれていること。

  1. 回答の中のYAMLのコードブロックを確認します。途中に「(以下略)」「…」など省略を示す表記がある場合は、「全文を省略せずに出力し直してください」と依頼し直します。コードブロックが複数に分かれている場合は、「1つのYAMLにまとめて出力してください」と依頼し直します。
  2. コードブロックの中身を全て選択してコピーします。多くの生成AIでは、コードブロックの隅にコピー用のボタンがあります。枠の外の説明文は含めません。
  3. メモ帳などのテキスト編集ソフトを開き、貼り付けます。
  4. 名前を付けて保存します。ファイル名は半角英数字(例:youyaku.yml)にし、拡張子は「.yml」とします。文字コード(文字の保存形式)を選べる場合はUTF-8を選びます。

完了状態:拡張子が .yml のファイルが手元に保存されている。

12-3. インポート手順

取り込みの操作

前提:12-2で保存した .yml ファイルが手元にあり、Difyにログインしていること。

  1. ワークスペースのメニューから「スタジオ」を開きます。
  2. 左上の「アプリを作成する」の「DSLファイルをインポート」ボタンを押します(第2章2-1で見た、「最初から作成」「テンプレートから作成」と並ぶ選択肢の1つです。文言はバージョンにより異なることがあります)。
  3. 保存した .yml ファイルを選んで、取り込みを実行します。

アプリ作成画面で「DSLファイルをインポート」を選び、保存した .yml ファイルを指定した状態

完了状態:スタジオのアプリ一覧に取り込んだアプリが追加され、開くと依頼した処理の流れ(ノードの構成)が再現されている。

エラーやバージョン警告が出た場合

起きたこと 主な原因 対処
取り込み時にエラーが表示され、アプリが作られない ファイルの中身がYAMLとして正しくない(コピー漏れ・枠外の説明文の混入・全文でない、など) 保存したファイルをメモ帳で開き、先頭と末尾が欠けていないかを確認します。直せない場合は、生成AIに「このYAMLをDifyに取り込むと次のエラーが出ます」とエラーの文言とYAML全文を貼り、修正を依頼して作り直します
「DSLのバージョンが古い」という趣旨の警告が表示される 取り込むDSLファイルのバージョンが、お使いの環境より古い 警告の具体的な表示内容と、警告が出た後の扱いは、バージョンにより異なります。表示された内容を確認して進めてください。取り込めない場合は、生成AIにDSLファイルを作り直させるか、別の環境からエクスポートしたファイルであればエクスポートし直したもので試します
取り込めたが、中身が意図と違う 依頼文が曖昧で、生成AIが別の構成を作った 12-2の依頼文の型(4点)を見直して依頼し直すか、画面上でノードを直します(第7章)

同じエラーが繰り返し出て進めない場合の切り分け方は、第14章で説明します。

12-4. インポート後の調整

12-1で見たとおり、DSLファイルにはナレッジの中身や秘密の接続情報が含まれません。また、生成AIが書いたモデルの設定は仮のものです。取り込んだら、次の順で調整します。

前提:取り込んだアプリをスタジオから開けること。

  1. AIモデルを選び直します。 LLMノード(チャットボットの場合はモデルの設定欄)を開き、お使いの環境で使えるAIモデルを選びます。どのモデルを使えるかは、お使いの環境の契約・設定によります(序章0-1)。
  2. ナレッジをつなぎます。 資料を根拠に答えるアプリの場合、コンテキスト(アプリにナレッジをつなぐ設定欄。ワークフロー・チャットフローでは知識検索ノード)で、対象のナレッジ(保管庫)を選びます(つなぎ方は第5章5-3)。ナレッジそのものの作り方・資料の登録のしかたは、第5章5-2を参照してください。
  3. 指示文を確認します。 生成AIが書いた指示文を読み、業務の言葉に合っているか、余計な内容が入っていないかを確認して直します。
  4. 動きを確かめます。 ワークフローは「テスト実行」、対話型のアプリ(チャットボット・チャットフロー)は「デバッグとプレビュー」で、試したい入力を入れて動きを確認します(第2章2-6と同じ要領です)。

完了状態:意図した入力に対して、意図した形の答えが返る。

確認して意図と違っていた場合、直し方は2通りあります。目安は次のとおりです。

12-5. DSLエクスポートの活用

インポートの対になる機能が、作ったアプリをDSLファイルとして書き出す エクスポート です。

エクスポートの手順

前提:スタジオに、書き出したいアプリがあること。

  1. スタジオのアプリ一覧で対象アプリのメニューを開くか、アプリの編集画面を開きます。エクスポートはどちらの画面からも実行できます。
  2. 「DSLエクスポート」を選びます(文言はバージョンにより異なることがあります)。
  3. Secret型の環境変数(パスワードなど、秘密の値として登録した設定)を使っているアプリでは、それをファイルに含めるかどうかの確認が表示されます。他の人に渡す可能性があるファイルには 含めない を選びます(秘密の値をファイルに残さないため)。
  4. ダウンロードされたDSLファイルを保存します。

スタジオのアプリ一覧で、対象アプリのメニューから「DSLをエクスポート」を選ぶ状態

完了状態:アプリの設計内容が書かれた .yml ファイルが手元に保存されている。

使いどころ

使いどころ 内容
控えの保管 アプリを大きく変える前にエクスポートして保管しておくと、うまくいかなかったときに、控えを取り込んで変更前の構成に戻せます
庁内での共有 よくできたアプリを他の課に渡し、相手の環境に取り込んでもらえます。処理の流れと指示文がそのまま伝わるため、口頭やマニュアルで作り方を説明するより確実です
別環境への移行 試作用の環境で作って確かめたアプリを、本番用の環境に取り込む、といった移し替えに使えます

共有・移行するときの注意

まとめ:DSLで作る流れ

  1. 依頼文の型(①アプリの種類 ②処理の流れ ③各ノードの設定 ④手動でつなぐものの明示)で、生成AIにDSLファイルを書かせる。
  2. 回答からYAMLを取り出し、.yml ファイルとして保存する。
  3. スタジオの「DSLファイルをインポート」から取り込む。
  4. AIモデルとナレッジを手動でつなぎ、指示文を確認する。
  5. テスト実行(またはデバッグとプレビュー)で動きを確かめてから公開する(公開の操作は第2章2-7)。

次の章では、ここまでの章の操作を組み合わせて、実際にアプリを3つ作ります(第13章「チュートリアル」・本マニュアル)。DSLインポートは第13章の例3で実践します。

出典一覧

本章の記述の根拠です(いずれも確認日:2026-08-14)。

内容 出典
DSLファイルの形式(YAML)と含まれる内容(アプリ構成・ノード設定・モデルの設定値・指示文・ナレッジ接続情報) https://docs.dify.ai/ja-jp/guides/management/app-management / https://docs.dify.ai/en/guides/management/app-management
DSLファイルに含まれないもの(外部ツール用APIキー・ナレッジの中身・実行履歴) 同上
インポート時のバージョン確認と、古いDSLファイルへの警告表示 同上
エクスポートの操作(スタジオ/編集画面のどちらからも実行できること)とSecret型環境変数を含めるかの確認 同上
アプリ作成の画面の流れ(スタジオからの作成) https://docs.dify.ai/ja-jp/guides/application-orchestrate/creating-an-application
コンテキスト(ナレッジをアプリにつなぐ設定欄)・知識検索ノード https://docs.dify.ai/ja-jp/guides/knowledge-base/integrate-knowledge-within-application
テスト実行・デバッグとプレビュー https://docs.dify.ai/ja-jp/guides/application-orchestrate/creating-an-application / https://docs.dify.ai/en/cloud/use-dify/build/chatbot.md

前の章:第11章 ツール・プラグイン・API連携