SavvyBot
会話を邪魔しない、グループチャット専属AIアシスタント
LINE Messaging APIとOpenAI APIを連携させた対話型チャットボット。GAS MVP実装から始まり、Supabase Edge Functionsへの移行を完了。個人向けから「グループチャット特化型AIアシスタント」への戦略的ピボットを経て、管理ダッシュボード実装完了。Phase 6でUX改善とインタラクティブTODO管理を実装し、Phase 7でStripe統合・収益化へ。
Technologies Used
SavvyBot - 会話を邪魔しない、グループチャット専属AIアシスタント
プロジェクト概要
SavvyBotは、LINE Messaging APIとOpenAI APIを連携させた対話型チャットボットです。Google Apps Script (GAS) でのMVP実装から開始し、Supabase Edge Functionsへの移行を完了(Phase 2)。現在はグループチャット特化型AIアシスタントへの戦略的ピボットを経て、SaaS化に向けた開発フェーズ(Phase 7)に移行しています。
コアコンセプト: 「会話を邪魔しない、グループチャット専属AIアシスタント」
- 人の会話の邪魔をしない(基本は沈黙、裏で記録・分析)
- 裏方に徹する(コマンドで呼ばれた時だけ発言)
- まとめる、追跡する、リマインドする(議事録、決定事項、TODO管理)
ビジネス目標: 年内に収益化の可能性を探る(副業ベース、リーンスタートアップアプローチ)
技術スタック
バックエンド
- TypeScript / Deno
- Supabase Edge Functions
- PostgreSQL
- GitHub Actions (CI/CD)
フロントエンド
- Next.js 15 / React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Recharts(データ可視化)
外部サービス連携
- LINE Messaging API
- OpenAI API (GPT-4 / Function Calling)
- Tavily API (Web検索)
- Supabase (Database, Storage, Auth)
プロジェクトの進化
開発フェーズの全体像
Phase 1-2: 基盤構築(2023年3月〜2025年10月)
- GASでのMVP実装
- Supabase Edge Functionsへの移行
- セキュリティ強化(HMAC-SHA256署名検証)
- CI/CDパイプライン構築
Phase 3-4: グループチャット特化(2025年10月)
- 戦略的ピボット(個人向け → グループチャット特化)
- OpenAI Function Calling + Web検索統合
- デュアルモード設計(Personal/Group)
- API使用量トラッキングシステム構築
Phase 5: 管理ダッシュボード(2025年10月24-25日)
- 公式Webサイト・ランディングページ実装
- Supabase Auth統合(email/password認証)
- 管理ダッシュボード実装(使用量、グループ管理、設定)
- データ可視化(Recharts)
Phase 6: UX改善・インタラクティブ機能(2025年10月〜11月2日)
- ユーザー名表示と暗黙的自己割り当て
- 期限表示改善とキーワード検出
- LINE Quick Reply Buttons統合
- インタラクティブTODO管理(完了/未完了/削除/編集)
- メニューシステム + 日本語エイリアス
Phase 7: 収益化・リリース(2025年11月〜12月予定)
- Stripeサブスクリプション統合
- 請求管理システム
- クローズドベータテスト(5-10チーム)
- フィードバック収集と改善
- 正式リリース(年内目標)
主要機能(Phase 6完了時点)
LINEボット機能
デュアルモード設計
- 個人モード(1対1チャット): 積極的に会話、会話履歴保持、ChatGPT的な対話体験、Web検索統合
- グループモード(複数人チャット): 基本は沈黙、裏で記録・分析、コマンド/メンションで呼ばれた時のみ発言
会話管理機能
- 議事録自動生成(構造化フォーマット)
- キーワード検索(期間フィルタ対応)
- 決定事項・TODO・質問の自動抽出
- Web検索統合(Tavily API、最新情報取得)
インタラクティブTODO管理
/sv:done,/sv:undone,/sv:delete,/sv:editコマンド- 3ステップ対話型UI(一覧 → 選択 → 実行)
- LINE Quick Reply Buttons(タップ操作)
- 複数フィールド編集(task/deadline/assignee)
- 期限表示改善(期日未定表示、緊急度キーワード検出)
- 暗黙的自己割り当て(「私がやる」→発言者に自動割り当て)
UX機能
- ユーザー名表示(LINEプロフィール統合、24時間キャッシュ)
- メニューシステム(/sv:menu、番号ショートカット 1-9)
- 日本語エイリアス対応(/sv:議事録、/sv:完了など)
- メンション機能(@bot で会話可能)
管理ダッシュボード
認証・権限管理
- Supabase Auth(email/password認証)
- ロールベース権限制御(owner/admin/member)
- Row Level Security(RLS)によるマルチテナント実装
データ可視化
- 使用量ダッシュボード(トークン・コスト・グラフ表示)
- グループ管理(一覧・詳細・設定)
- 期間フィルター(7/30/90日)
- Recharts統合(バーチャート、ラインチャート)
設定管理
- プロフィール設定
- LINE連携状態表示
- 通知設定
- アカウント管理(パスワード変更、アカウント削除)
技術的ハイライト
セキュリティ
- HMAC-SHA256署名検証(タイミング攻撃対策)
- Row Level Security(RLS)によるデータ分離
- セキュアな認証フロー(cookie-based sessions)
アーキテクチャ
- Result型による型安全なエラーハンドリング
- アダプターパターンによるテスタビリティ向上
- OpenAI Function Callingによる自動ツール選択
- PostgreSQLビューとTTLによる効率的なデータ管理
パフォーマンス
- プロダクションビルド: 1.5秒
- TypeScript型エラー: 0件
- Next.js Server Componentsによる効率的なデータフェッチ
- バンドルサイズ最適化
差別化戦略
競合(ChatGPT公式、他社Bot):
❌ 個人利用がメイン
❌ グループでは会話に割り込んでうるさい
❌ 議事録機能が弱い
❌ 最新情報の取得が不十分
SavvyBot:
✅ グループチャット特化
✅ 沈黙がデフォルト(会話を邪魔しない)
✅ 構造化された議事録
✅ 決定事項の自動追跡
✅ 豊富なコマンド体系(/sv:* プレフィックス)
✅ Web検索統合で最新情報に対応
✅ インタラクティブTODO管理
収益モデル(Phase 7計画)
- Freeプラン: 個人利用(Personal modeのみ)、基本機能
- Teamプラン(¥2,980/月): 3-10人チーム、全機能、グループ対応
- Businessプラン(¥9,800/月): 11-50人、API連携、優先サポート
目標: 年内に5-30チームの有料ユーザー獲得、MRR ¥15,000-¥90,000
長期展望(2026年以降)
- ナレッジベース機能(過去の決定事項・議事録の検索)
- 多言語対応
- エンタープライズ向け機能(SSO、監査ログ)
- 音声会議の自動文字起こし&議事録生成
- Slack/Teams連携
プロジェクトステータス
- ✅ Phase 1-2 完了(基本インフラ構築、セキュリティ強化)
- ✅ Phase 3-4 完了(グループチャット特化、API使用量トラッキング)
- ✅ Phase 5 完了(公式Webサイト、認証システム、管理ダッシュボード)
- ✅ Phase 6 完了(UX改善、インタラクティブTODO管理)
- 📅 Phase 7 準備中(Stripe統合、収益化、ベータテスト、年内リリース目標)
開発期間: 2023年3月 〜 継続中 現在フェーズ: Phase 6 完了、Phase 7準備中 最終更新: 2025年11月7日 役割: フルスタック開発 / プロダクトオーナー / アーキテクト
Outcomes & Results
- ✓グループチャット特化型AIアシスタントへの戦略的ピボット
- ✓セキュリティ強化(HMAC-SHA256署名検証、タイミング攻撃対策)
- ✓Web検索統合(OpenAI Function Calling + Tavily API)
- ✓CI/CDパイプライン構築(GitHub Actions自動デプロイ)
- ✓グループチャット機能完全実装(議事録、決定事項、TODO、質問管理)
- ✓API使用量トラッキングシステム構築(コスト管理の自動化)
- ✓管理ダッシュボード実装(Next.js 15、認証、データ可視化)
- ✓UX改善完了(ユーザー名表示、期限表示、暗黙的自己割り当て)
- ✓インタラクティブTODO管理実装(Quick Reply Buttons、3ステップUI、複数フィールド編集)
Challenges Overcome
- 個人向けChatGPTとの差別化(戦略的ピボット)
- 署名検証エラー(403 Forbidden)の解決
- 時間表現の誤認識(「去年」が2022年と解釈される問題)
- グループチャット特化機能の設計と実装
- Personal Mode自動検出バグの解決
- LINE Quick Reply API制約(最大13個)への対応
- 対話型UI設計(3ステップフロー、状態管理)
Key Learnings
- Result型による型安全なエラーハンドリング
- アダプターパターンによるテスタビリティ向上
- OpenAI Function Callingによる自動ツール選択
- Temporal Context Patternによる時間認識精度の改善
- ニッチ市場への特化によるプロダクト差別化
- PostgreSQLビューとTTLによる効率的なデータ管理
- Next.js App Routerとサーバーコンポーネントの活用
- Row Level Security(RLS)によるマルチテナント実装
- LINE Quick Reply Buttonsによる操作性向上
- 3ステップ対話型UIパターンの有効性