flowwit-backend
v0.9.0
Published
Multi-agent LLM platform with a visual workflow engine — chat with agents directly or build deterministic node-graph pipelines they execute step by step.
Maintainers
Readme
Flowwit
Мультиагентная LLM-платформа с визуальным движком воркфлоу. Можно общаться с агентами напрямую в чате, а можно строить детерминированные пайплайны (граф нод), которые агенты исполняют пошагово — вместо того чтобы каждый раз полагаться на решение LLM, что делать дальше.
Это бэкенд платформы. Есть отдельный фронтенд с визуальным редактором воркфлоу — опциональный, работать можно и без него, например через Telegram-канал.
Установка
git clone https://github.com/Kirilqa/flowwit-backend
cd flowwit-backend
npm installНастройка
Скопировать файл-пример окружения и настроить хотя бы одного провайдера:
cp .env.example .envOPENAI_API_KEY=sk-...
# или
OPENROUTER_API_KEY=sk-or-...
# или, для локальных моделей через Ollama, ключ не нужен:
OLLAMA_BASE_URL=http://localhost:11434
# или, для локальных моделей через LM Studio, ключ нужен только если включён там:
LMSTUDIO_BASE_URL=http://localhost:1234Обязательно нужно настроить хотя бы одного провайдера — у OpenAI/OpenRouter должен быть задан ключ, у Ollama/LM Studio достаточно явно раскомментировать соответствующий *_BASE_URL (обе пробуются при старте только если их переменная присутствует). Ключ у LM Studio опционален — задавай LMSTUDIO_API_KEY только если включил "Require Authentication" в её собственных настройках сервера. Всё остальное в .env.example (порт/host сервера, пути хранения, доп. опции провайдеров, настройки каналов) — опционально, с разумными дефолтами.
Все персистентные данные (конфиги агентов/MCP/каналов, сессии, скиллы, память, воркфлоу, запланированные задачи) по умолчанию лежат под ./data/ — для сохранности достаточно бэкапить или монтировать эту одну папку. При первом запуске (пустая ./data/) сервер сам создаёт стартового агента и устанавливает пять системных скиллов-гайдов — руками ничего заводить не нужно.
Запуск
npm run dev # API-сервер на http://localhost:3000 (или SERVER_PORT), с hot reload конфигов
npm run dev -- --chat # консольный чат вместо сервераДля продакшн-сборки:
npm run build
npm run startИли через Docker:
docker build -t flowwit-backend .
docker run --env-file .env -p 3000:3000 -v $(pwd)/data:/app/data flowwit-backendМонтирование -v — это то, что позволяет данным пережить пересоздание контейнера (например, на следующем docker run после обновления) — без него всё под ./data/ живёт только в writable-слое контейнера и теряется в момент его удаления.
Если используешь OLLAMA_BASE_URL/LMSTUDIO_BASE_URL и сам бэкенд тоже запущен в Docker — localhost внутри контейнера означает сам контейнер, а не хост-машину. Указывай http://host.docker.internal:11434/http://host.docker.internal:1234 (Docker Desktop на Mac/Windows) или реальный LAN-адрес хоста (Linux).
Использование
- Серверный режим (по умолчанию) — REST + SSE API для чата, воркфлоу, агентов, планировщика и остального. SSE-стрим генерации —
POST /messages. - Консольный режим (
--chat) — общение с агентом прямо в терминале. - Агенты, MCP-серверы, каналы, воркфлоу и запланированные задачи описываются декларативно в JSON-файлах (по умолчанию
./data/agents.json,./data/mcp.json,./data/channels.json,./data/workflows/,./data/scheduled-tasks.json— пути настраиваются, см..env.example) и подхватываются на лету без рестарта процесса.
Что внутри
- Агенты — LLM-агенты с вызовом инструментов, две стратегии мышления (свободный ReAct и явный Plan-and-Execute), скиллы, сабагенты, MCP-серверы, бюджеты, гуардрейлы с интерактивным подтверждением, персистентные сессии.
- Скиллы — файловые
SKILL.mdс инструкциями, скриптами (исполняются, не читаются как код) и бинарными ассетами; маркетплейс ClawHub для установки/обновления чужих скиллов. - WorkFlow — бэкенд для графового редактора: типизированные порты, параллельные ветки, циклы, стриминг событий выполнения.
- Scheduler — запуск промпта агента или воркфлоу разово, по cron-расписанию или по требованию.
- Каналы — Web (SSE) и Console из коробки, Telegram как первый пользовательский канал; у каждого свои настройки и hot reload.
- Гуардрейлы — интерактивное разрешение/запрет вызовов инструментов, с правилами на трёх уровнях (global/agent/session) и glob-паттернами.
- Память — файловая персистентная память агента между сессиями, с настраиваемыми лимитами по объёму.
Стек
Node.js, TypeScript (strict), Zod, Fastify, Server-Sent Events, Pino.
Разработка
npm run lint # eslint
npm run check-format # prettier --check
npm test # jest
npm run test:coverage # jest --coverage