Markdown как протокол для агентного пользовательского интерфейса с потоковым выполнением

✍️ OpenClawRadar📅 Опубликовано: 22 марта 2026 г.🔗 Source
Markdown как протокол для агентного пользовательского интерфейса с потоковым выполнением
Ad

Разработчик создал прототип, исследующий, как объединить генеративный UI с выполнением кода для AI-агентов, используя Markdown в качестве унифицированного протокола. Система потоково передаёт текст, исполняемый код и данные в одном ответе, причём код выполняется инкрементально по мере поступления.

Протокол: Markdown с тремя типами блоков

Подход использует стандартный синтаксис Markdown, который LLM уже понимают, избегая необходимости обучать новым форматам. Он определяет три типа блоков:

  • Текстовые блоки: Простое форматирование Markdown, которое потоково передаётся пользователю
  • Блоки кода: ```tsx agent.run выполняет TypeScript/JSX код на сервере в постоянном контексте
  • Блоки данных: ```json agent.data => "id" потоково передаёт JSON данные в UI-компоненты

Эти блоки могут чередоваться в любом порядке в рамках одного ответа. Парсер обрабатывает их инкрементально по мере поступления токенов от LLM.

Потоковое выполнение

Код выполняется построчно по мере генерации LLM, не дожидаясь закрытия всего блока кода. Это позволяет начинать API-вызовы, рендерить UI и выявлять ошибки, пока LLM ещё отправляет токены. Разработчик создал bun-streaming-exec для обработки этого, используя vm.Script с кастомной обёрткой, поскольку потоковое выполнение не является стандартным примитивом среды выполнения.

Ad

Агентный UI с примитивом mount()

Система использует React для генерации UI, поскольку LLM имеют обширный опыт работы с React-компонентами и JSX. Основной примитив — mount():

mount({
  ui: () => <Card>Привет от агента!</Card>
});

Когда LLM генерирует этот код и сервер выполняет его, mount() сериализует React-компонент и отправляет его клиенту для рендеринга в интерфейсе чата.

Паттерны потока данных

Прототип реализует четыре различных паттерна для перемещения данных:

  1. Клиент → Сервер (формы): Агент может ожидать ввода пользователя через формы
  2. Сервер → Клиент (потоковые данные): Блоки данных потоково передают JSON напрямую в смонтированные UI
  3. Сервер → LLM (console.log): Вывод console.log и исключения возвращаются в LLM как новый ход
  4. LLM → Сервер → Клиент (полный цикл): Полные циклы, где LLM генерирует код, который получает данные и рендерит UI с этими данными

Обратная связь

Система использует console.log как механизм для общения агента с самим собой. Когда LLM генерирует Markdown с блоками кода, текст потоково передаётся пользователю, а код выполняется инкрементально. Любой вывод console.* или исключения возвращаются в LLM как новый ход. Если вывода или исключений нет, система ждёт нового запроса пользователя.

Это позволяет агенту реагировать на собственное выполнение, например, проверять количество сообщений или приостанавливаться для ожидания ввода пользователя перед продолжением.

📖 Read the full source: HN AI Agents

Ad

👀 Смотрите также

Blip MCP Server: Отображать изменения пользовательского интерфейса для кода Claude вместо их описания
Инструменты

Blip MCP Server: Отображать изменения пользовательского интерфейса для кода Claude вместо их описания

Blip — это MCP-сервер для Claude Code, который заменяет словесные описания изменений интерфейса визуальными аннотациями. Вы рисуете прямо на работающем приложении, а Claude пишет соответствующий код на основе аннотированного скриншота.

OpenClawRadar
Аудит SecureCode: аудитор безопасности сервера Linux, созданный с помощью Claude Code
Инструменты

Аудит SecureCode: аудитор безопасности сервера Linux, созданный с помощью Claude Code

Независимый разработчик создал SecureCode Audit с помощью Claude Code — выполните одну SSH-команду, получите отчет по безопасности из 22 проверок с приоритетными исправлениями. Первые 30 зарегистрировавшихся получат полный аудит бесплатно.

OpenClawRadar
Architor: Инструмент с открытым исходным кодом для фазово-управляемых архитектурных рабочих процессов с использованием Claude Code
Инструменты

Architor: Инструмент с открытым исходным кодом для фазово-управляемых архитектурных рабочих процессов с использованием Claude Code

Architor — это инструмент с открытым исходным кодом, который структурирует Claude Code в поэтапного архитектурного ассистента с постоянной памятью о проекте. Он организует проектирование системы на этапы оценки требований, принятия архитектурных решений, проектирования компонентов и валидации, отслеживая решения в рабочей области .arch.

OpenClawRadar
移动端浏览器工具:为Claude智能体带来移动应用的浏览器使用技能
Инструменты

移动端浏览器工具:为Claude智能体带来移动应用的浏览器使用技能

Mobile Harness предоставляет Claude/агентам переиспользуемые навыки для мобильных приложений (Reddit, Instagram, TikTok), используя MobAI в качестве исполнительного уровня. Работает с реальными устройствами, эмуляторами, симуляторами, бесплатная ежедневная квота.

OpenClawRadar