← chatweb.ai に戻る

chatweb.ai システムワークフロー

ユーザーのメッセージが39エージェント × 6モデルで処理されるまでの全フロー

1. メッセージ処理フロー

ユーザーが「競合分析してレポートをメールで送って」と入力した場合の処理フロー:

💬
1. メッセージ受信
Web / LINE / Telegram からメッセージを受信。セッション認証・クレジット残高チェック。
POST /chat/stream/{session_id} → 認証 → クレジット確認 → プリセットフィルタ適用
🧠
2. 長期記憶の参照
ユーザーの過去の記憶(好み・職種・過去の依頼)をキーワード検索して取得。
search_memories(query, user_id) → importance順 + キーワードマッチ → 最大6件取得
🔀
3. セマンティックルーティング
Claude Haiku がメッセージを分析し、39エージェントから最適な1つを選択。複雑なタスクはTree-of-Thoughtで3候補比較。
単純(100文字以下): route_message() → 1候補
複雑(100文字超): route_message_tot() → 3候補比較 → 最高スコア選択
プリセット有効時: ルーティング結果がプリセット外なら、プリセット内の最適エージェントにリダイレクト
📋
4. マルチエージェント判定
タスクが複数エージェントを必要とするか判定。必要なら実行プランを生成。
単一エージェント: そのまま実行(ステップ5へ)
マルチエージェント: プランナーが3-5ステップの実行計画を生成 → 順次実行
例: research(調査) → analyst(分析) → notify(メール送信)
5. エージェント実行
選択されたエージェントがLLMとツールを使ってタスクを実行。SSEでリアルタイムストリーミング。
システムプロンプト構成:
エージェント固有プロンプト + プリセット指示 + 日時 + AI名前 + 言語指定

ツール実行: Web検索 / ブラウザ操作 / コード実行 / メール送信 / ファイル操作 etc.
🛡️
6. HITL(Human-in-the-Loop)
メール送信・Slack通知など重要アクションは、実行前にユーザーの承認を取得。
承認が必要なエージェント: notify gmail
Web: モーダルで承認/却下 / LINE: インラインボタン / Telegram: コールバックボタン
📊
7. 結果配信 + コスト表示
回答をSSEストリーミングで配信。完了後にコスト・トークン数・CO2排出量を表示。記憶を自動保存。
⏱️ 3.2s · 💰 $0.0023 · 📊 1,847 tokens · 🌱 CO₂ 0.37g · 💧 1.7ml

2. LLMプロバイダーフォールバック

リクエストは複数のAIプロバイダーを順に試行。障害時は自動フォールバック。

1
Qwen3-32B(Groq)
デフォルト。超高速・低コスト。一般的なタスクに最適。
2
Claude Haiku 4.5(フォールバック)
Groq障害時に自動切替。コード系エージェントのデフォルト。
Pro
Claude Sonnet 4.6(Proモード / 常時Pro)
最高品質。Proモード選択時 or 金融・法務エージェントは常にSonnet使用。

プロバイダー健全性キャッシュ

APIキー無効(401)・残高不足(402/429)のプロバイダーは5分間スキップ。無駄なリトライを防止。

3. エージェント × LLMマッピング

エージェントデフォルトLLM理由
💹 金融AI / ⚖️ 法務AIClaude Sonnet 4.6高精度な推論が必要
⚙️ コードAI / 🚀 デプロイAI / 🛠️ DevOpsClaude Haiku 4.5コード品質を担保
🎯 クリティックAIGPT-4o異なるモデルで品質チェック
その他全エージェントQwen3-32B → Haikuコスパ最適 + フォールバック

Proモード選択時

ユーザーがProモードを選択すると、全エージェントが Claude Sonnet 4.6 を使用。最高品質だがコスト増。

4. プリセットシステム

プリセットはエージェントのフィルタリング + 固有のシステムプロンプト注入を行います。

