ブラウザ拡張機能
エージェントは知っていることしか手伝えません。会話やメモリで多くをカバーできますが、大きな死角が一つあります:あなたが今まさに読んでいるものです。
Context Bro は、このギャップを埋めるスタンドアロンの Chrome 拡張機能です。Web ページからコンテンツを抽出し、webhook endpoint を通じてエージェントのイベントストリームに送信します。
Context Bro でできること
Section titled “Context Bro でできること”| 機能 | 仕組み |
|---|---|
| 手動クリップ | 拡張機能アイコンをクリックまたは Ctrl+Shift+K で現在のページを共有 |
| 選択テキスト共有 | テキストを選択 → フローティングボタンまたは右クリック → 選択部分のみ共有 |
| 定期共有 | ドメイン許可リスト + 間隔を設定 → 閲覧中のページを自動共有 |
| ライブストリームアダプター | Twitch・YouTube アダプターがチャット、投げ銭、配信情報をリアルタイムでキャプチャ |
| テンプレートエンジン | 抽出するデータと JSON ペイロードの形状を精密に制御 |
Context Bro は AnySoul ブラウザ拡張機能とは別物です。ユーザーが明示的に許可したページのみ読み取る、低権限の独立した拡張機能です:
| AnySoul 拡張機能 | Context Bro | |
|---|---|---|
| コア動作 | エージェントがブラウザを操作(タブを開く、検索を実行) | ユーザーが読んでいるものを共有 |
| 権限 | 広範(<all_urls>) | 保守的(許可リストのみ) |
| 信頼レベル | 高 — エージェントが任意のページを閲覧可能 | 低 — ユーザーが共有対象を制御 |
| 導入ハードル | エージェント自動化への信頼が必要 | Web クリッパーのメンタルモデル |
セットアップ
Section titled “セットアップ”1. Webhook Endpoint の作成
Section titled “1. Webhook Endpoint の作成”Context Bro は標準的な webhook を通じてエージェントにデータを送信します。まず AnySoul で作成してください:
- エージェント設定 → Webhooks を開く
- Create webhook をクリックし、
context-broのような名前を入力 api_key認証モードを選択- endpoint URL と API key をコピー
2. Context Bro のインストール
Section titled “2. Context Bro のインストール”Chrome ウェブストアから Context Bro をインストールし、オプションページを開きます。
3. Endpoint の追加
Section titled “3. Endpoint の追加”Context Bro の オプション → Endpoints で:
- Add Endpoint をクリック
- 名前を入力(例:
My Soul) - webhook URL を貼り付け:
https://api.anysoul.ai/api/ingest/webhook/<webhookId>
- カスタムヘッダーを追加:
X-API-Key→ API key - Save をクリック
4. ページを共有
Section titled “4. ページを共有”任意の Web ページを開き、Context Bro アイコンをクリックして Share を押します。ページコンテンツが抽出され、アクティブなテンプレートでコンパイルされ、webhook endpoint に POST されます。エージェントに新しいイベントが表示されます:
- [02-22 14:30] [evt_cb001] context-bro/stackoverflow.com (page_context): How to fix lifetime errors in RustAnySoul との接続方法
Section titled “AnySoul との接続方法”Context Bro は他の統合と同じ webhook ingest endpoint を使用します。特別な API は不要です:
Context Bro 拡張機能 │ │ ページ抽出 → テンプレートコンパイル → JSON ペイロード │ ▼POST /api/ingest/webhook/<webhookId> │ │ Webhook マッピングエンジン → 標準イベント │ ▼エージェントイベントストリームwebhook マッピングエディター が受信 JSON をイベントフィールドに変換します。Context Bro のデフォルトテンプレートは、デフォルトの webhook マッピングとそのまま連携するペイロードを生成します。
ベストユースケース
Section titled “ベストユースケース”ナレッジワーカーのための Web クリッパー
Section titled “ナレッジワーカーのための Web クリッパー”最も一般的なセットアップ:一日を通じて読んでいる記事、ドキュメント、コードを共有します。
シナリオ例 — Rust 学習中:
- Rust Book、Stack Overflow、GitHub Issues を閲覧
- Context Bro が 15 分ごとにページを自動共有(許可リスト:
doc.rust-lang.org、stackoverflow.com、github.com) - 混乱するコードスニペットを選択 →
Ctrl+Shift+K→ 即座に共有 - エージェントが 1 時間 lifetime について読んでいることに気づく → あなたのコンテキストで elision ルールを説明するメッセージを送信
- エージェントが「Rust 学習進捗」メモリノードを保存し、今日のトピックをリンク
これが機能する理由: エージェントは(会話から)あなたが Rust を学びたいことを既に知っています。Context Bro は 今何を読んでいるか を伝え、意図と行動のギャップを埋めます。
Social Stream Ninja でのライブストリーミング
Section titled “Social Stream Ninja でのライブストリーミング”Social Stream Ninja(SSN)は Steve Seguin によるブラウザ拡張機能で、120 以上のプラットフォーム(YouTube、Twitch、TikTok、Facebook、Discord など)のライブチャットを集約します。クロスプラットフォームチャット統合を必要とする配信者のための定番ツールです。
SSN は Context Bro なしで直接 AnySoul webhook にチャットイベントを転送できます:
SSN が提供するもの:
| 機能 | 説明 |
|---|---|
| 120+ プラットフォーム対応 | YouTube、Twitch、TikTok、Facebook、Kick、Discord など |
| メッセージ正規化 | 異なるプラットフォームを標準 JSON 形式に統一 |
| カスタムトリガー | コンテンツ、ユーザーロール、投げ銭額、正規表現でメッセージをマッチ |
| カスタムアクション | HTTP POST、WebSocket プッシュ、OBS オーバーレイ、TTS、MIDI シグナル |
| リアルタイム処理 | MutationObserver ベースのキャプチャ + 重複排除・バッチ処理 |
トリガー → アクション例:
| トリガー | アクション | エージェントのユースケース |
|---|---|---|
| 任意のチャットメッセージ | AnySoul webhook に POST | エージェントがライブチャットをフォロー |
| Super Chat ≥ $5 | webhook に POST | エージェントがコミュニティエンゲージメントを追跡 |
メッセージが !question * にマッチ | webhook に POST | エージェントが視聴者の質問に回答 |
| 新規サブスクライバー | webhook に POST | エージェントがコミュニティの成長を記録 |
| Raid イベント | webhook に POST | エージェントがチャンネル間の交流を記録 |
AnySoul とのセットアップ:
- エージェント設定 → Webhooks で
api_key認証の webhook endpoint を作成 - Social Stream Ninja で webhook URL を設定し、JSON ボディに key を含める(SSN はカスタムヘッダーをサポートしない場合があります — Webhook: Social Stream Ninja の連携 を参照)
- マッピングで
platform、username、message、event_typeを抽出するよう設定
エージェントにはライブフィードが表示されます:
- [20:00] [evt_ssn01] youtube/alice (message): That explanation was so clear!- [20:01] [evt_ssn02] twitch/bob (donation): $10 — "Love the content, keep it up!"- [20:02] [evt_ssn03] youtube/carol (membership): New member joinedContext Bro vs. Social Stream Ninja:
| Context Bro | Social Stream Ninja | |
|---|---|---|
| フォーカス | 静的 Web ページ + Twitch/YouTube | 120+ のライブ/ソーシャルプラットフォーム |
| 強み | ページコンテンツ抽出(Defuddle + テンプレートエンジン) | クロスプラットフォームチャット集約 + トリガー |
| 定期共有 | あり(Chrome Alarm + 許可リスト) | なし |
| テンプレートエンジン | あり(50+ フィルター、CSS セレクター、Schema.org) | なし |
| カスタムトリガー/アクション | なし(エージェントが応答方法を判断) | あり(正規表現、投げ銭閾値、ロールベース) |
| 最適な用途 | ナレッジワーク、リサーチ、学習 | ライブ配信、コミュニティ管理 |
両ツールは同じ洞察を共有しています:ブラウザはデジタルライフの中心であり、そのコンテンツは AI エージェントにとって最も価値あるコンテキストソースです。 SSN はそのコンテキストを配信者の自動化に変え、Context Bro はエージェントの認知に変えます。
両方を同時に使用できます — SSN で全プラットフォームのライブチャット集約、Context Bro でそれ以外(記事、ドキュメント、コード、選択テキスト)。
テンプレート
Section titled “テンプレート”Context Bro には Obsidian Web Clipper(MIT)から抽出されたテンプレートエンジンが含まれています。テンプレートは endpoint に送信される JSON ペイロードの形状を制御します。
デフォルトテンプレート:
{ "title": "{{title}}", "url": "{{url}}", "content": "{{content}}", "author": "{{author}}", "published": "{{published}}", "domain": "{{domain}}", "description": "{{description}}", "wordCount": "{{wordCount}}", "clippedAt": "{{date}} {{time}}"}トリガーパターン(例: github.com/*/pull/* で PR 用)を使ってサイト固有のテンプレートを作成し、CSS セレクター変数({{selector:.classname}})や Schema.org 変数({{schema:@Article:author}})を使用できます。
完全なテンプレートリファレンスは Context Bro ドキュメント を参照してください。
よく訪問するドメインの自動共有を設定:
- Context Bro の オプション → 許可リスト を開く
- ドメインを追加(例:
github.com、*.reddit.com、docs.python.org) - オプション → スケジュール を開く
- 間隔(5 分 〜 2 時間)とモードを設定:
- フォーカスタブ — アクティブに表示しているタブのみ共有
- 許可リスト全体 — 許可リストに一致するすべての開いているタブを共有
ページはコンテンツハッシュで重複排除されます — 前回の共有からページが変更されていない場合、スキップされます。
- Webhook — webhook endpoint の仕組み
- API ポーリング — ブラウザベースの pull インジェスト
- イベントストリームの概念
- Context Bro ドキュメント — 拡張機能の完全なドキュメント