YW

yanchun2530/was-webagentswarm

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

22 stars 2 forks 品質 69 トレンド 18MIT

ローカルファーストWebエージェントは、ブラウザ拡張、MCP、共有状態、イベントアウェアのオーケストレーションを通じて複数のChatGPT Webエージェントをコーディネートします.

概要

ChatGPT Web 用のローカルファースト、ブラウザホスト型マルチエージェントオーケストレーションツールキット。 小さなブラウザの拡張機能、ローカルホストブリッジ、耐久性のある共有タスク/ステータスストア、オプションのMCPサーバー、およびワーカーの状態が変更されたときにメインWebエージェントを目覚めるイベント・アウェア・ウォッチャーを提供します。 WASは、ブラウザタブを弾性実行容量として扱い、耐久性のあるタスク状態ではありません。 すべての時計師は、したがって、スケールアウトを実行します。 - 労働者は主張可能/leased耐久の仕事がある間だけ開きますとどまります。 - ブロック、検証待ち、ヒューマンウェイト、またはその他の割込みのみのタスクは、メインのオーケストレータおよび。 - ワーカーがゼロで耐久性のある実行圧力、アクティブなリース/スーパーステップ、およびChatGPTページが生成されていない場合、WASはサスペンション(..., close tab=True)を呼び出し、実際にEdgeタブを閉じます。 - メイン/ワーカーを新しい会話にリバインドして、古い会話を元通りに記録します。 不活性、アイドル、未生成の退役タブは自動的に廃棄回収されます.

概要(AI 翻訳)

ChatGPT Web 用のローカルファースト、ブラウザホスト型マルチエージェントオーケストレーションツールキット。

それは小さいブラウザの延長、localhost橋、耐久の分けられた仕事/statusを提供します ストア、オプションの MCP サーバー、メイン Web エージェントを目覚めるイベント ウェア ウォッチャー ワーカーの状態が変更されるとき。

##ブラウザのライフサイクル/エッジタブGC

WASは、ブラウザタブを弾性実行容量として扱い、耐久性のあるタスク状態ではありません。 すべての時計師は、したがって、スケールアウトとスケールインの両方を実行します:

  • 労働者は主張可能/leased耐久の仕事がある間だけ開きますとどまります。
  • ブロック、検証待ち、ヒューマンウェイト、またはその他の割込みのみのタスクは、メインのオーケストレーターによって処理され、ワーダーエッジタブが開かないようにします。
  • ワーカーがゼロで耐久性のある実行圧力、アクティブなリース/スーパーステップ、およびChatGPTページが生成されていない場合、WASはsuspend(..., close_tab=True)を呼び出し、実際にそのEdgeタブを閉じます。
  • メイン/ワーカーを新しい会話にリバインドして、古い会話を元通りに記録します。 不活性、アイドル、未生成の退役タブは自動的に廃棄回収されます。
  • アクティブなタブ、タブを生成する、現在のバインディング、およびライブ耐久性のある所有権を持つタブが保護されます.

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

Web Agent Swarm

A local-first, browser-hosted multi-agent orchestration toolkit for ChatGPT Web.

It provides a small browser extension, a localhost bridge, a durable shared task/status store, an optional MCP server, and an event-aware watcher that can wake a main Web Agent when worker state changes.

Browser lifecycle / Edge tab GC

WAS treats browser tabs as elastic execution capacity, not durable task state. Every watcher tick therefore performs both scale-out and scale-in:

  • A worker stays open only while it has claimable/leased durable work.
  • Blocked, verification-wait, human-wait, or other interrupt-only tasks are handled by the main orchestrator and do not keep a worker Edge tab open.
  • When a worker has zero durable execution pressure, no active lease/superstep, and its ChatGPT page is not generating, WAS calls suspend(..., close_tab=True) and actually closes that Edge tab.
  • Rebinding main/worker to a new conversation durably records the old conversation as retired. An inactive, idle, non-generating retired tab is garbage-collected automatically.
  • Active tabs, generating tabs, current bindings, and tabs with live durable ownership are protected. Ordinary user chats are never classified as stale by title/text heuristics.
  • An unresponsive bound page is recovered first by refreshing/recreating the same conversation renderer; rollover is only the fallback.

This prevents long-running swarms from accumulating completed/replaced ChatGPT pages while preserving Task/Run/Checkpoint/Handoff ownership independently of browser lifecycle.

What this project does

  • Open or reuse multiple ChatGPT Web conversations.
  • Start a main orchestrator alone by default, then elastically create/reuse capability-compatible worker slots from durable parallel pressure; explicit worker sets are still supported.
  • Treat task owner / preferred_role as a scheduling preference, not exclusive ownership; required_capabilities plus dependency/resource constraints determine the runnable worker set.
  • Reserve declared task / before dispatch so obvious write collisions park as ; MVCC remains the final publication boundary.
  • Inspect bounded visible UI state: idle/generating, recent visible messages, and browser lifecycle state.
  • Protect managed ChatGPT Agent tabs with autoDiscardable=false; detect discarded/frozen/unresponsive tabs and treat them as transport faults rather than completion.
  • Detect main-conversation length exhaustion, stop ordinary ticks to that tab, open a fresh main conversation in the same connected browser context, rebind main, and resume from durable WAS state before closing the exhausted tab.
  • Send an exact message to an exact ChatGPT tab or stable conversation binding.
  • Keep a small durable task board and shared status store outside chat history.
  • Recommend a worker count/role subset before opening browser tabs.
GitHub で README 全文を見る

インストール

This server does not publish a one-line install command.

Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →