mcpField
L
llm-activity-report-skill

llm-activity-report-skill

github.com/k5-mot生産性0108 回インストール6 週間前に更新
リポジトリ

llm-activity-report-skill について

llm-activity-report-skill は、指定期間の Open WebUI のチャンネル投稿、ユーザーチャット、新規ナレッジから日本語の活動レポートを作成するスキルです。呼び出し元のエージェントが内容をまとめ、チャット ID や URL はレポートに含めません。

主な機能

  1. 01チャンネル投稿とユーザーチャットの取得
  2. 02新規ナレッジの反映
  3. 03呼び出し元エージェントによる総合要約
  4. 04チャット ID と URL の除外
  5. 05チャンネルリンクと任意の Langfuse 補足

活用シーン

  1. 01期間を指定したチーム活動の要約
  2. 02変更、リスク、ブロッカーの整理
  3. 03日本語の活動レポート作成
  4. 04Open WebUI チャンネルへのレポート投稿

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/k5-mot/skills --skill llm-activity-report-skill

インストール後、Claude Code で/llm-activity-report-skillを入力して読み込まれたか確認します。

同梱ファイルscripts/report.pytests/test_llm_activity_report_skill.py

詳細

プロジェクトの README より

llm-activity-report-skill

目的

Open WebUIの指定期間内の全チャネル投稿、全ユーザーチャット、新しく追加されたナレッジをもとに、日本語で活動レポートを作成する。レポートでは、誰が何をしたか、何が変わったか、どのリスクやブロッカーが出たか、次に何を確認すべきかを整理する。

実行環境

このSkillは open-webui-skill と同じ実行環境で動く。Open WebUIへの接続には OPEN_WEBUI_BASE_URL と OPEN_WEBUI_API_KEY が必要。レポート内のチャネルURLをブラウザで開けるリンクにする場合は OPEN_WEBUI_PUBLIC_URL を設定する。Langfuse補足を含める場合だけ、LANGFUSE_HOST、LANGFUSE_PUBLIC_KEY、LANGFUSE_SECRET_KEY を使う。

手順

  1. scripts/report.py または open-webui-skill を使って全チャネル投稿、全ユーザーチャット、新規ナレッジを取得する。
  2. scripts/report.py を使う場合は、返却JSONの summary_input.channel_messages[*].content、summary_input.chat_messages[*].content、summary_input.knowledge を読み、Skill呼び出し元のAgentがLLMとして総合的に要約する。Python内ではLLMを呼び出さない。
  3. チャネル投稿とチャット投稿の本文をどちらも要約対象に含める。ただし、チャットは個人情報を含みやすいため、チャットIDやチャットURLはレポート本文に出さない。
  4. URLを張る場合はチャネルURLだけを使う。メッセージ単位のURL、チャットURL、チャットIDは出力しない。
  5. チャネルリンクは表示名を #<チャネル名>、リンク先を OPEN_WEBUI_PUBLIC_URL/channels/<channel_id> 形式にする。例: [#report](http://webui.example/channels/2b63b27b-fc60-4b84-bb04-e51d2fced360)
  6. 同じ項目の 🔗 URL には同じリンクを重複して並べない。
  7. 人間とAIの投稿を区別せず、どちらも活動内容として扱う。
  8. 必要に応じてスレッド返信や添付ファイル内容も確認する。
  9. Markdown本文は必ず日本語で作成する。固有名詞、チャンネル名、ユーザー名、コード、ログ断片は原文を保持してよい。

補助コマンド

python3 /opt/inferlab/skills/llm-activity-report-skill/scripts/report.py \
  --since "2026-04-28T00:00:00+09:00" \
  --until "2026-04-28T23:59:59+09:00" \
  --page-size 100 \
  --max-pages 100

この補助コマンドは open-webui-skill 経由で全チャネル投稿、全ユーザーチャット、新規ナレッジを取得する。返却JSONの content_markdown は機械的な下書きであり、最終レポートは呼び出し元Agentが summary_input の本文を読んで、下記の出力形式に準拠して作成する。単一チャネルだけを確認する場合は --single-channel --channel report を使う。

