TECH BLOG

エルカミーの技術ブログです

【Dify v1.14.0-rc1 】Agent x Skills で何が変わる? ── 自作Skillで売上分析を自動化してみた

はじめに

AIアプリケーション開発プラットフォーム Dify に、大きな新機能「Agent x Skills」が追加されました(v1.14.0-rc1 プレリリース)。

従来のDifyは「ワークフローを人間が設計し、LLMはその中の1ノードとして文章を生成する」という構造でした。Agent x Skills では LLMが自律的にコードを書き、実行し、ファイルを生成する ことが可能になります。

本記事では、セルフホスト環境で Agent x Skills を動かし、試しに 自作の「売上分析スキル」 を検証した結果をまとめます。

  • 想定読者:自社でDify導入を検討しているDX担当者、AIで業務自動化を進めたい担当者
  • この記事でわかること:Agent x Skills の概要、従来との違い、動かし方とSkill作成の流れ
Agent x Skills とは?
一言で

「自然言語で書いたスキル(手順書)を渡すと、AIエージェントが状況判断しながら、コード実行やファイル生成までやり切る仕組み」です。

スキルとは?

スキルとは、AnthropicのClaudeが提唱した仕組みで、AIに特定の作業手順やコード、参考資料をまとめて持たせておき、必要なときに読み込んで実行できる「再利用可能な業務パッケージ」のような仕組みです。

最近は、Difyの「Agent x Skills」のように、スキルを呼び出して実行する設計が広がり、Claudeだけでなく他のAIエージェントでも同様の仕組みが使われ始めています。

何が嬉しいのか?
  1. スキルの資産化ができること

    一番のメリットは、スキルを一度登録すれば、他のワークフローでも再利用できる点です。

  2. 他のワークフローへ再利用・移植しやすい

    使い方として、Claude で作ったスキルをDify に移植してワークフローとして定期実行させることもできるようになります。

従来との違い

従来は、ワークフローごとにエージェントへの指示や操作を作り込む必要がありました。

Agent x Skills では、スキルとして手順を共通化でき、Claudeなど他のAIで作ったスキルも移植しやすくなります。

2つのキーコンセプト

以下のような構造で定義します。

例)
xxxxx /             # スキルのフォルダ = スキル名
├── SKILL.md        # スキルの中身(主にAIへの指示手順が書かれている)
└── scripts/        # スキル発動で参考にするスクリプトのフォルダ
    └── xxxxx.py    # 参考スクリプト(エージェントが参照)

SKILL.md にはワークフロー手順・出力フォーマット・ルールを自然言語で記述します。エージェントはこの手順書を読み、必要に応じてコードを書いて実行します。

エージェントがコードを実行する隔離された環境のことです。

Python / Node.js / Bash などに対応し、pip install も可能です。本番環境に影響を与えずに安全にコードを動かせます。

環境構築
前提条件
  • Dify v1.14.0-rc1 (docker compose でセルフホスト)
    ⚠️
    2026年2月末時点ではプレリリース版です。本番利用前に安定版リリースを確認してください。
Agent x Skills を試す
Step 1: ワークフローアプリの作成
  1. Dify管理画面で「アプリを作成」→「ワークフロー」→「Chatflow」を選択します。
  2. ワークフロータブで「LLMノード」の代わりに 「エージェント」ノード を配置します。
  3. エージェントノードをクリックし、LLMモデルを選択します(今回は Gemini を使用します)。
  4. 「AGENT MODE ON」を有効化します(サンドボックスでのコード実行が有効になります)。

image block

ワークフロー全体図(ユーザー入力 → エージェント(Gemini 3.1 Pro Preview)→ 回答)

image block

エージェントノード設定画面(AIモデル(Gemini 3.1 Pro Preview)とSYSTEMプロンプト)

Step 2: Skill「csv-analyzer」の作成

今回は、Claudeで作ったSkillをベースに Dify向けに移植・調整 して「csv-analyzer」を作成します。

「スキル」タブで新規スキルを作成します。

image block

スキルエディタ(csv-analyzerフォルダ構成とSKILL.mdの内容)

SKILL.mdは、Claudeで作ったスキルを移植しました。

このSkillでは、CSVを読み込んで集計し、サマリと推奨アクションを含むレポートをMarkdown(またはテキスト)として出力します。あわせて簡単なグラフ画像も生成します。

---
name: csv-analyzer
description: Analyze CSV data files and generate a structured business
  report with summary statistics, charts, and actionable insights.
  Use this skill when users upload CSV or tabular data and ask for
  analysis or reporting.
