YW

yanchun2530/was-webagentswarm

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

22 stars 2 forks Качество 69 Тренд 18MIT

Local-first Web Agent Swarm для координации нескольких веб-агентов ChatGPT через расширение браузера, MCP, совместное состояние и организацию событий.

Обзор

Инструментарий для оркестровки с несколькими агентами для ChatGPT Web. Он обеспечивает небольшое расширение браузера, мост локального хоста, прочный общий магазин задач / статусов, дополнительный сервер MCP и наблюдатель, который может разбудить основного веб-агента, когда состояние рабочего меняется. WAS рассматривает вкладки браузера как эластичную производительность, а не долговечное состояние задачи. Таким образом, каждый наблюдатель выполняет оба масштабирования: Работник остается открытым только в то время, когда у него есть заявляемая / арендуемая длительная работа. - Заблокированные, проверки-ожидание, человек-ожидание или другие задачи только прерывания обрабатываются главным оркестратором и . Когда рабочий имеет нулевое длительное давление исполнения, нет активной аренды / супершага, и его страница ChatGPT не генерирует, WAS вызывает приостановку (..., close tab = True) и фактически закрывает эту вкладку Edge. Привязка основного / рабочего к новому разговору надежно записывает старый разговор на пенсию. Неактивная, праздная, не генерирующая отставная вкладка автоматически собирается мусором.

Обзор (машинный перевод)

Инструментарий для оркестровки с несколькими агентами для ChatGPT Web.

Он обеспечивает небольшое расширение браузера, мост локального хоста, прочную общую задачу / статус. магазин, дополнительный сервер MCP и наблюдатель, который может разбудить основного веб-агента Когда меняется рабочее государство.

Жизненный цикл браузера / Закладка Edge GC

WAS рассматривает вкладки браузера как эластичную производительность, а не долговечное состояние задачи. Поэтому каждый наблюдатель выполняет как масштабирование **, так и масштабирование **:

Работник остается открытым только в то время, когда у него есть заявляемая / арендуемая длительная работа. Заблокированные, проверочные, человеко-ожидание или другие задачи только для прерывания выполняются главным оркестратором и ** не открывают вкладку рабочего Edge **. Когда рабочий имеет нулевое долговечное давление исполнения, нет активной аренды / супершага, и его страница ChatGPT не генерирует, WAS вызывает suspend(..., close_tab=True) и фактически закрывает эту вкладку Edge. Привязка основного / рабочего к новому разговору надежно записывает старый разговор на пенсию. Неактивная, праздная, не генерирующая отставная вкладка автоматически собирается мусором. Активные вкладки, генерирующие вкладки, текущие привязки и вкладки с живым долговечным владением защищены.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

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.
Открыть полный README на GitHub

Установка

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

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →