はじめに
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エージェントでも同様の仕組みが使われ始めています。
何が嬉しいのか?
-
スキルの資産化ができること
一番のメリットは、スキルを一度登録すれば、他のワークフローでも再利用できる点です。
-
他のワークフローへ再利用・移植しやすい
使い方として、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: ワークフローアプリの作成
- Dify管理画面で「アプリを作成」→「ワークフロー」→「Chatflow」を選択します。
- ワークフロータブで「LLMノード」の代わりに 「エージェント」ノード を配置します。
- エージェントノードをクリックし、LLMモデルを選択します(今回は Gemini を使用します)。
- 「AGENT MODE ON」を有効化します(サンドボックスでのコード実行が有効になります)。
ワークフロー全体図(ユーザー入力 → エージェント(Gemini 3.1 Pro Preview)→ 回答)
エージェントノード設定画面(AIモデル(Gemini 3.1 Pro Preview)とSYSTEMプロンプト)
Step 2: Skill「csv-analyzer」の作成
今回は、Claudeで作ったSkillをベースに Dify向けに移植・調整 して「csv-analyzer」を作成します。
「スキル」タブで新規スキルを作成します。
スキルエディタ(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ファイルがない場合はサンプルデータを生成して分析してください。
実行結果
テスト実行結果(プロンプト送信後、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- 構造化された分析レポート
生成されたレポートの内容
生成されたレポート(月別売上推移のテキストチャート。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エージェントが自律的にデータ分析を実行してくれます。