Agent-net, команда, строящая маркетплейс для взаимодействия ИИ-агентов, открыла исходный код Webagent — фреймворка на Go для развёртывания публичных бизнес-агентов. Идея простая: бизнес даёт сайт, получает агента, и этот агент общается с другими агентами. Вместо написания кода оркестрации достаточно заполнить декларативный JSON-файл, выбрать по одному провайдеру на каждый из девяти слотов и запустить webagent serve.
Проект распространяется под лицензией Apache 2.0, собирается без ошибок и уже сейчас запускает живых агентов в Slack, WhatsApp и HTTP, работающих на инструментах MCP. Правда, версия помечена как v0: браузерные действия, MCP с OAuth, экспорт в OTel, а также слой идентификации и биллинга AgentNet в список реализованного не входят.
Девять слотов и провайдеры по умолчанию
Агент в Webagent — это один «мозг» (модель плюс инструкция) поверх набора слотов, определённых в каталоге core/. Каждый слот — это Service Provider Interface с реестром провайдеров в spi/ и назначенным по умолчанию вариантом:
| Слот | Встроенные провайдеры | По умолчанию |
|---|---|---|
| Retrieval | live, keyword, hybrid | live |
| Memory | session | session |
| Guardrail | basic, off | basic |
| Channel | a2a, web, slack, whatsapp (заглушка telegram) | a2a |
| Secrets | env, file, static | env |
| Presenter | text, terminal (QR), web | text |
| Model | echo, openrouter, gateway | echo |
| Action | none, demo, mcp | none |
| Observability | none, log, memory | none |
Конструкция рассчитана на три аудитории с одним контрактом: компании, которые настраивают агента выбором из меню; компании, которые расширяют систему, регистрируя собственного провайдера; и партнёры, поставляющие адаптеры. Ядро при этом никто не форкает. Каждый провайдер обязан пройти conformance-набор своего слота, чтобы считаться сертифицированным.
Безопасность обеспечивается кодом, а не промптом
Ключевое архитектурное решение — action.Guard. Каждый инструмент, доступный агенту, будь то из action-провайдера или внедрённый хостом, оборачивается так, что выбранный guardrail срабатывает до выполнения действия. Модель не может это обойти. В DESIGN.md проект опирается на исследовательский вывод: успех агента определяет архитектура, а не возможности модели. Там же приводится ссылка на arXiv 2511.19477 и разрыв в успешности выполнения задач — 85% против 50% на одних и тех же моделях.
Что уже работает
Мозг echo по умолчанию не требует учётных данных, поэтому webagent validate и webagent serve запускаются «из коробки» на двух примерах спецификаций: zomato.json и bakery.json. Чтобы подключить реальную модель, команда webagent keys set openrouter сохраняет ключ в системном каталоге конфигурации с правами 0600. Ключи никогда не записываются в спецификацию, а переменная окружения всегда имеет приоритет. И openrouter, и gateway — OpenAI-совместимые клиенты с циклом вызова инструментов.
Бизнес с уже работающим MCP-сервером становится действующим агентом через один блок в спецификации. Action-провайдер mcp подключается по Streamable HTTP (JSON и SSE) с аутентификацией по bearer-токену или API-ключу, выполняет рукопожатие на этапе сборки и передаёт каждый инструмент агенту за guardrail, поэтому validate показывает реальное число инструментов.
Адаптеры каналов Slack и WhatsApp проверяют подпись каждого входящего вебхука, сразу подтверждают получение, отвечают через API платформы, игнорируют собственные сообщения и отсеивают повторные доставки. Slack указывает на /slack/events, а колбэк Meta — на /whatsapp/webhook.
Секреты подчиняются правилу именования: любой ключ конфигурации, оканчивающийся на Secret, — это ссылка, разрешаемая через выбранное хранилище на этапе сборки, поэтому спецификации безопасно коммитить. Неразрешённая ссылка приводит к ошибке сборки, а не к запуску канала без учётных данных. Наблюдаемость выдаёт TurnTrace на каждый ход, выровненный по конвенциям OpenTelemetry GenAI, а набор eval/ прогоняет сценарии с проверками.
Что это значит для российского бизнеса
Webagent — открытый проект на Go, и его можно развернуть на собственном сервере, не отдавая данные внешним SaaS. Для компаний, которые обязаны учитывать требования 152-ФЗ при обработке персональных данных, это важный момент: спецификация и секреты остаются внутри контура, а ключи хранятся в системном каталоге с правами 0600. Впрочем, для работы реальной модели всё равно нужен внешний провайдер вроде OpenRouter или собственный OpenAI-совместимый шлюз, так что вопрос размещения модели придётся решать отдельно. Если вы уже экспериментировали с другими открытыми агентными инструментами, например с набором навыков Mantis от Google для поиска и правки уязвимостей или с рантаймом Shepherd для форка и отката агентных запусков, Webagent занимает свою нишу: он не про отладку агентов, а про быстрый вывод публичного агента наружу.
Частые вопросы
Кому подходит Webagent?
Компаниям, которым нужен публичный агент для общения с клиентами или другими агентами, но не хочется писать код оркестрации. Достаточно JSON-спецификации и выбора провайдеров. Также подойдёт партнёрам, которые хотят поставлять собственные адаптеры.
Какие каналы уже поддерживаются?
Slack, WhatsApp, HTTP и a2a. Telegram пока представлен заглушкой. Каналы Slack и WhatsApp проверяют подписи вебхуков и защищены от повторных доставок.
Нужны ли учётные данные для запуска?
Нет. Мозг echo работает без ключей, поэтому webagent validate и webagent serve запускаются на примерах zomato.json и bakery.json сразу после установки. Для реальной модели потребуется ключ OpenRouter или собственный шлюз.
Как хранятся секреты?
Ключ, сохранённый командой webagent keys set openrouter, лежит в системном каталоге конфигурации с правами 0600. В спецификации секреты не пишутся: любой ключ, оканчивающийся на Secret, — это ссылка на хранилище. Неразрешённая ссылка останавливает сборку.
Можно ли подключить существующий MCP-сервер?
Да, для этого достаточно одного блока в спецификации. Провайдер mcp подключается по Streamable HTTP с bearer- или API-ключом, выполняет рукопожатие на сборке и передаёт инструменты агенту под guardrail.
Что ещё не реализовано?
Браузерные действия, MCP с OAuth, экспорт в OTel, а также слой идентификации и биллинга AgentNet. Версия помечена как v0, поэтому перед продакшеном стоит изучить список отложенных доработок.
Как гарантируется безопасность действий?
Каждый инструмент оборачивается в action.Guard, и выбранный guardrail срабатывает до выполнения действия. Модель не может обойти эту проверку — ограничение заложено в архитектуру, а не в промпт.
Под какой лицензией проект?
Apache 2.0, написан на Go. Исходный код и пост о запуске доступны в репозитории проекта.
Есть ли примеры для быстрого старта?
Да, в комплекте две спецификации: zomato.json и bakery.json. Они работают с мозгом echo без каких-либо учётных данных.
Как посмотреть, сколько инструментов видит агент?
Команда webagent validate показывает реальное число инструментов, полученных от MCP-сервера после рукопожатия на этапе сборки. Тот же принцип прозрачности применяется и в других открытых проектах для агентов, например в бенчмарке поиска NEEDLE, где результаты проверяются на живых запросах.
Источник: marktechpost.com