🍉

Difyで「LinuxへSSHし、結果をAIで分析する」ワークフローを作成する

に公開

はじめに

プログデンスの圓佛です。Difyを利用するとAIを利用したワークフローをWeb上で簡単に作成することができます。今回は「DifyからLinuxへSSHし、ストレージの使用量を確認し、結果をAIで分析する」というワークフローを作成してみます。

「Dify」=「ディフィー」

「Dify」の発音ですが、2025/6/28にDify公式が以下のように投稿しています。公式な読み方・発音は「ディフィー」に統一されたそうです。

https://x.com/DifyJapan/status/1939577177848381690

ワークフローの全体像

SSH Command Execution Pluginプラグインを利用するとDifyからSSHできるようになります。Difyのプラグイン管理画面からこのプラグインをインストールします。

image

ワークフローの構成

今回、作成したワークフローの全体像は以下です。

image

以降、ワークフローの内容をステップごとに確認していきます。

1.開始

開始は特に何も設定しておらず、デフォルトのままです。

image

2.SSH COMMAND EXECUTION

SSH Command Executionでは「SSH接続情報」と「実行するコマンド」を定義します。SSH接続できたらストレージの状態を取得する為に「df -h」コマンドを実行しています。

image

尚、SSH Command Executionの実行結果は以下のようなJSONとして取得されます。結果をAIに解析させるには不要部分を削除し、コマンドの実行結果部分だけを残したい為、ワークフローの次ステップでは「コード実行」を利用します。

{
  "text": "",
  "files": [],
  "json": [
    {
      "stderr": "",
      "stdout": "Filesystem                         Size  Used Avail Use% Mounted on\ntmpfs                              392M  1.3M  391M   1% /run\n/dev/mapper/ubuntu--vg-ubuntu--lv   28G   12G   15G  45% /\ntmpfs                              2.0G     0  2.0G   0% /dev/shm\ntmpfs                              5.0M     0  5.0M   0% /run/lock\n/dev/sda2                          2.0G  192M  1.6G  11% /boot\noverlay                             28G   12G   15G  45% /var/lib/docker/overlay2/db80172a9f5521d9e177366f64945e05d25fccdd4e639c7ad68b0e54083a1acc/merged\ntmpfs                              392M   12K  392M   1% /run/user/0\n",
      "success": true
    }
  ]
}

3.コード実行

コード実行ではNodeまたはPythonを実行することができます。まず、入力変数として前ステップの結果から「json」部分を受け取るように設定します。そして、実際のPythonコードでは入力変数(json)から「stdout」部分を抽出する処理を記載します。

image

Pythonコード部分は以下の通りです。

def main(arg1: list) -> str:
    return {
        "result": arg1[0]["stdout"]
    }

4.LLM

結果をAIで処理させます。今回はAIモデルとしてGemini 2.5 Flash-Liteを指定しました。AIに処理させる対象文字列として、コンテキスト設定には前のステップの出力変数にあたるresult変数を指定します。システムプロンプト/ユーザプロンプトには各々、以下を指定しました。

プロンプト種別 内容
システムプロンプト あなたはLinuxのエキスパートです。質問に対して日本語で簡潔に回答してください。
ユーザプロンプト result はLinuxでdfコマンドを実行し、ディスクの使用率を確認した結果です。この結果に問題があるか、どうか、教えてください。

image

5.終了

最後にAI分析の結果を表示してワークフローを終了します。

image

ワークフローの実行例

ワークフローの実行例は以下の通りです。Linux上でコマンドを実行した結果をAIが分析し、アドバイスしてくれています。

image

より実践的にするには

より実践的なものにするには例えば以下のような改善が考えられます。

  • 解析の難しい、複雑なコマンドを実行結果をAIに処理させる
  • 複数のコマンドの実行結果から、AIに分析させる
  • 結果をSlackなどで通知する
  • etc.
株式会社プログデンス
設定によりコメント欄が無効化されています