◈ 自動選択
全39エージェントからAIが最適なものを選択。デフォルト。
🔍 リサーチ
出典必須・データ重視・推測と事実を分離して回答。
💻 開発
コード中心・説明最小限・動くコードを最優先。
💼 ビジネス
敬語・構造化・エグゼクティブサマリー + アクションアイテム。
🎨 クリエイティブ
ビジュアル重視・即生成・確認より実行を優先。
🔵 Google連携
Gmail/Calendar/Drive/Sheets操作に集中。
📡 運用・通知
cron設定・通知配信・自動化の設定完了を報告。
✍️ ライティング
文章品質最優先・語彙と文体を用途に合わせて調整。
☕ カジュアル
フランク・短く・テンポよく。敬語不要・絵文字OK。

5. マルチチャネルアーキテクチャ

Web
chatweb.ai
LINE
Messaging API
Telegram
Bot API
chatweb.ai
FastAPI + SQLite
LLM Providers
Groq / Anthropic / OpenAI / Google

アカウント連携

Web・LINE・Telegram間でアカウントを統合。6文字のリンクコードで紐付け。記憶・履歴・クレジットが全チャネルで共有されます。コードはDB永続化(デプロイ後も有効)。

6. インフラストラクチャ

コンポーネント技術用途
アプリケーションPython / FastAPI / Uvicorn全APIエンドポイント
ホスティングFly.io (nrt / Tokyo)min_machines_running=1
データベースSQLite (WAL mode) + aiosqliteユーザー・セッション・記憶・エージェント
永続ストレージFly Volumes (synapse_data)/data にマウント
ブラウザPlaywright (Chromium)Web操作・スクリーンショット
コード実行E2B Sandbox安全なPython実行環境
サイト公開Cloudflare Workers + D1xxx.chatweb.ai ドメイン
決済Stripeサブスクリプション・クレジット
メールResend / SMTPMagic Link認証・Gmail送信
暗号化Fernet (AES)ユーザーシークレット保存

7. エージェントループ(Agentic Loop)

コードエージェントなどの複雑なタスクでは、Claude Codeのようなループ実行を行います。

1
execute_agent() — 初回実行
エージェントがLLMにリクエスト。コードを生成した場合はE2Bサンドボックスで即実行。
2
[[CONTINUE]] マーカー検出
LLMの出力に [[CONTINUE]] が含まれていたら「まだ途中」と判断。出力をコンテキストに追加して再度LLMを呼び出す。
3
ループ継続 / 停止判定
以下のいずれかで停止:
[[DONE]] マーカーを検出
[[CONTINUE]] がない(自然完了)
⏹ 最大イテレーション到達(コード: 3回、その他: 10回)
⏹ 2回連続でマーカーなし
4
結果統合
全イテレーションの出力を結合して最終レスポンスとして返却。ユーザーにはリアルタイムで各ステップが表示される。

8. 自己改善フィードバックループ

6時間ごとに自動で実行される品質改善サイクル。人間の介入なしにシステムが進化します。

📊
1. データ収集(過去24時間)
直近100件の実行ログ + 未解決フィードバックを取得。
🔍
2. パターン分析
低評価(👎)の回答、ルーティング確信度70%未満、エージェント別の成績を集計。
🛠️
3. 改善提案生成
LLMがデータを分析し、プロンプト修正・ルーティング改善・新ツール追加などの提案を生成。
📋
4. レポート保存
改善レポートをDBに保存。管理者がダッシュボードで確認して適用判断。

ユーザーフィードバックリワード

ユーザーが回答に👍/👎を付けると、AIが品質をスコアリングし、$0〜$1/回のクレジットリワードを付与(月$10上限)。これがフィードバックループの入力データになります。

9. セキュリティ

🔐 認証
Google OAuth / Magic Link。セッションCookieはhttpOnly+secure+sameSite。
🛡️ HITL
メール送信等の重要操作は実行前にユーザー承認。LINE/Telegramはインラインボタン。
🔒 暗号化
ユーザーのAPIキーはFernet(AES)で暗号化してDB保存。平文は保持しない。
⚡ レート制限
/chat, /api, /a2a — 30リクエスト/60秒。429 Too Many Requests。
🏖️ サンドボックス
コード実行はE2Bの隔離環境。ファイルシステム・ネットワークが分離。
📋 セキュリティヘッダー
HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, CORS制限。