要約ルール

  • 主要イベント、推奨アクション、潜在的なリスクの 🧭 概要 は、単なる件数やキーワード数ではなく、取得した投稿本文を総合的に読んで説明する。
  • 過去に投稿されたアクティビティレポートや技術ニュースレポートがチャネル投稿に含まれる場合は、そのレポート本文をそのまま再掲せず、そこから分かる活動・論点・リスクだけを抽出する。
  • チャット投稿は要約には使うが、🔗 URL には出さない。チャットIDも出さない。
  • チャネル投稿に関連する項目だけ 🔗 URL にチャネルリンクを出す。表示名は #report のようなチャネル名、リンク先はメッセージIDを含めず、.../channels/<channel_id> で止める。
  • ひとつの項目内で同じチャネルリンクが複数回出る場合は1回だけ出す。

出力形式

ユーザーから別指定がない限り、以下の日本語構成を使う。見出しには適宜絵文字を付けて、一覧性を高める。

---

## 📊 アクティビティレポート (YYYY-MM-DD)

- 🔢 集計対象イベント数:N件
- 📅 集計期間:YYYY-MM-DD HH:MM 〜 YYYY-MM-DD HH:MM
- 💬 チャネル投稿:N件 / 🤖 チャットメッセージ:M件 / 📚 新規ナレッジ:K件

<全体的な活動の傾向や重要なポイントを3行程度で日本語で要約する。例:「📝 全体的にチャネル投稿が活発で、特に#generalと#randomで多くの議論があった。ユーザーチャットではユーザーAとユーザーBが頻繁にやり取りしており、新規ナレッジも複数追加された。」>

### 🔥 本日の主要イベント

1. <主要イベントAのタイトル>
   - 🧭 概要:<主要イベントAの内容を日本語で要約する。>
   - 👥 関連ユーザー:<ユーザーの名前>
   - 🔗 URL:<チャネル投稿のURL>
2. <主要イベントBのタイトル>
   - 🧭 概要:<主要イベントBの内容を日本語で要約する。>
   - 👥 関連ユーザー:<ユーザーの名前>
   - 🔗 URL:<チャネル投稿のURL>
3. ...

### ✅ 推奨アクションアイテム

1. <アクションアイテムAのタイトル>
   - 🧭 概要:<アクションアイテムAの内容を日本語で説明する。>
   - 👥 担当者:<ユーザーの名前>
   - ⏰ 期限:<YYYY-MM-DDなど>
2. <アクションアイテムBのタイトル>
   - 🧭 概要:<アクションアイテムBの内容を日本語で説明する。>
   - 👥 担当者:<ユーザーの名前>
   - ⏰ 期限:<YYYY-MM-DDなど>
3. ...

### ⚠️ 潜在的なリスク

1. <潜在的なリスクAのタイトル>
   - 🧭 概要:<潜在的なリスクAの内容を日本語で説明する。>
   - 👥 関連ユーザー:<ユーザーの名前>
   - 🔗 URL:<チャネル投稿のURL>
2. <潜在的なリスクBのタイトル>
   - 🧭 概要:<潜在的なリスクBの内容を日本語で説明する。>
   - 👥 関連ユーザー:<ユーザーの名前>
   - 🔗 URL:<チャネル投稿のURL>
3. ...

### 👥 ユーザー別アクティビティ

1. <ユーザA>:🗨️ N件のチャンネル投稿、🤖 M件のチャット利用
2. <ユーザB>:🗨️ N件のチャンネル投稿、🤖 M件のチャット利用
3. ...

### 📚 新規ナレッジ

- <ナレッジA>:<作成日時>
- <ナレッジB>:<作成日時>

連携

投稿する場合は、生成したMarkdownを open-webui-skill に渡す。

python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py channels post \
  --channel report \
  --file ./activity_report.md

コメント