Skip to content

Архитектура ​

crew/
├── apps/
│   ├── server/        Hono: REST + WebSocket, раздаёт веб-интерфейс
│   └── web/           React 19 + Vite + Tailwind v4
├── packages/
│   ├── core/          Рантайм агентов, LLM-провайдеры, инструменты, промпт, воркер
│   ├── memory/        SQLite: агенты, сообщения, память (FTS5 + векторы), задачи
│   └── channels/      Telegram (grammY)
├── cli/               `crew`, публикуется как @vefimov/crew
├── docs/              Этот сайт (VitePress)
└── docker/

Потоки данных ​

 Веб ──────┐
 CLI ──────┼──▶ Рантайм Crew ──▶ Провайдер (Ollama / OpenAI-совместимый)
 Telegram ─┘        │  ▲
                    ▼  │ инструменты: remember · recall · list/read/write files
                 SQLite (один файл)
                    │
                    ▼
             Очередь задач ──▶ извлечение памяти, догенерация эмбеддингов

Принятые решения ​

В Crew нет нативных зависимостей. node:sqlite встроен в Node 22, поэтому npx работает без компиляции.

Всё состояние лежит в одном файле, ~/.crew/crew.db, в режиме WAL. Туда входят агенты, чаты, память, векторы, настройки и очередь задач.

Для поиска по памяти используются FTS5 и перебор по косинусной близости вместо векторной базы. Для тысяч воспоминаний на агента этого хватает с запасом, и не нужен лишний сервис.

Провайдеры спрятаны за маленьким интерфейсом Provider (chat, embed, models, ping) со стримингом и tool calls. Адаптеры Ollama и OpenAI-совместимого API занимают по одному короткому файлу.

Рантайм построен на EventEmitter. Сервер пересылает его события в WebSocket-клиенты, поэтому любой интерфейс видит всех агентов вживую.

Каждый агент обрабатывает один ход за раз, из какого бы канала ни пришло сообщение.

MIT License