com um clique
data-analyst
// BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。
// BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。
Slack検索・TODO抽出・タスク管理を行うサブエージェント。 複数データソースからタスクを抽出し、優先順位付けを行う。 「Slackを検索」「タスクを抽出」「TODO確認」「メンション確認」等のリクエストで発動。
ai-agent-campのレッスンをCodexで開始・進行するスキル。 「レッスン開始」「次のレッスン」「start-0-1を始めたい」「Codexでレッスン」「スラッシュコマンドのレッスン」等のリクエストで発動。
YouTube/マルチプラットフォーム動画からAIでハイライトを抽出し、 バイリンガル字幕付きクリップを自動生成するスキル。 「動画からクリップを切り出して」「ハイライトを抽出」「字幕付きクリップ」等で発動。
メールとSlackから返信すべき項目・タスクを抽出する統合型スキル。 Gemini 3.0 Flashで文脈判定し、優先度と返信ドラフトを生成。 「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」等のリクエストで発動。
コンテンツの投稿・配信実行スキル。Typefully経由のX投稿、画像アップロード、 投稿スケジューリングを行う。 「投稿して」「スケジュール設定」「Typefullyに下書き」等で発動。
CSVファイルの行数・列数の取得、データ型推定、欠損値検出、数値列の統計情報を出力するスキル。 「CSVを分析して」「CSVの中身を確認」「データの概要を見せて」等のリクエストで発動。
| name | data-analyst |
| description | BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。 |
| triggers | ["データ分析","BigQuery","Snowflake","EDA","探索的データ分析","可視化","グラフを作成","Marimo","ノートブック"] |
BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェント。
データ分析処理をメインエージェントのコンテキストから分離し:
このサブエージェントは以下の4つのルールの内容を内包しています:
data_analysis.mdc - データ分析の基本原則visualization.mdc - 可視化の品質基準notebook.mdc - Marimo Notebook利用ルールmarimo_variable_naming.mdc - Marimo変数命名ルールdata/
├── raw/ # 元データ(上書き禁止)
├── intermediate/ # 中間処理データ
├── feature/ # 特徴量データ
└── output/ # 最終出力
命名規則: {source}__{target}__{granularity}__{date}.parquet
例: bq__sales__daily__2025-03-01.parquet
ydata-profiling) やAutoViz (autoviz) を活用| ルール | 説明 |
|---|---|
| 意味のあるラベル | index番号使用禁止、ユーザー名/日付/カテゴリ名を使用 |
| 適切なグラフタイプ | 棒グラフ(比較)、折れ線(時系列)、ヒートマップ(2次元) |
| 日本語ラベル | 専門知識なしで理解できるように |
| 数値ラベル表示 | 棒の上に「1,791件」等を表示 |
| タイトル/軸ラベル/凡例 | 必須 |
| 高解像度 | 300 DPI以上 |
| データ | 推奨グラフ |
|---|---|
| カテゴリ比較 | 棒グラフ |
| 時系列 | 折れ線グラフ |
| 2次元データ | ヒートマップ |
| 内訳 | 積み上げグラフ |
| 長いラベル | 横棒グラフ |
import matplotlib
matplotlib.use('Agg') # GUIなしで動作
import matplotlib.pyplot as plt
# 日本語フォント設定
plt.rcParams['font.family'] = 'Hiragino Sans'
from tqdm import tqdm
# 時間のかかる処理には必ず進捗表示
for item in tqdm(items, desc="処理中", unit="item"):
process(item)
time.sleep(0.5)
WITH deduplicated AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY post.xPostId ORDER BY _PARTITIONTIME DESC) as row_num
FROM `project.dataset.table`
WHERE _PARTITIONTIME IS NOT NULL
)
SELECT * FROM deduplicated WHERE row_num = 1
Marimoでは変数の再定義が禁止。異なるセル間で同じ変数名を使用するとエラー。
| セルの目的 | 推奨接尾辞 | 例 |
|---|---|---|
| データ取得 | _fetch, _load | df_fetch, result_load |
| 前処理 | _prep, _clean | data_prep, values_clean |
| 統計分析 | _stat, _calc | mean_stat, corr_calc |
| 可視化(静的) | _static, _plot | fig_static, ax_plot |
| 可視化(動的) | _dyn, _inter | net_dyn, chart_inter |
| モデル学習 | _train, _fit | model_train, scaler_fit |
| 評価 | _eval, _test | score_eval, pred_test |
# ✅ 良い例(セルごとに固有の接尾辞)
@app.cell
def _(data):
fig_overview, axes_overview = plt.subplots(2, 2)
for idx_ov, ax_ov in enumerate(axes_overview.flatten()):
ax_ov.plot(data[idx_ov])
return fig_overview, axes_overview
@app.cell
def _(data):
fig_detail, axes_detail = plt.subplots(3, 3)
return fig_detail, axes_detail
# 編集前後で実行し、再定義が0件であることを確認
python scripts/lint_marimo_vars.py <path>
# 設定プロファイル一覧
gcloud config configurations list
# プロファイル切り替え
gcloud config configurations activate <profile_name>
# 認証
gcloud auth application-default login
| プロファイル名 | プロジェクトID | 用途 |
|---|---|---|
default | - | デフォルト環境 |
my-profile | my-gcp-project | 本番データ分析 |
my-dev | my-dev-project | 開発分析 |
メインエージェントは以下のパターンでこのサブエージェントを呼び出す:
Task(
subagent_type="generalPurpose",
model="fast",
description="Data analysis",
prompt="""
このスキルを読んで実行してください: skills/data-analyst/SKILL.md
タスク: {ユーザーの指示}
データソース: {BigQuery / Snowflake / CSV等}
分析目的: {EDA / 可視化 / レポート作成等}
分析結果のサマリーを返却してください。
"""
)
status: success
analysis_type: EDA
data_source: BigQuery (my-dev-project)
summary:
total_rows: 150000
columns: 25
date_range: "2025-01-01 ~ 2025-12-31"
key_findings:
- "日別投稿数は平均1,200件/日"
- "ピーク時間帯は12:00-13:00"
- "週末は平日比30%減少"
visualizations:
- path: reports/daily_posts.png
description: "日別投稿数推移"
- path: reports/hourly_heatmap.png
description: "時間帯別ヒートマップ"
notebook:
path: notebooks/eda_analysis.py
status: "作成完了"
marimo>=0.5.0
pandas>=2.0.0
plotly>=5.0.0
matplotlib>=3.7.0
google-cloud-bigquery>=3.0.0
ydata-profiling>=4.0.0
tqdm>=4.65.0
| エラー | 解決方法 |
|---|---|
| GCP認証エラー | gcloud auth application-default login を実行 |
| BigQueryテーブルが見つからない | gcloud config configurations list でプロファイルを確認し適切なものに切り替え |
| Marimo変数再定義エラー | python scripts/lint_marimo_vars.py <path> で重複変数を確認・修正 |
data/output/ または reports/ に保存されているBigQuery/Snowflake接続、EDA(探索的データ分析)、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェントスキルです。データ分析・可視化・Notebook作成の4つのルールを統合し、分析結果のサマリーのみを返却します。
上記「サブエージェント呼び出しパターン」および「GCP認証」セクションを参照。基本的な実行例:
# Marimo ノートブックで分析を開始
marimo edit notebooks/eda_analysis.py
# 変数Lintチェック
python scripts/lint_marimo_vars.py notebooks/eda_analysis.py