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

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

Тестирование δ-Mem на Apple Silicon: реализация MLX и бенчмарки
Инструменты

Тестирование δ-Mem на Apple Silicon: реализация MLX и бенчмарки

Статья о реализации δ-mem на MacMini 64GB через mlx показывает смешанные, но многообещающие локальные бенчмарки с улучшениями в реалистичных сценариях воспроизведения.

OpenClawRadar
Результаты тестирования: 331 модель GGUF протестирована на Mac Mini M4 16 ГБ
Инструменты

Результаты тестирования: 331 модель GGUF протестирована на Mac Mini M4 16 ГБ

Тестирование 331 модели GGUF на Mac Mini M4 с 16 ГБ оперативной памяти выявило только 11 Парето-оптимальных моделей, и все они имеют архитектуру Mixture-of-Experts. Модели Mixture-of-Experts доминируют по производительности со средней скоростью 20,0 токенов/сек против 4,4 у плотных моделей.

OpenClawRadar
Каскадный граф: Интерактивная карта энергетических ограничений ИИ и узких мест в цепочке поставок
Инструменты

Каскадный граф: Интерактивная карта энергетических ограничений ИИ и узких мест в цепочке поставок

Каскадный граф — это направленный граф знаний физической экономики, отображающий 405 узлов (драйверы, узкие места, географии, тикеры), соединённых 597 обоснованными рёбрами, чтобы проследить, как структурное давление каскадно распространяется от ограничений энергии и физики до инвестируемых активов.

OpenClawRadar
VT Code: Агент программирования с TUI на Rust с открытым исходным кодом, поддержкой нескольких провайдеров и навыками агента
Инструменты

VT Code: Агент программирования с TUI на Rust с открытым исходным кодом, поддержкой нескольких провайдеров и навыками агента

VT Code — это терминальный ИИ-агент (TUI) на Rust, поддерживающий Anthropic, OpenAI, Gemini и Codex, с локальным выводом через LM Studio и Ollama. Включает навыки агента, протокол контекста модели и клиентский протокол агента.

OpenClawRadar