Команда Astro выпустила фреймворк для автономных AI-агентов

Flue — это open-source TypeScript-фреймворк для создания AI-агентов, разработанный командой Astro. Flue 1.0 Beta уже доступен: открытый фреймворк для сборки агентов без привязки к конкретной лаборатории — пишите один раз, деплойте куда угодно, используйте любую LLM. Проект распространяется под лицензией Apache-2.0 и набрал около 3,8 тысячи звёзд на GitHub к середине 2026 года.


Что такое harness и зачем он нужен

Flue — это TypeScript agent harness framework для создания автономных AI-агентов, полностью headless и программируемых. Его ключевое уравнение — Agent = Model + Harness — ставит слой harness в центр архитектурного замысла.

По определению документации Flue, AI-агент — это LLM, работающая внутри harness. LLM обеспечивает способность рассуждать; harness предоставляет инструменты, контекст, память и среду, необходимые LLM для взаимодействия с внешними системами и выполнения задач. Без harness LLM отвечает на отдельные API-вызовы без постоянного состояния и без доступа к инструментам.

ℹ Ключевая идея
Flue не очередной AI SDK. Это полноценный runtime-agnostic фреймворк — думайте о нём как об Astro или Next.js, только для агентов.

Изначально Flue был создан для автоматизации AI-воркфлоу внутри собственных GitHub-репозиториев Astro. Со временем он вырос в универсальный инструмент для всей отрасли.


Архитектура: как это работает


graph TD
    A[Задача / Триггер] --> B[Agent Harness]
    B --> C[LLM Model]
    B --> D[Tools / Skills]
    B --> E[Sandbox]
    E --> F{Тип sandbox}
    F --> G[virtual just-bash]
    F --> H[local filesystem]
    F --> I[Daytona / Cloudflare container]
    C --> J[Результат / Действие]
    D --> J

Встроенный TypeScript harness даёт любой модели контекст и среду для по-настоящему автономной работы: сессии, инструменты, навыки, инструкции, доступ к файловой системе и безопасный sandbox для выполнения.

Два режима работы

Agents — агенты, которые удерживают контекст между разговорами и событиями, автономно двигаясь к цели.

Workflows — структурированные автоматизации, в которых ваш код направляет рассуждение агента от чёткого ввода к готовому результату.


Sandbox: безопасность без overhead

Sandbox по умолчанию — just-bash: in-memory переосмысление Bash-оболочки на TypeScript. Он не требует Docker-контейнера или виртуальной машины, что делает его быстрым и дешёвым для агентов, которым не нужен доступ к файловой системе.

Для воркфлоу, которым нужно читать локальные файлы или запускать внешние скрипты, sandbox local() предоставляет прямой доступ к файловой системе.

💡 Совет по экономии
По умолчанию используйте виртуальный sandbox just-bash — большинство агентов не тратит ни цента на инфраструктуру сверх самого API-вызова.

Пример базового агента:

// agents/triage.ts
import { createAgent, type AgentRouteHandler } from '@flue/runtime';
import { local } from '@flue/runtime/node';
import triage from '../skills/triage/SKILL.md' with { type: 'skill' };
import * as githubTools from '../tools/github.ts';

const instructions = `
  Triage a bug report end-to-end: reproduce the bug,
  diagnose the root cause, verify whether the behavior is
  intentional, and attempt a fix.`;

export const route: AgentRouteHandler = async (_c, next) => next();

export default createAgent(() => ({
  model: 'anthropic/claude-sonnet-4-6',
  tools: [...githubTools],
  skills: [triage],
  sandbox: local(),
  instructions,
}));

Ключевые возможности

ВозможностьОписание
SessionsКонтекст сохраняется между разговорами и событиями
SkillsПереиспользуемые Markdown-файлы с экспертизой агента
SubagentsДелегирование задач специализированным агентам
MCP ServersИнтеграция с экосистемой Model Context Protocol
Durable ExecutionАгент переживает сбои сервера и возобновляет работу
ObservabilityПоддержка OpenTelemetry, Braintrust, Sentry
ChannelsSlack, Teams, Discord, GitHub и другие платформы

Агенты не умирают при падении сервера: Flue записывает каждую сессию в durable stream, а затем безопасно возобновляет прерванную работу при восстановлении runtime.


Пакеты и деплой

Flue — это полноценный runtime-agnostic фреймворк: напишите один раз и деплойте агентов куда угодно — Node.js, Cloudflare, GitHub Actions, GitLab CI/CD и другие платформы.

Фреймворк состоит из нескольких npm-пакетов:

ПакетНазначение
@flue/runtimeЯдро: harness, сессии, инструменты, sandbox
@flue/cliCLI и инструменты сборки (бинарник flue)
@flue/sdkClient SDK для потребления задеплоенных агентов
@flue/opentelemetryАдаптер трассировки OpenTelemetry
@flue/postgresАдаптер персистентности на базе Postgres
📝 Быстрый старт
npm install @flue/runtime
npm install --save-dev @flue/cli
npx flue init --target node

Затем запустите flue dev --target node для локального dev-сервера на порту 3583.


Почему это важно для отрасли

«Flue — первый фреймворк, который воспринимает agent harness как полноценную цель сборки, а не как маркетинговое описание чего-то другого.»

До появления Flue все TypeScript-фреймворки в этой области — Mastra, Vercel AI SDK, LangGraph.js, Genkit — воспринимали слои harness как сантехнику: необходимую, но собираемую пользователем самостоятельно.

Flue открыт на каждом уровне — модели, sandbox и деплой — поэтому вы никогда не окажетесь в lock-in. Многие фреймворки и SDK закрыты в каком-то направлении: предполагают собственные модели, работают только в своём sandbox или деплоятся только в свой облачный сервис.

В версии 1.0 Beta появились расширенная наблюдаемость, новые адаптеры баз данных (MySQL, Redis, MongoDB, Supabase), поддержка изображений на входе агентов и npm-импортируемые skills.

⚠ Статус проекта
Flue находится в активной разработке. Возможны breaking changes, хотя начиная с 1.0 Beta команда обещает их существенно сократить.

За первые сутки после анонса проект собрал 2 394 лайка, 3 342 закладки и 333 283 показа в твиттере. GitHub-репозиторий набрал 791 звезду, а @flue/cli вышел на 4 300 еженедельных загрузок.

Исходный код доступен на GitHub, документация — на flueframework.com.