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