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

Разработчик создал прототип, исследующий, как объединить генеративный 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 с кастомной обёрткой, поскольку потоковое выполнение не является стандартным примитивом среды выполнения.
Агентный UI с примитивом mount()
Система использует React для генерации UI, поскольку LLM имеют обширный опыт работы с React-компонентами и JSX. Основной примитив — mount():
mount({
ui: () => <Card>Привет от агента!</Card>
});Когда LLM генерирует этот код и сервер выполняет его, mount() сериализует React-компонент и отправляет его клиенту для рендеринга в интерфейсе чата.
Паттерны потока данных
Прототип реализует четыре различных паттерна для перемещения данных:
- Клиент → Сервер (формы): Агент может ожидать ввода пользователя через формы
- Сервер → Клиент (потоковые данные): Блоки данных потоково передают JSON напрямую в смонтированные UI
- Сервер → LLM (console.log): Вывод
console.logи исключения возвращаются в LLM как новый ход - LLM → Сервер → Клиент (полный цикл): Полные циклы, где LLM генерирует код, который получает данные и рендерит UI с этими данными
Обратная связь
Система использует console.log как механизм для общения агента с самим собой. Когда LLM генерирует Markdown с блоками кода, текст потоково передаётся пользователю, а код выполняется инкрементально. Любой вывод console.* или исключения возвращаются в LLM как новый ход. Если вывода или исключений нет, система ждёт нового запроса пользователя.
Это позволяет агенту реагировать на собственное выполнение, например, проверять количество сообщений или приостанавливаться для ожидания ввода пользователя перед продолжением.
📖 Read the full source: HN AI Agents
👀 Смотрите также

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

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

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

移动端浏览器工具:为Claude智能体带来移动应用的浏览器使用技能
Mobile Harness предоставляет Claude/агентам переиспользуемые навыки для мобильных приложений (Reddit, Instagram, TikTok), используя MobAI в качестве исполнительного уровня. Работает с реальными устройствами, эмуляторами, симуляторами, бесплатная ежедневная квота.