Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2026-03-28 Slack × GitHub × Claude で作る Chat Bot...

2026-03-28 Slack × GitHub × Claude で作る Chat Bot Agent 改善サイクル@AI実装勉強会第57回

Avatar for Naka Masato

Naka Masato

March 27, 2026
Tweet

More Decks by Naka Masato

Other Decks in Technology

Transcript

  1. 自己紹介 2 / 16 Naka Masato @nakamasato Interests SRE /

    Platform Engineering AI Coding (Claude Code, Devin) ML Infrastructure (Ray, Kubeflow, KServe) LLM Applications Recent Talks Claude Code PR review efficiency ML 実装勉強会 #54 AI Coding で開発した業務レポート 自動生成アプリ 2025-10 Dev Container で安全に Claude Code を使う 2025-07 Platform Engineering とこれからの SRE の役割 SREKaigi 2025
  2. 今日のテーマ 3 / 16 Chat Bot の回答品質を改善サイクルで向上する 01 ユーザーからの フィードバックを

    構造化して収集する 02 フィードバックを GitHub Issue に 自動変換する 03 Claude Code Actions で 分析し改善提案まで 自動化する 人間が介在するのは「フィードバック入力」と「最終レビュー」だけ
  3. 改善サイクル全体像 4 / 16 1 @mention ユーザーが Bot に質問 2

    Bot 回答 trace/version 付きで 回答 3 Feedback ユーザーが回答を評価 4 詳細入力 カテゴリ + 自由記述 → → → ↓ 5 Issue 自動 生成 GitHub Issue に変換 6 Triage + 提 案 Claude Code GitHub Actions が分 析 7 改善・ Deploy 開発者がレビュー・修 正 ↻ 回答品質向上 サイクルが回り続ける ← ← ← ↑ Bot 処理 ユーザー操作 自動化 開発者作業
  4. Step 1: Bot の回答 5 / 16 Slack チャンネル U

    @Bot プロジェクト X の進捗状況を教えて B プロジェクト X の進捗について回答します ... ... リアルタイムストリーミング中 version: main-abc1234 | log: abc12345 | model: ... | Good / Bad ボタン ユーザーから見た挙動 @Bot でメンション → リアルタイムで回答が表示 → フッターに追跡情報 + FB ボタン
  5. Step 2: トレーサビリティの確保 6 / 16 Bot 回答のフッター ( 実装

    : trace.py → footer_blocks()) version: main-abc1234 | log: abc12345 | model: gpt-5-mini | token: 1,234 in / 567 out Version どのバージョンで回答したか GitHub の commit/PR リンク付き main-{sha} / pr-{number} Trace Log Cloud Logging へのリンク W3C traceparent から抽出 Cloud Logging 直リンク Model / Token 使用モデルとトークン消費量 コスト・品質の追跡に活用 TokenUsageCallbackHandler
  6. Step 2: フィードバックボタン 7 / 16 Bot 回答メッセージのフッター Bad Response

    を押すと ... フィードバックモーダルが表示される カテゴリ選択 + 自由記述で詳細を収集し、 GitHub Issue を自動生成 → 次のスライドへ
  7. Step 3-4: フィードバック収集 8 / 16 なぜ構造化フィードバック ? 傾向分析 カテゴリ別の集計で

    改善すべき領域を特定 優先度判断 hallucination vs retrieval_failure で対応方針が変わる 自動 Triage カテゴリ情報を Claude Code Actions に渡して分析精度 UP 開発者への文脈共有 自由記述で再現手順や 期待する回答を伝達
  8. 実装 : Slack Block Kit 9 / 16 Feedback Buttons

    (context_actions) { "type": "context_actions", "elements": [{ "type": "feedback_buttons", "action_id": "feedback", "positive_button": { "text": "Good Response" }, "negative_button": { "text": "Bad Response" } }] } Feedback Modal (views.open) { "type": "modal", "title": " フィードバック ", "blocks": [ { "type": "input", "element": { "type": "checkboxes" }, "label": " カテゴリ(複数選択可) " }, { "type": "input", "element": { "type": "plain_text_input", "multiline": true } } ] } Reference Block Kit Builder: https://app.slack.com/block-kit-builder Block Kit Reference: https://api.slack.com/reference/block-kit
  9. Step 5: GitHub Issue 自動生成 10 / 16 自動アクション 1

    Slack thread に Issue 作成を通知 2 専用チャンネル に共有 3 Claude Code Actions トリガー
  10. Step 6: Claude Code Actions で Triage 11 / 16

    Issue 作成 トリガー Claude Code GitHub Actions /analyze-bad-answer Issue 更新 分析結果を追記 Slack 通知 結果を返信 → → → /analyze-bad-answer Skill が収集する 3 つの情報源 S Slack のやり取り ユーザーの質問と Bot の回答を スレッドから取得 C コードベース 関連ファイル・関数を特定し 改善すべき箇所を分析 L GCP Log (trace ID) Slack 返信に埋め込んだ trace ID か ら Cloud Logging の処理ログを取得 ↓ これらを統合して分析結果・改善提案を Issue に書き込み
  11. 実装 : Claude Code GitHub Actions 12 / 16 .github/workflows/analyze-bad-answer.yml

    ( 抜粋 ) on: issues: types: [labeled] issue_comment: types: [created] steps: - uses: actions/checkout@v6 - name: Fetch Slack thread + trace logs run: uv run python tools/fetch_bad_answer_context.py - name: Analyze with Claude uses: anthropics/ claude-code-action@v1 with: trigger_phrase: "/analyze-bad-answer" label_trigger: "bad-answer" prompt: | Read .claude/skills/ analyze-bad-answer/SKILL.md ポイント bad-answer ラベル付与 or コメントで自動トリガー Slack thread + trace log を 事前取得して Claude に渡す Skill (SKILL.md) に沿って コードベースを分析 Reference Claude Code GitHub Actions: https://docs.anthropic.com/ en/docs/claude-code/ github-actions
  12. Step 7: 開発・改善 13 / 16 現状 1 Claude Code

    の調査結果を確認 2 改善提案をベースにコード修正 3 テスト・レビュー 4 PR 作成・マージ・デプロイ 今後やりたいこと 1 Issue → PR 自動生成 Claude Code Actions で PR 作成まで 2 自動テスト実行 PR に対して自動でテストを実行 3 人間は最終レビューのみ Approve → Auto-merge
  13. おまけ : エラーの自動 Issue 化 14 / 16 GitHubIssueTriager (gh_issue_triager.py)

    Graph 実行 エラー発生 → LLM でエラー identifier 生成 → 既存 Issue と マッチング → マッチあり : コメント追加 マッチなし : 新規 Issue 作成 or ポイント LLM ベース重複判定 エラーメッセージから簡潔な identifier を生成 し、既存 Issue と照合。同じエラーはコメント を追加するだけ。 自動リオープン Close された issue と同じエラーが再発した場 合、自動で reopen してコメントを追加。 Slack リンク付き エラーが発生した Slack スレッドのリンクを含 め、文脈を保持。
  14. このサイクルで得られたもの 15 / 16 フィードバックの構造化 カテゴリ分類で傾向分析が可能に。 どこに問題があるか定量的に把握。 再現性の確保 trace log

    + version で問題を正確に特定。 「あの時のあの回答」を再現できる。 改善速度の向上 Issue 生成 → Triage → 提案が自動。 開発者は実装判断と /resolve-issue Claude Code skill を使うだけ (TODO: 自動化 ) 開発者体験の向上 Issue を開けば必要な情報が揃っている。 調査の手間がゼロに近い。
  15. まとめ Chat Bot 改善は「仕組み化」がカギ Slack → GitHub Issues → Claude

    Code Actions → Improvement 今後の展望 Issue → PR 自動生成の完全自動化 フィードバック傾向のダッシュボード化 アーキテクチャ全体を定期チェック・マクロ視点で改善 16 / 16