OpenExecutive — виртуальная управленческая команда из восьми Claude-агентов
📂 Исходный код на GitHubAI-система уровня виртуальной управленческой команды: FastAPI + Next.js, оркестратор на claude-sonnet, восемь специализированных агентов (CSO, CFO, CHRO, юрист, COO, CMO, CPO, директор по коммуникациям с советом директоров), ChromaDB для RAG, SQLite для эпизодической памяти. Лицензия Apache 2.0.
Разработчики из sentelabs.ai выложили в открытый доступ OpenExecutive — AI-систему, которая играет роль управленческой команды компании: старший советник с экспертизой уровня Harvard MBA, адаптированный под конкретный бизнес. Проект собрал уже 3.4k звёзд на GitHub и распространяется под лицензией Apache 2.0.
Что делает система
OpenExecutive предоставляет единый целостный «голос руководителя», за которым стоят восемь специализированных AI-агентов:
- Chief Strategy Officer — конкурентный анализ, M&A, позиционирование на рынке, OKRs
- Chief Financial Officer — финансовое моделирование, привлечение инвестиций, юнит-экономика, денежный поток
- Chief HR/People Officer — найм, компенсации, performance-менеджмент, культура
- General Counsel — контракты, интеллектуальная собственность, основы трудового права, комплаенс
- Chief Operating Officer — проектирование процессов, работа с подрядчиками, операционный скейлинг
- Chief Marketing Officer — GTM-стратегия, бренд, коммуникации, PR
- Chief Product Officer — роадмап, приоритизация, продуктовая стратегия
- Board Communications Director — презентации для совета директоров, отношения с инвесторами, управление
Внутренняя агентная архитектура от пользователя скрыта — все ответы звучат одним последовательным голосом. Помимо ответов на вопросы система поддерживает эпизодическую память о прошлых решениях и инициативах между сессиями, а встроенный планировщик проактивно напоминает о срочных действиях.
Архитектура
Сообщение пользователя
↓
Executive Orchestrator (claude-sonnet-4-6)
↓ tool use → параллельные вызовы специалистов
CSO / CFO / CHRO / GC / COO / CMO / CPO / Board
↓ каждый специалист извлекает контекст из ChromaDB
Встроенные MBA-знания + документы вашей компании
↓
Синтезированный ответ руководителя
Ключевые инженерные решения:
- Знания — два слоя извлечения на каждый вызов специалиста: встроенные Markdown-знания уровня MBA (
knowledge/builtin/) загружаются в ChromaDB при старте, а загруженные документы компании хранятся в отдельной коллекцииcompany_docs. RAG-контекст инжектится в пользовательский ход, но никогда — в кешируемый системный промпт. - Эпизодическая память — после каждого ответа фоновый проход на
claude-haiku-4-5извлекает ключевые решения и инициативы в SQLite. Следующая сессия открывается блоком<past_decisions>, так что «руководитель» помнит, что советовал месяц назад. - Планировщик — job runner забирает задачи командой
UPDATE … RETURNING, что защищает от двойного исполнения. API обязан работать в одном инстансе — горизонтальное масштабирование без блокировки планировщика запрещено. - Промпт-кеширование — персона, профиль компании и индекс знаний кешируются отдельно, до 85% попаданий в кеш после первых ходов. Динамический контент в кешируемые блоки не попадает никогда.
Технологический стек
| Слой | Выбор |
|---|---|
| LLM-основа | Anthropic Claude API |
| Модель по умолчанию | claude-sonnet-4-6 (оркестратор и большинство специалистов) |
| Глубокие рассуждения | claude-opus-4-7 (CSO, CFO, GC, Board — с extended thinking) |
| Бэкенд | Python 3.11 + FastAPI |
| Менеджер пакетов | uv |
| Векторное хранилище | ChromaDB (локальное, встроенное) |
| Эпизодическая память | SQLite |
| Веб-интерфейс | Next.js 15 (App Router) + Tailwind |
Интерфейсы и интеграции
| Интерфейс | Как использовать |
|---|---|
| Web UI | http://localhost:3000 |
| Slack | упомянуть @OpenExecutive или написать в личку |
| CC или письмо на настроенный адрес (IMAP/SMTP) | |
| Telegram | сообщение настроенному боту |
| Google Chat | упоминание в пространстве |
| Discord | личное сообщение, упоминание или команды /ask / /today |
| CLI | openexecutive chat |
При первом запуске мастер онбординга собирает профиль компании: базовые параметры, бизнес-модель, конкурентное окружение, стратегические приоритеты, культуру и ценности, опционально — финансовое положение и загрузку документов. Дальше «руководитель» учитывает этот контекст в каждом ответе.
Быстрый старт
# Clone the repo
git clone https://github.com/SenteLabsAI/OpenExecutive.git
cd OpenExecutive
# Set your Anthropic API key
cp .env.example .env
# Edit .env and add ANTHROPIC_API_KEY=sk-ant-...
# Start everything
make dev
Нужны Python 3.11+ и Node 22+. Первый запуск занимает несколько минут: uv sync подтягивает тяжёлые ML-зависимости (ChromaDB + sentence-transformers/PyTorch), а затем скачивается embedding-модель (~90 МБ) для локального векторного индекса. Веб-интерфейс поднимается на порту 3000, API — на 8000.
Документы (питч-дек, финансовая модель, стратегия) загружаются через UI или API:
# Via CLI
openexecutive upload deck.pdf model.xlsx strategy.md
# Via API
curl -X POST http://localhost:8000/documents \
-F "file=@deck.pdf" \
-F "domain=strategy"
Для продакшена — деплой на Fly.io с двумя окружениями (dev и qa), Google-авторизацией с email allow-list и защитой API shared-secret заголовком.
Локальные модели
Система работает с любым OpenAI-совместимым сервером — Ollama, LM Studio, vLLM, llama.cpp — вместо или рядом с Anthropic API:
LOCAL_MODELS_ENABLED=true
LOCAL_BASE_URL=http://localhost:11434/v1
LOCAL_MODELS=llama3.3
Подключённые слаги появляются в выпадающем списке моделей Council UI, так что можно оставить оркестратор на Claude, а отдельных специалистов переключить на локальные модели. Важный нюанс: мультиагентная маршрутизация активно использует tool use, поэтому стоит выбирать модели, которые с ним сильны (Llama 3.3 70B, Qwen 2.5) — маленькие модели маршрутизируют плохо. Промпт-кеширование и extended thinking для локальных моделей автоматически отключаются.
Оценка качества
В evals/ лежат 29 сценариев по всем восьми доменам, которые оценивает LLM-судья на claude-opus-4-7. Каждый сценарий определяет запрос, симулированный контекст компании, ожидаемые темы, требуемую маршрутизацию к специалисту и рубрику. Пять измерений — согласованность персоны, точность в домене, использование контекста компании, качество маршрутизации, применимость — оцениваются от 1 до 5. CI-гейт требует средний балл ≥ 3.5/5, а падение любого измерения более чем на 10% относительно main заваливает PR.
Приватность и лицензия
Всё в каталоге company/ (профиль YAML, загруженные документы, векторное хранилище) находится в gitignore и не покидает вашу машину — кроме как в составе промптов, отправляемых в Anthropic API. Anthropic не обучается на данных API. Лицензия Apache 2.0: коммерческое использование свободное, требуется атрибуция.
Ссылки
- Репозиторий: https://github.com/SenteLabsAI/OpenExecutive
- Демо-видео: https://youtu.be/O_g97xxVTMk
- Живая демо-инсталляция: https://openexec-ui-dev.fly.dev