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
👀 Смотрите также

ClawHost Open-Source OpenClaw с развертыванием в один клик набирает более 200 звёзд на GitHub
ClawHost, инструмент с открытым исходным кодом для установки OpenClaw в один клик с полным доступом к серверу и контролем, достиг отметки в 200+ звёзд на GitHub. Проект решает проблемы с нестабильными коммерческими обёртками, предоставляя бесплатное, самостоятельно размещаемое решение.

Самодельный слой памяти для Claude бесплатно работает на Cloudflare
MCP-сервер Cloudflare Worker позволяет Клоду запоминать и извлекать заметки с помощью семантического поиска, используя Workers AI и Vectorize — все на бесплатном тарифе.
Hugging Face Physics-Intern: Мультиагентная структура удваивает Gemini в бенчмарке CritPt
Hugging Face выпустила physics-intern — мультиагентный фреймворк для теоретической физики, который удваивает производительность моделей Gemini на бенчмарке CritPt и устанавливает новый SOTA, превосходя GPT-5.5 Pro при более низкой стоимости.

Открытый ассистент JARVIS для рабочего стола, созданный с помощью Claude Code за 2 дня
Разработчик создал настольный ИИ-ассистент для macOS под названием JARVIS за 1-2 дня, используя Claude Code в качестве основного инструмента разработки. Приложение имеет голографический интерфейс, 18 встроенных инструментов для управления системой, голосовое управление и интеграции с Gmail, Google Calendar, Notion, GitHub и Obsidian.