L-MEMORY — SETUP
buggy事務所 L-memory LINE bot セットアップ手順
稼働状況(2026-06-16時点): LINE Webhook → 200 OK で安定受信、グループ初回検出で同意文の自動投稿を確認、メッセージの記録も動作中。管理画面(ダッシュボード)も公開済み(→ §6)。
前提: L-memory と castboard は別サービスです。本 bot は castboard には書き込みません(
supabase_enabled: false)。会話の記録は L-memory 側(SQLite + 管理ダッシュボード)で運用します。運営(受託)は noisiii / aifarm、LINE OA 名義は buggy事務所(管理者)=委託運用です。■ buggy事務所にご記入・ご用意いただくもの
bot のセットアップにあたり、buggy事務所(クライアント)側で以下を決めて/用意していただきます。難しいものはありません。
| 区分 | 項目 | 備考 |
|---|---|---|
| A. bot の見た目・名義 | アカウント表示名 | 例「buggy サポート」(20文字以内) |
| アイコン画像 | 正方形 640×640(jpg/png) | |
| あいさつ文/プロフィール | 友だち追加時の文言 | |
| 運用主体の正式社名・所在地・連絡先 | 認証済アカウント申請に使用 | |
| B. 取り込む対象 | bot を入れる社外グループの一覧 | 事務所/クライアント/外注(想定10–20グループ/人)。社内はSlack維持 |
| 各グループの種別 | クライアント/代理店/外注(制作・カメラ)等 | |
| C. 通知先・運用 | Slack 通知先(2系統) | 運営早見用/事務所向け の incoming webhook |
| 社内メンバー(8–9名)と権限 | 誰が承認・閲覧するか | |
| 課題別の出力先の希望 | ①動画制作スケジュール=台帳/スプシ ②SNS運用=過去会話の引当 | |
| D. 法務・同意 | 同意文の事務所名・担当窓口 | 下記§5の {{事務所名}}/{{担当窓口}} に差し込む実名 |
| プライバシーポリシーの有無・掲載先 | URL があれば | |
| 会話記録への社内周知方法 | メンバーへの説明・同意の取り方 | |
| 保存期間・削除ポリシーの希望 | なければ標準でOK | |
| E. キーワード(任意) | 追加で拾いたい語/除外したい語 | 既定の事務所向けセット+3課題語は設定済 |
0. 全体像
記録・ルーティング・同意文の自動投稿のコアは実装済み。残るのは ① LINE OA 作成 → ② secret 投入 → ③ LaunchAgent 配置の3手順(手動)。社内案件は Slack 維持のため、LINE bot は社外グループ(事務所/クライアント/外注)中心に入れます。
| 項目 | 値 / 状態 |
|---|---|
| client_name / port | buggy / 8011 |
| config | clients/buggy/config.yaml 作成済 |
| 同意文 consent_message | 設定済(グループ初回検出時に1回投稿) |
| LaunchAgent テンプレ | launchd/com.line-memory.buggy.plist 用意済 |
| castboard 連携 | 無効(別サービス) |
1. LINE 公式アカウント作成(buggy事務所名義・手動)
- buggy事務所名義で LINE OA を作成(LINE Developers Console)→ channel secret / channel access token / Channel ID を取得
- Webhook URL:
https://line-buggy.itochaso.biz/webhookを設定 → 「Webhookの利用」ON、「検証」で 200 を確認 - LINE Official Account Manager 側で 応答モード = Bot(チャット OFF)、Webhook ON。あいさつメッセージ/応答メッセージは任意
- bot を対象の社外グループ(想定 10–20 グループ/人)に追加。DM(1:1)も受信・記録対象
公開経路: Mac mini の
localhost:8011 を Cloudflare Tunnel(cloudflared)で line-buggy.itochaso.biz として公開。LINE が名前解決できる独自ドメイン経由のため *.ts.net 直当てのような「名前解決ができないドメイン」エラーは起きません。2. secret を env(LaunchAgent の EnvironmentVariables)に設定
環境変数名に注意:
config.py は <CLIENT>_LINE_SECRET / <CLIENT>_LINE_TOKEN 形式で読み込みます(client_name=buggy なので下記)。LINE_BUGGY_* ではありません。# LaunchAgent plist の EnvironmentVariables に設定(chmod 600・repo にコミットしない) BUGGY_LINE_SECRET = <channel secret> BUGGY_LINE_TOKEN = <channel access token> # 共通(既存と同じものを利用): CLAUDE_BRIDGE_URL / CLAUDE_BRIDGE_TOKEN # ※ claude -p subscription 経路。ANTHROPIC_API_KEY は使わない # ※ supabase_enabled:false のため SUPABASE_* は不要 # Slack 通知を使う場合のみ: BUGGY_SLACK_WEBHOOK = <incoming webhook>
3. LaunchAgent 配置・起動
既存 misao / hjax / sonoro / noisiii は停止しない。buggy インスタンスのみ追加 load。
cp ~/Projects/LINE-MEMORY/launchd/com.line-memory.buggy.plist ~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/com.line-memory.buggy.plist
4. 動作確認
tail -f /tmp/line-memory-buggy.log # 起動・グループ検出・同意文投稿ログ
- bot を新グループに追加 → ログに「新グループ検出」「同意文を投稿」
- グループに同意文が1回投稿される(オプトアウト=同意できない参加者は退出)。1グループ1回のみ
- 記録されたメッセージは管理ダッシュボード(§6)でグループ別/DM別に確認できる
- (Slack 連携を設定した場合)キーワード該当メッセージが Slack に届く
5. 同意フロー(実装済み仕様)
オプトアウト方式: bot がグループ参加(初回検出)時に同意文を1回投稿。同意できない参加者は退出してもらう運用。push 失敗は致命にせずログ警告(記録は継続)。
【ご連絡】このグループのやり取りは、buggy(タレント事務所)の業務管理 (案件・スケジュール・引き継ぎの記録)のため、記録・整理させていただきます。 記録にご同意いただけない場合は、お手数ですがこのグループからご退出ください。 ご不明点は担当までご連絡ください。
6. 管理画面(ダッシュボード)
公開済み: 記録されたメッセージ・メモをグループ別/DM別に閲覧できる読み取り専用ダッシュボードです。Basic 認証付き。
| 項目 | 値 |
|---|---|
| URL | https://buggy-dash.itochaso.biz |
| 認証 | Basic 認証(ID: buggy / パスワードは別途お渡し) |
| 公開経路 | Mac mini localhost:8021 → Cloudflare Tunnel |
| 権限 | 読み取り専用(閲覧のみ。bot への送信や設定変更は不可) |
できること
- グループ別の会話一覧: bot を入れた各グループの記録メッセージを時系列で確認
- DM(1:1)別の一覧: ユーザーごとの DM 記録を確認
- メモ/機能要望(
機能要望・/req等の接頭辞)の抽出表示
運用メモ: ダッシュボードは社内・運営向けです。会話記録という機微情報を扱うため、Basic 認証のパスワードは関係者のみに共有してください。閲覧 URL を第三者に転送しないでください。
7. Slack ルーティング(LINEグループ → Slack)
ルーティングは2層で設定します。重要メッセージ(重要度スコア ≥ 閾値)のみが Slack に送られます。
| 層 | 設定箇所 | 用途 |
|---|---|---|
| ① 既定(全グループ共通) | clients/buggy/config.yaml の slack_destinations(webhook は env SLACK_BUGGY_WEBHOOK) | すべてのグループの重要メッセージを1つの Slack チャンネルへ。閾値 min_score(既定 0.7) |
| ② グループ別ルーティング | 管理画面 https://line-buggy.itochaso.biz/admin(Basic 認証 ID: ax)の各グループ「設定」ボタン | グループごとに Slack webhook / チャンネル / 閾値 / 追加キーワード を個別指定。保存即反映(再起動不要) |
設定手順(グループ別)
/adminを開く(または §6 ダッシュボードで対象グループのgroup_idを確認)- 対象グループの行の「設定」→ Slack Webhook URL・チャンネル名・最低スコア閾値・追加キーワードを入力して保存
- 以降、そのグループの該当メッセージは指定 Slack チャンネルへ届く
有効化に必要: Slack 連携をオンにするには Slack Incoming Webhook URL(Slack ワークスペース側で発行)が必要です。
・全グループ共通で良い → その URL を
・グループ別に分けたい →
※ キーワード事前フィルタ(
・全グループ共通で良い → その URL を
SLACK_BUGGY_WEBHOOK に設定・グループ別に分けたい →
/admin で各グループに URL を設定※ キーワード事前フィルタ(
config.yaml の keywords)に一致 → AI で重要度判定 → 閾値超のみ通知、の順で送信されます。8. 画像・ファイルの取り込み(メディア)
稼働中(2026-06-16〜): グループ/DM に送られた 画像・動画・音声・ファイルを自動で取り込み、保存します。
| 項目 | 内容 |
|---|---|
| 対象 | 画像 / 動画 / 音声 / ファイル添付(テキストと同じく時系列で記録) |
| 保存先 | ① Mac mini ローカル(表示用キャッシュ)② Cloudflare R2 lmemory-buggy-media(クライアント単位バケット・耐久保存) |
| 閲覧 | §6 ダッシュボードの会話一覧にサムネイル/再生プレーヤー/ダウンロードリンクで表示(Basic 認証ゲート) |
| 設定 | config.yaml の media_capture: true(buggy は有効化済み) |
9. ワンクリック接続(Slack / Google Drive)準備中(運営の初期設定待ち)
buggy 担当者向け接続ページ:
ボタンを押すだけで、自分の Slack のチャンネル/Google Drive を接続できます(Slack bot 発行などの作業は不要)。
https://connect-buggy.itochaso.bizボタンを押すだけで、自分の Slack のチャンネル/Google Drive を接続できます(Slack bot 発行などの作業は不要)。
buggy 側の手順(クリックのみ):
① 上記ページを開く → ②「Slackを接続」を押す → 自分のワークスペースで通知先チャンネルを選んで許可
③「Google Driveを接続」を押す → 自分の Google を許可(フォルダ「buggy LINEメディア」が自動作成され、以降の画像・ファイルがそこに保存)
① 上記ページを開く → ②「Slackを接続」を押す → 自分のワークスペースで通知先チャンネルを選んで許可
③「Google Driveを接続」を押す → 自分の Google を許可(フォルダ「buggy LINEメディア」が自動作成され、以降の画像・ファイルがそこに保存)
9-1. 運営側の一度きりの初期設定(伊藤さん)
OAuth の「アプリ登録」だけは運営側で一度行います。完了後 buggy はクリックのみで接続できます。
① Slack アプリ(incoming-webhook)
- api.slack.com/apps → Create New App → From scratch(任意の自分のワークスペースで作成)
- OAuth & Permissions → Redirect URLs に
https://connect-buggy.itochaso.biz/slack/callbackを追加 - 同画面 Scopes に
incoming-webhookを追加 - Manage Distribution → Activate Public Distribution(外部ワークスペース=buggy にインストール可能にする)
- Basic Information → Client ID / Client Secret をコピーして運営(伊藤)へ → 設定すると buggy のボタンが有効化
② Google ウェブ OAuth クライアント(Drive)
- Google Cloud Console → プロジェクト選択/作成 → Google Drive API を有効化
- OAuth 同意画面: External、アプリ名・サポートメール入力、スコープに
.../auth/drive.fileを追加、テストユーザーに buggy の Google アカウントを追加(未審査警告の回避) - 認証情報 → OAuth クライアント ID → 種類「ウェブアプリケーション」
- 承認済みのリダイレクト URI:
https://connect-buggy.itochaso.biz/google/callback - Client ID / Client Secret をコピーして運営(伊藤)へ
受け取り後(運営): connect サービス(と bot)の env に
SLACK_CLIENT_ID/SECRET・GOOGLE_CLIENT_ID/SECRET を設定して再起動 → 接続ページのボタンが「準備中」から有効に変わります。