Перейти к содержимому

Выбор поверхности

Поверхность — это конкретное место, где плагин появляется или работает: страница в боковой панели, кнопка рядом с полем ввода, инструмент в сессии агента. bb определяет 46 поверхностей в семи группах. Чтобы выбрать подходящую, отталкивайтесь от того, что должен увидеть человек или агент. Откройте плагин из поставки bb, который уже это делает, и прочитайте страницу справочника по этой поверхности, чтобы узнать точный API. Таблицы ниже охватывают частые задачи; все 46 поверхностей собраны в разделе Поверхности, а макет зон показывает поверхности окна на своих местах.

Плагин может ответить «да» на несколько вопросов сразу; шаблон плагина из раздела Ваш первый плагин отвечает на первые два.

  1. Человек видит этот элемент или кликает по нему в окне bb? Тогда вам нужна клиентская точка входа. Поверхности находятся в первых шести группах: окно приложения, палитра команд, композер, домашняя страница, страница настроек плагина и страница плагина.
  2. Агент использует это в работе? Тогда серверная точка входа даёт агенту команду CLI и скилл, который ей обучает, нативный инструмент или инструкции.
  3. Это работает без участия человека? Тогда серверная точка входа запускает фоновые сервисы и расписания, реагирует на события треда и обслуживает HTTP-маршруты для внешних сервисов.
  4. Это меняет то, какой агент работает или где он запускается? Провайдеры агента, окружения и машины — это точки расширения; провайдеры агента, а также провайдеры окружения из поставки bb включают хостовую точку входа.
Чтобы добавить…ПоверхностьКакой плагин читать
свою страницу, которая открывается из боковой панелиПанели на всю страницуtasks, github; самый маленький — plugin-api-tester
вкладку в панели рядом с тредомВкладки правой панели тредаside-chat, github
компонент внутри ответа агентаВстраиваемые компоненты в сообщенияхinline-vis, самый маленький
форму, которая ставит агента на паузу, чтобы задать вопрос человекуФормы в тредеask-user-question, secrets
действие для конкретного сообщенияДействия с сообщениемside-chat
просмотрщик или редактор для определённого типа файловПросмотрщики и редакторы файловpdf-preview, самый маленький; monaco-editor
элемент внизу боковой панелиЭлементы подвала боковой панелиconnect
строки в меню + рядом с полем вводаМеню +drafts, scheduled-send
баннер над полем вводаБаннерыprovider-retry, workflows
результаты в меню упоминанийУпоминанияgithub, tasks
команду в палитру командДействия палитры командmonaco-editor
секцию на домашнем экранеСекции главного экранаплагины из поставки bb это не используют
замену списку тредовСписок тредовreplacement-lab-alpha вместе с replacement-lab-beta; установите оба
настройки, которые заполняет человекПоля настроекcustom-instructions, github
свой компонент на странице настроекСобственная секция настроекkeep-awake, memory
уведомление, что плагин нужно настроить перед запускомСтатус конфигурацииgithub, workflows

Ваш UI делит окно с интерфейсом bb одним из четырёх способов. На аддитивной поверхности ваш компонент располагается рядом с компонентами bb и других плагинов. Замещающая поверхность подменяет компонент bb и откатывается к нему, если ваш компонент падает. Список тредов эксклюзивен: один плагин заменяет весь список. А для хостового хрома, например элементов внизу боковой панели, bb рисует контрол на основе данных, которые передаёт плагин. Эти четыре вида описаны в разделе Слоты фронтенда.

Чтобы дать агенту…ПоверхностьКакой плагин читать
команду для выполнения и скилл, который ей обучаетКоманды CLI bbшаблон плагина; memory, tasks
нативный инструмент в его сессииИнструменты и скиллы агентаask-user-question, memory
только инструкции, без UIИнструменты и скиллы агентаcustom-instructions, bb-guide
шлюз, который решает, можно ли отправить сообщениеХук диспетчеризацииconcurrency-limit
данные, которые передаются вместе с тредомМетаданные плагина в тредеworkflows
Чтобы запустить…ПоверхностьКакой плагин читать
долгоживущий сервис или расписание cronФоновая работаautomations, keep-awake
код при старте, завершении или падении тредаСобытия жизненного цикла тредаpush-notifications, provider-retry
эндпоинт вебхука с проверкой подписиHTTP, WebSocket, RPC и realtimeslack-bot, пример без зависимостей
свою базу SQLite с миграциямиХранилищеmemory, github, tasks
код, который создаёт треды и проектыSDK bbautomations, tasks
Чтобы предоставить…ПоверхностьКакой плагин читать
нового агента в селекторе моделейПровайдеры агентаprovider-acp, provider-pi; самый маленький — пример echo-provider
место, где находится рабочий каталог тредаПровайдеры окруженияenvironment-git-worktree, environment-project-checkout
машину для выполнения тредовПровайдеры машинenvironment-modal-sandbox
свой код на машине агентаХост-воркерыkeep-awake, environment-personal-workspace

Самый полный пример из поставки bb — tasks. В каталоге перечислены все плагины из поставки bb, их точки входа и размер.