---

# CSV Data Analyzer

Analyze uploaded CSV data and produce a business-ready report.

## Workflow

1. **Load data**: Read the CSV file using pandas.
   Show the shape (rows x columns) and first 5 rows.
2. **Basic statistics**: Compute summary stats
   (mean, median, min, max) for all numeric columns.
3. **Identify trends**: Find the top/bottom performers,
   detect outliers, and note any patterns.
4. **Generate chart**: Create a bar chart or line chart of
   the most important metric using matplotlib.
   Save to `output/chart.png`.
5. **Write report**: Output a structured Markdown report with
   sections: Overview, Key Findings, Chart, and Recommendations.

## Rules
- Always respond in the same language the user uses
- If data has Japanese column headers, keep them as-is
- Handle encoding issues (try utf-8, then shift_jis)
- If no CSV is provided, generate sample sales data to demonstrate
参考スクリプト analyze.py

scripts/analyze.py に参考実装を配置します。

#!/usr/bin/env python3
"""CSV Analyzer - Generate business report from CSV data."""
import sys, os, json
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

def generate_sample_data():
    data = {
        'month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
        'sales': [120, 150, 130, 170, 160, 190],
        'cost': [80, 90, 85, 100, 95, 110],
        'region': ['Tokyo', 'Tokyo', 'Osaka', 'Tokyo', 'Osaka', 'Osaka']
    }
    df = pd.DataFrame(data)
    df.to_csv('sample_sales.csv', index=False)
    return df, 'sample_sales.csv'

def analyze(filepath):
    for enc in ['utf-8', 'shift_jis', 'cp932']:
        try:
            df = pd.read_csv(filepath, encoding=enc)
            break
        except:
            continue
    else:
        return "Error: Could not read CSV"

    os.makedirs('output', exist_ok=True)
    stats = df.describe()
    numeric = df.select_dtypes(include='number')

    if not numeric.empty:
        col = numeric.columns[0]
        df.plot(kind='bar', y=col, x=df.columns[0], figsize=(10, 6))
        plt.title(f'{col} Analysis')
        plt.tight_layout()
        plt.savefig('output/chart.png', dpi=100)

    print(json.dumps({
        'shape': list(df.shape),
        'columns': list(df.columns),
        'stats': stats.to_dict(),
        'head': df.head().to_dict()
    }, ensure_ascii=False, default=str))

if __name__ == '__main__':
    if len(sys.argv) > 1:
        analyze(sys.argv[1])
    else:
        df, path = generate_sample_data()
        print(f"Generated sample: {path}")
        analyze(path)
Step 3: テスト実行

ワークフロータブに戻り、プレビューでプロンプトを送信します。

売上データを分析してレポートを作成してください。CSVファイルがない場合はサンプルデータを生成して分析してください。
実行結果
image block

テスト実行結果(プロンプト送信後、3回のbash呼び出しで自律的に処理完了)

エージェントは 3回のbash呼び出し で以下を自律的に実行しました:

ステップ 実行内容 所要時間
bash #1 ls -l *.csv でCSVファイルの存在確認 0.3秒
bash #2 サンプル売上データの生成(Pythonスクリプト実行) 0.4秒
bash #3 データ分析+レポート生成 0.4秒

生成されたファイル:

  • output/sales_data.csv - 12ヶ月分 × 4カテゴリのサンプル売上データ
  • output/report.txt - 構造化された分析レポート
生成されたレポートの内容
image block

生成されたレポート(月別売上推移のテキストチャート。5月が最高 4,323,100円)

Agent x Skills が想定される活用シーン
部門 スキルの例
営業 週次売上レポート自動生成
人事 採用データ分析・傾向レポート
経理 経費データの異常検知
マーケ キャンペーン効果分析
品質管理 製品検査データの統計分析
まとめ

Dify 1.14 の Agent x Skills は、AIを「テキスト生成マシン」から「業務遂行エージェント」に進化させる 機能です。

  • Skill = AI向け業務マニュアル: 自然言語で手順を書くだけ
  • Agent = 自律実行エンジン: コード生成・実行・ファイル出力まで自動

「AIに定型業務を任せたいが、何から始めればいいかわからない」というDX担当者の方は、まず1つのスキルを作ってみてはいかがでしょうか。今回の csv-analyzer のように、分析手順を SKILL.md に書くだけで、AIエージェントが自律的にデータ分析を実行してくれます。

参考リンク
Dify構築運用のご相談