gmail-label について
gmail-labelは、受信トレイのメールをAction Required、Waiting On、Referenceに分類し、Gmail APIで一括ラベル付けするスキルです。メールを分割して複数のサブエージェントで並行分類し、結果を統合してからラベルを適用します。
主な機能
- 01メールの概要をコンパクトなJSONで取得
- 02メールを分割して並行分類
- 03メールを3種類のラベルに分類
- 04分類済みのチャンクを1つのファイルに統合
- 05Gmail APIで分類ラベルを一括適用
活用シーン
- 01受信メールを対応区分ごとに整理
- 02並行サブエージェントで大量のメールを分類
- 03アカウントの受信トレイに一貫したラベルを適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aiagentwithdhruv/ skills --skill gmail-labelインストール後、Claude Code で/gmail-labelを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/gmail_label_apply.pygmail_label_fetch.pygmail_label_merge.pygmail_label_split.py詳細
Gmail Auto-Label
目標
受信トレイのメールを取得し、並列サブエージェントで「対応が必要」「返信待ち」「参考」に分類して、Gmail API を使って一括でラベルを適用します。
スクリプト
./scripts/gmail_label_fetch.py- メールの概要をコンパクトな JSON として取得します./scripts/gmail_label_split.py- 並列分類用にメールを N 個のチャンクに分割します./scripts/gmail_label_merge.py- 分類済みチャンクを単一の labels.json に統合します./scripts/gmail_label_apply.py- 分類に基づいてラベルを一括適用します
サブエージェント
email-classifier—.claude/agents/email-classifier.mdで定義されています- モデル:Sonnet 4.5(高速でコスト効率のよい分類)
- 各サブエージェントは 1 つのチャンクを読み込み、分類結果を 1 つのファイルに書き込みます
フロー(並列 — デフォルト)
ステップ 1:メールを取得
python3 .claude/skills/gmail-label/scripts/gmail_label_fetch.py \
--account ACCOUNT --query "in:inbox" --limit 100 --output .tmp/emails.json
ステップ 2:チャンクに分割
python3 .claude/skills/gmail-label/scripts/gmail_label_split.py \
--input .tmp/emails.json --chunks 10 --output-dir .tmp/chunks
ステップ 3:並列で分類(サブエージェントを 10 個起動)
バックグラウンドで email-classifier サブエージェントを 10 個起動します。各サブエージェントはチャンクを 1 つ担当します。各サブエージェントは次の処理を行います。
.tmp/chunks/chunk_N.jsonを読み込みます- 各メールを分類します
.tmp/chunks/classified_N.jsonに書き込みます
Task ツールで run_in_background: true と model: "sonnet" を指定します。真の並列処理を行うため、10 個すべてを 1 つのメッセージで起動します。
For each chunk 0-9, spawn a Task with:
subagent_type: "email-classifier"
model: "sonnet"
run_in_background: true
prompt: "Read /absolute/path/.tmp/chunks/chunk_N.json, classify each email, write results to /absolute/path/.tmp/chunks/classified_N.json"
重要:サブエージェントの結果を読み取るために TaskOutput を使用しないでください。 サブエージェントは結果をファイルに書き込むため、メインエージェントが分類データを確認する必要はありません。TaskOutput を読み取るとコンテキストウィンドウが埋まり、大量のバッチ(メール 500 件以上)では「prompt too long」エラーが発生します。
代わりに、ファイルが存在するかどうかを確認します。
# Wait until all classified files exist (timeout after 120s)
for i in $(seq 0 9); do
while [ ! -f ".tmp/chunks/classified_$i.json" ]; do sleep 2; done
done
その後、ステップ 4(統合)に進みます。
ステップ 4:分類結果を統合
python3 .claude/skills/gmail-label/scripts/gmail_label_merge.py \
--input-dir .tmp/chunks --output .tmp/labels.json
ステップ 5:ラベルを適用
python3 .claude/skills/gmail-label/scripts/gmail_label_apply.py \
--account ACCOUNT --input .tmp/labels.json
分類ガイドライン
対応が必要:
- 確認が必要なセキュリティアラート
- 期限が迫っているクレジットカードやドメインの更新
- 質問を含む Slack の @メンション
- 新しいチームメンバーへの歓迎(Slack の参加通知)
- 返信が必要なクライアントからのメール
- ビジネスリスティングの更新(Google Business Profile、Bing Places)
- Stripe の要対応通知
返信待ち:
- 返信待ちの営業メール
- 解決待ちのサポートチケット
- 送信済みで返信待ちの提案書
参考:
- マーケティングニュースレター(DigitalMarketer など)
- 慈善団体/非営利団体のニュースレター(RAPS など)
- Google Business Profile のパフォーマンスレポート
- プロモーションの案内(Blinkist、セールなど)
- プラットフォームの更新通知(Google Play、Apify など)
- 確認コード(使用済み)
- 不動産ニュースレター(Westbank など)
- ゲームアカウントのメール(Riot Games など)
- 情報提供を目的とするセキュリティアラート(2FA の有効化など)
- 健康に関する注意喚起
- 法律/ポリシーの更新通知
アカウントレジストリ
アカウントはワークスペースのルートにある gmail_accounts.json に保存されています。各アカウントには次の項目が必要です。
email- Gmail アドレスtoken_file- OAuth トークンへのパス
新しいアカウントの追加
python3 .claude/skills/gmail-inbox/scripts/gmail_multi_auth.py --account ACCOUNT_NAME --email EMAIL
パフォーマンス
- 逐次フロー:メール 100 件で約 36 秒(取得 1 秒 + 分類 34 秒 + 適用 1 秒)
- 並列フロー:メール 100 件で約 30 秒(分類 19 秒 + 統合 1 秒未満 + 適用 約 10 秒)
- 分類がボトルネックです。サブエージェントを 10 個並列にすることで、34 秒から 19 秒に短縮できます(約 1.8 倍高速化)。
- エージェントの起動オーバーヘッド(約 4 秒の時間差)が、理論上の性能向上を制限します。
- Gmail API のスロットリングにより、適用ステップの所要時間は変動する場合があります。
スキーマ
入力
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
account | string | はい | レジストリに登録された Gmail アカウント名 |
query | string | いいえ | Gmail の検索クエリ(デフォルト:'in:inbox') |
limit | integer | いいえ | 分類するメールの最大数(デフォルト:100) |
chunks | integer | いいえ | 並列分類用のチャンク数(デフォルト:10) |
出力
| 名前 | 型 | 説明 |
|---|---|---|
labels_applied | object | カテゴリ別の件数:「対応が必要」「返信待ち」「参考」 |
認証情報
| 名前 | ソース |
|---|---|
credentials.json | ファイル |
token_*.json | ファイル(自動生成) |
組み合わせ可能なスキル
このスキルと連携しやすいスキル:gmail-inbox
コスト
分類には Claude Sonnet API を使用します