SagaAI - это платформа с открытым исходным кодом (source-available), на которой вы собираете и управляете собственной командой ИИ-сотрудников: чат-ассистенты, автономные оркестраторы, базы знаний (RAG) и встроенный агент-разработчик DevAgent - в одном веб-интерфейсе, на вашем компьютере или сервере, с контролем над действиями агентов и защитой ваших данных. Лицензия - PolyForm Noncommercial 1.0.0: бесплатно для учёбы, личных проектов, образования и научных исследований, коммерческое использование - по отдельному договору.
Это не «ещё один чат-бот» и не «ещё один кодинг-агент». SagaAI объединяет персональных ассистентов, агентные платформы и кодинг-агентов в единой системе: сотрудники с разными ролями работают над задачами, опираются на ваши базы знаний, а агент-разработчик DevAgent редактирует код ваших проектов - с планом, утверждением, бэкапами и тестами.
- ⚠ Статус и предупреждения
- Что внутри
- Кому подходит
- 🆓 Бесплатное использование
- Возможности
- 📦 Быстрый старт
- 🔐 Настройка безопасности
- 🛠 Для разработчиков
- 📖 Документация
- Лицензия
🧪 Статус версии: предварительный релиз (v2.17.1). Линия 2.x находится в активной разработке: публичные API, интерфейс и форматы данных могут меняться между минорными релизами, в том числе несовместимым образом. Для продуктивного использования выбирайте версию осознанно и проверяйте изменения перед обновлением.
⚠️ Требования к квалификации пользователя. Платформа предназначена для опытных разработчиков, обладающих практическими навыками работы с автономными ИИ-агентами и способных анализировать выполняемые агентом действия в реальном времени, своевременно выявляя и прерывая нелегитимные или потенциально опасные операции. Не рекомендуется лицам без соответствующей технической квалификации.В силу особенностей работы больших языковых моделей - включая галлюцинации и некорректную интерпретацию задач - автономные агенты могут причинить ущерб пользователю и третьим лицам. Используя данное программное обеспечение, пользователь принимает на себя полную ответственность за действия ИИ-агентов.
Программное обеспечение предоставляется «как есть», без каких-либо гарантий, явно выраженных или подразумеваемых, включая гарантии товарной пригодности, пригодности для определённых целей и ненарушения прав. Авторы и правообладатели не несут ответственности по каким-либо искам, за ущерб или по иным требованиям, возникшим из-за использования программного обеспечения. Полный текст лицензии.
| Роль | Что делает | Для кого это ценно |
|---|---|---|
| 💬 ИИ-помощники | Чат-ассистенты с собственными системными промптами и файлами | Рутинные вопросы, тексты, переводы, разбор документов |
| 👥 Сотрудники-оркестраторы | Автономные агенты с ролями, инструментами, инструкциями и навыками; работают сами, шаг за шагом | Многошаговые рабочие задачи: анализ, обработка, генерация |
| 🔧 DevAgent | Встроенный агент-разработчик: план → утверждение → правки → тесты, с бэкапами и откатами; по вашему выбору - полностью автономный режим следования загруженному плану | Разработка и доработка кода в ваших проектах |
| 📚 Базы знаний (RAG) | Локальные базы с поиском BM25 (без ключей), векторным и гибридным режимами | Ответы и работа агентов на основе именно ваших данных |
| 🧩 Навыки и коннекторы | Пакеты инструкций для агентов, подключение внешних сервисов (GitHub, SSH, MCP) | Расширение возможностей без правки кода платформы |
Всё управляется в браузере: чаты, настройки сотрудников, хранилище знаний, история диалогов, обновления - в одном интерфейсе на русском, английском и китайском языках.
Все сценарии ниже покрывает бесплатная некоммерческая лицензия - условия и полный список случаев в разделе «Бесплатное использование».
Учебные проекты, подготовка лекций и методических материалов, разбор сложных тем с ассистентом, проверка и рецензирование текстов, тренажёр по предмету на собственных конспектах. Базы знаний держат учебники и методички локально: агент отвечает по вашим материалам, а не по общим данным модели. Работает без API-ключей на лексическом поиске.
Сбор и структурирование литературы, извлечение данных из PDF и таблиц, обработка результатов экспериментов, воспроизводимые опыты с ИИ-агентами. DevAgent помогает с кодом для обработки и анализа данных - с бэкапами, тестами и полным откатом.
Благотворительные фонды, госучреждения, организации здравоохранения и охраны окружающей среды: обработка обращений, работа с документами, подготовка отчётов и заявок, внутренняя база знаний по программам и регламентам.
Домашние проекты, любительская разработка, личные исследования и эксперименты, обучение новым инструментам. Можно собрать команду помощников под свои задачи, подключить базы знаний по интересам и вести проекты в DevAgent - без коммерческого применения.
Ключевая идея платформы - не один универсальный чат-бот, а команда специализированных ИИ-сотрудников. Каждый сотрудник настраивается под узкую задачу без единой строки кода: роль и системный промпт, модель, набор инструментов, инструкции, навыки, свои базы знаний и подключения. Дальше вы просто переключаетесь между сотрудниками в сайдбаре или ставите задачу тому, чья специализация подходит.
| Сотрудник | Чем занимается |
|---|---|
| 📣 Маркетолог | Контент-план, тексты для сайта и рассылок, разбор конкурентов по вашей базе знаний, гипотезы и описания сегментов |
| 💰 Финансист | Разбор таблиц и выгрузок (xlsx), расчёты, бюджеты, сверка статей расходов, пояснения к отчётам |
| 🔬 Исследователь | Обзор источников и литературы, сравнение подходов, сборка фактов с опорой на базы знаний и веб-поиск |
| 🗂️ Секретарь | Протоколы встреч, резюме переписки, планирование, черновики писем и поручений |
| 🧭 Аналитик | Обработка данных, сводки и выводы, подготовка регулярных отчётов по шаблону |
| ⚖️ Юрист-ассистент | Поиск по внутренним регламентам и договорам, сравнение редакций документов, чек-листы |
Список открытый: роль задаётся промптом, поэтому под каждую новую задачу создаётся новый сотрудник - с собственными инструментами и доступом только к нужным базам знаний. Встроенный Employee Creator собирает сотрудника по описанию на естественном языке, а Assistant Creator делает то же для простых чат-помощников.
Полный доступ к системным промптам, моделям, инструментам и функциям агентов. DevAgent ведёт разработку в ваших проектах с утверждением изменений, автономным тестированием и документацией; платформа расширяется навыками и собственными функциями. Self-hosted, source-available: вы владеете и кодом, и данными.
Коммерческое использование требует отдельного договора - см. раздел «Бесплатное использование» и лицензию. Для тех, кто заключил договор: помощники и сотрудники под рабочие процессы без единой строки кода, корпоративная база знаний, история диалогов, статистика расхода токенов и защита доступа по паролю - под вашим контролем.
Платформа бесплатна для некоммерческих задач - по лицензии PolyForm Noncommercial 1.0.0. Разрешённые сценарии:
| Сценарий | Что покрывает |
|---|---|
| 🎓 Учёба и самообразование | Личное обучение, курсы, подготовка учебных материалов |
| 🏫 Образование | Школы, вузы и иные учебные заведения - независимо от источника финансирования |
| 🔬 Наука и исследования | Публичные исследовательские организации; личные эксперименты и тестирование на пользу общедоступного знания |
| 🏡 Личные и хобби-проекты | Личное использование, домашние и любительские проекты без коммерческого применения |
| 🏛️ Некоммерческие организации | Благотворительные фонды, госучреждения, организации здравоохранения и охраны окружающей среды |
Разрешено: использовать, изменять и распространять платформу в этих целях. При передаче копии получатель должен получить текст лицензии и уведомление Required Notice: Copyright (c) 2026 Deinekin T.V..
Требует отдельного договора: коммерческое использование, в том числе внедрение платформы в бизнес-процессы, оказание платных услуг на её основе и перепродажа решений.
Каждая возможность платформы обслуживает главную идею - команда ИИ-сотрудников под вашим контролем.
- Чат с поддержкой OpenAI-совместимых API (YandexAI, DeepSeek) и GigaChat; поддержка веб-поиска от Yandex AI и Deepseek.
- Прикрепление файлов: текст, PDF, офисные форматы (docx, pptx, xlsx) с автоматическим извлечением содержимого.
- Ответы в Markdown с подсветкой синтаксиса и кнопкой копирования.
- Каждый сотрудник - автономный агент со своим системным промптом, моделью, эконом-режимом, инструментами, инструкциями, функциями, навыками, базами знаний и подключениями.
- Модели. Единая основная модель для всех шагов; дополнительно можно назначить модели распознавания и генерации изображений. У встроенного DevAgent поставляемые дефолты: DeepSeek
deepseek-flashкак основная модель (уровень рассужденийxhigh) и как модель распознавания изображений, генерация изображений не назначена. Назначенные модели используются инструментамиanalyze_image/generate_image: сотрудник читает изображения (вложения диалога или файлы проекта; YandexAI -qwen3.6-35b-a3b/deepseek-v4.1-flash, DeepSeek -deepseek-flash) и может сгенерировать новое (синхронный Images API YandexAI, модельaliceai-image-art-3.0) - результат сохраняется файлом и показывается в чате с кнопкой скачивания. - Загрузка страниц. Необязательная модель загрузки: в списке только провайдеры с поддержкой Search/Fetch API (DeepSeek - модели
deepseek-flashиdeepseek-v4-pro). Рядом - чек-бокс «Использовать Selenium»: страница открывается в headless-браузере, её видимый текст основная модель переводит в Markdown (нужен пакетseleniumи браузерный драйвер; при их отсутствии инструмент вернёт подсказку об установке). Пока чек-бокс включён, селекторы модели загрузки скрыты - конвертацию делает основная модель; сохранённая пара возвращается после снятия флажка. - Инструмент
url_fetch. При назначенной модели или включённом Selenium у сотрудника появляется инструментurl_fetch- загрузка одной веб-страницы как чистого Markdown-текста; ссылка на PDF скачивается и разбирается по страницам, остальное идёт через Search/Fetch API или браузер. URL валидируется (http/https, без логина и пароля, приватные и локальные адреса запрещены), содержимое санитизируется и помечается как недоверенные данные, длина ограничена 30 000 символов. Снятие обоих источников убирает инструмент; прежнее имяpage_fetchработает как алиас. - Делегирование.
spawn_agentзапускает другого сотрудника (в том числе параллельно - независимые запуски выполняются веером, а лента группирует события по запуску),invoke_assistant- один вызов помощника без цикла инструментов. В задании субагенту передаются абсолютные пути рабочей папки родителя и его файлов диалога, поэтому вложения доступны без пересылки; документ уходит помощнику файлом вcontext_filesи читается целиком за один вызов. Кто кому может делегировать и сколько запусков разрешено, задаётся на вкладке «Делегирование»: чек-боксы сотрудников и помощников плюс шесть лимитов (глубина дерева, одновременные запуски, шаги и суммарное число запусков ребёнка, бюджет времени ребёнка - по умолчанию и не более часа, потолок токенов). По умолчанию: пять одновременных запусков, 300 шагов на ребёнка, 64 запуска на дерево - потолок шагов заведомо выше реальной работы, чтобы длинный запуск обрывал бюджет времени, а не счётчик, а веер из нескольких агентов не упирался в четвёртый запуск. Остановка диалога отменяет и дочерние запуски. По умолчанию делегирование разрешено на один уровень вглубь, вызовы помощников закрыты до явного разрешения. - Фоновые субагенты.
spawn_agent(background=true)возвращаетrun_idсразу: ребёнок работает в своём потоке, а диалог продолжает работу и получает извещение о завершении скрытой system-строкой на ближайшем шаге (без видимой реплики пользователя). Состояние запуска смотрятsubagent_status(один запуск, всё дерево или ожидание терминального статуса до 30 с), журнал ребёнка читаетread_subagent_state,sleepблокирует шаг до события в дереве или таймаута (сколько ждать, решает вызывающий, потолок - час, без отмены работы), аresume_subagentпродолжает работу с того места, где ребёнок остановился: готовые шаги не переделываются, уже созданные файлы не перезаписываются, дерево и счётчики запусков наследуются. Записи запусков переживают перезапуск процесса, а брошенный запуск распознаётся какfailedпо устаревшему heartbeat, чужому процессу или исчезнувшему pid. У субагента нет человека рядом, поэтому операция, требующая подтверждения, не подвешивает его: он получает отказ и переписывает действие без подтверждения либо сообщает о блокере. Цепочка продолжений ограничена, поэтому повторное продолжение упирается вresume_chain_limit, а не крутится бесконечно. - Диагностика субагента. Сбой ребёнка классифицируется по источнику: исключение внутри его цикла помечается
internal_errorсretryable=false(повтор упадёт так же - чинится причина, а не перезапуском), а сбой провайдера остаётсяprovider_errorсretryable=true. Запись запуска сразу хранит производный тред ребёнка и его рабочую папку, поэтому журнал адресуем, аfinish_runдописывает в разделHandoffэтого журнала абзацRuntime outcomeсо статусом, кодом ошибки, числом шагов и сводкой - даже если сам ребёнок журнал не вёл. Результатыspawn_agent,resume_subagent,subagent_statusиread_subagent_stateнесут полеnoteс готовым смыслом статуса: «дефект платформы, не повторяй», «провайдер, одна изменённая попытка», «кончились шаги - дели задачу», «истёкшее ожидание значит работает, а не завис», «пустой журнал не значит, что работы не было». - Документы.
read_thread_fileоткрывает вложения диалога,read_document- файл в рабочей папке по абсолютному пути (окно строк для больших файлов). Поддерживаются PDF, DOCX, DOC, PPTX, XLSX, XLS, RTF, ODT, HTML и plain text; текст и исходники читаются напрямую, поэтомуrun_codeостаётся средством последней очереди. - Журналы задач не копятся. Каркас журнала задач создаётся заранее для каждого диалога, поэтому со временем накапливались файлы, которые уже никто не прочитает. Уборка при старте удаляет пустой журнал старше недели и журнал завершённого дочернего запуска, чей родительский журнал исчез; живой диалог, свежие файлы, журналы с историей и посторонние файлы не трогаются, а удаление пустого родителя не уносит с собой работающего ребёнка в том же проходе. Обход покрывает и рабочую папку проекта, и папки диалогов без выбранной папки, и выполняется один раз за процесс.
- Системные функции включаются и выключаются чекбоксами на вкладке «Функции»; отключённый инструмент реально блокируется диспетчером.
- В системный промпт каждого сотрудника автоматически добавляется каталог доступных инструментов (
## Available tools) с правилами вызова; независимые вызовы разрешено объединять в один батч (с условиями независимости). - Память сотрудника. У каждого сотрудника два независимых хранилища. Персональная память (
get_personal_memory/set_personal_memory/list_personal_memory) хранит заметки о том, как с вами работать: общая карточка владельца (правила, предпочтения, окружение) и личная память конкретного сотрудника; она живёт вDATA_DIR/personal/, не экспортируется и не попадает в git, а при удалении сотрудника архивируется, а не стирается. Правило «когда писать» сотрудник получает в системном промпте всегда, даже пока заметок нет: после вашей поправки, после решения, важного в следующий раз, после обнаруженного ограничения; одноразовые детали и уже видимое в промпте не записываются. Карточка владельца общая для всех сотрудников: дополнить её может любой (mode='append'), а полная перезапись отклоняется, пока запись не передаст отдельный флагoverwrite_owner_profile- он ставится только по вашей явной просьбе. Рабочая папка роли (MEMORY_DIRв промпте, вкладка «🧠 Memory» в настройках) хранит рабочие данные - реестры, карточки дел, журналы решений - и лежит внутри рабочего проекта, уезжая вместе с ним при экспорте. Карточку владельца видят все сотрудники; её текст ограничен по объёму, а заметки самого сотрудника в промпт не вставляются - он читает их инструментом, когда они нужны. - Сотрудники ищут по истории диалогов:
search_in_threads(по умолчанию - текущий диалог, без предварительных списков; явныйthread_id, охват по оркестратору или всем диалогам, период),list_threadsиread_thread. DevAgent видит все диалоги, остальные сотрудники - только свои. - Правки системного промпта встроенного сотрудника (DevAgent) сохраняются между перезапусками; вернуть поставляемый промпт можно кнопкой сброса на вкладке «Промпт».
- DevAgent - встроенный (неудаляемый) оркестратор, всегда доступен.
- Секция «Сотрудники» в сайдбаре: первые 5 всегда видны, остальные - в свёрнутом блоке «Все (N)»; поиск показывается только при количестве сотрудников больше пяти. Порядок - по времени последнего диалога (новые и недавно использованные сверху).
- В ленте чата у каждого завершённого текстового ответа сотрудника есть панель выгрузки/копирования (📥 MD / 📥 TXT и Copy MD / Copy TXT); ответы с вызовами инструментов панели не получают.
- Создание, редактирование и удаление помощников (системных промптов) с привязкой файлов и подбором модели под сложность задачи.
- Assistant Creator - встроенный мета-инструмент: генерирует качественный системный промпт по описанию роли.
- Секция «Помощники» в сайдбаре: первые 5 всегда видны, остальные - в свёрнутом блоке «Все (N)»; поиск показывается только при количестве помощников больше пяти.
- Редактирование кода с утверждением изменений: каждое изменение предлагается и применяется контролируемо.
- Полностью автономный режим по вашему выбору. При готовом плане DevAgent спросит, следовать ли ему в точности или сначала проанализировать код; при подробном ТЗ - действовать ли без согласования. План всё равно составляется, но фаза утверждения пропускается и исполнение начинается сразу.
- Версионирование файлов (бэкапы), снапшоты проекта и полный откат.
- Регламентированный пайплайн тестирования: юнит-тесты, регрессия, сценарные тесты, саморевью.
- Внешняя память задач (
TASK_STATE.md): план, прогресс, журналы анализа и открытых вопросов - для многоэтапных работ. - Защита от path traversal (инструменты не выходят за пределы рабочей папки), санитизация и разметка недоверенных данных, эвристическая защита от prompt-injection.
- Работа с любым проектом: DevAgent строит карту проекта (
PROJECT_MAP.md) и ведёт документацию (AGENT.md- ключевая информация для агентов, архитектура, changelog). - Изоляция рабочей папки: новый диалог начинается без папки («папка не выбрана»), активная папка привязана к диалогу и восстанавливается при его открытии; меню недавних папок у каждого сотрудника своё.
- Блок «Выбор папки» в чате: «Авто», до 10 недавних папок и нативный выбор папки на компьютере отдельным пунктом селектора - кнопки рядом с полем ввода нет, чтобы её не путали со скрепкой загрузки файлов. Выбранная папка применяется автоматически при отправке сообщения (агент не тратит на это шаг), после чего селектор возвращается в «Авто», а активный путь виден под полем.
- Панель чата: веб-поиск и защита от prompt-injection. Экономный режим (компактный контекст) включён всегда и переключателя не имеет - он снижает расход токенов на длинных диалогах.
- Авто-прокрутка ленты чата: пока агент работает, лента следует за новым выводом; прокрутка вверх ставит слежение на паузу, возврат к низу - возобновляет; отправка сообщения прокручивает вниз.
- Загрузка файлов прямо в поле ввода чата: иконка-скрепка с подсказкой, без отдельного блока и подписи; файлы уходят вместе с текстом одной отправкой.
- Локальные базы знаний с тремя режимами поиска: bm25 (собственный полезависимый лексический индекс BM25F, без API-ключей, режим по умолчанию), vector (семантический поиск по эмбеддингам) и hybrid (объединение через RRF); загрузка документов, автоматическая индексация (чанкинг + BM25; эмбеддинги - в режимах vector/hybrid). В режиме bm25 тело чанка и его контекстная шапка (продукт, заголовок, раздел) индексируются как отдельные поля: термин из шапки помогает найти нужный продукт или раздел и не «забивает» ранжирование.
- Страница «Хранилище»: создание баз, файлы, индексация, тестовый поиск и переключение режима поиска. DevAgent и сотрудники обращаются к базам напрямую; результаты поиска несут идентификаторы чанков, а инструмент добора (
rag_get_chunks) возвращает соседние фрагменты для восстановления полного контекста.
- Стандартизированные пакеты инструкций и скриптов для сотрудников и DevAgent.
- Создание навыков по запросу на естественном языке и адаптация навыков из других экосистем ИИ-агентов.
- Подключение внешних сервисов (GitHub, SSH, MCP) с хранением токенов и ключей в защищённом виде.
- Создание подключения через DevAgent прямо в чате: сначала черновик без секретов, затем заполнение учётных данных на странице «Коннекторы». У каждого подключения есть файл памяти агента (заметки о сервере и лимитах - без секретов).
- Готовые пресеты MCP-серверов без секретов на отдельной вкладке «MCP-серверы»: плитка с иконкой «ВкусВилл» открывает форму подключения с уже заполненной конфигурацией сервера, где остаётся ввести токен; рядом - плитка «Свой MCP-сервер» для любого stdio/http-сервера. Работа с GitHub идёт через отдельное подключение «GitHub» (
github_rest), которому нужен обычный Personal Access Token. Поддерживаются оба транспорта MCP - локальный stdio и удалённый HTTP. - Страница «Коннекторы» построена как «список ↔ форма»: клик по плитке сервиса или пресета открывает форму на той же странице, и подключение появляется в списке только после нажатия «Создать» - сразу рабочее, с введёнными учётными данными. «Отмена» и «← Назад» возвращают к списку, ничего не создавая; редактирование открывается такой же формой на всю страницу. Три вкладки - «Общие сервисы» (плитки GitHub/SSH), «MCP-серверы» и «Подключения» (карточки всех сохранённых подключений с иконкой сервиса, состоянием учётных данных, проверкой, редактированием и удалением); выбранная вкладка не сбрасывается при кликах и сохранениях.
- В диалоги оркестраторов загружаются файлы любого формата (до 100 МиБ на файл); агент сам решает, когда и как извлекать содержимое.
- Встроенный конвейер обновлений через публичный GitHub-репозиторий без токена: проверка, выборочная установка (файлы - по отдельности, пакеты кода - целиком), просмотр и откат.
- Применение только при холодном старте, каждый файл бэкапится, запись атомарная, сбой откатывается.
- Страница «Статистика»: расход токенов по периодам, поставщикам и моделям на основе диалогов помощников и сотрудников.
- Страница «Доступы»: вход по паролю, интервал повторного запроса; во время выполнения задачи оркестратором авторизация не запрашивается.
- Персональная память лежит в
DATA_DIR/personal/и исключена из git (.gitignore): заметки не попадают ни в экспорт сотрудника, ни в репозиторий проекта. Запись проверяется на учётные данные - текст, похожий на токен или ключ, отклоняется, а сообщение об ошибке не повторяет найденный фрагмент. - TLS-верификация включена по умолчанию; API-ключи хранятся в защищённом виде (или задаются через переменные окружения и не сохраняются в БД); секреты не отображаются в интерфейсе.
- Темы оформления: светлая, тёмная, системная. Интерфейс на русском, английском и китайском языках.
- Единая «История» всех диалогов с фильтрами и поиском.
- Python 3.12 или новее. Проверьте командой
python --version(на Windows также подойдётpy --version). Если Python не установлен, скачайте его с python.org; при установке на Windows отметьте пункт «Add Python to PATH». - Зависимости из
requirements.txt(включая Streamlit 1.66.0 или новее). При первом запуске приложение само проверяет установленные библиотеки и их версии: если чего-то не хватает или версия устарела, появится предупреждение с командойpip install -r requirements.txt(илиpip install -U <пакет>) - выполните её для стабильной работы платформы.
-
Скачайте репозиторий (Git не обязателен). Страница репозитория → Code → Download ZIP → распакуйте архив в удобную папку. Либо клонируйте:
git clone https://github.com/TVD2100/sagaai-platform SagaAI. -
Откройте терминал в папке проекта. Зайдите в папку, затем Shift + правая кнопка мыши по пустому месту → «Открыть окно PowerShell здесь».
-
Установите зависимости:
pip install -r requirements.txt. -
Запустите приложение:
streamlit run app.pyи откройте http://localhost:8501.
-
Клонируйте репозиторий:
git clone https://github.com/TVD2100/sagaai-platform SagaAI, затемcd SagaAI. -
Установите зависимости:
pip install -r requirements.txt. -
Запустите приложение:
streamlit run app.pyи откройте http://localhost:8501. -
Задайте API-ключи нужных AI-сервисов на странице «Настройки» - после этого можно создавать помощников, сотрудников и базы знаний.
💡 Если команда
streamlitне найдена, запускайте через модуль Python:python -m streamlit run app.py.
Способ 1 - страница «Доступы» (рекомендуется): в боковом меню «🔐 Доступы» включите «Доступ по паролю», задайте пароль и подтверждение, настройте интервал повторного запроса и нажмите «Сохранить». Пароль хранится в БД в зашифрованном виде (Fernet).
Способ 2 - переменная окружения SAGAAI_AUTH_PASSWORD.
После включения интерфейс показывает форму входа. Пароль из формы имеет приоритет перед переменной окружения; при выключенном переключателе на странице «Доступы» пароль не запрашивается.
По умолчанию все HTTPS-запросы к AI-сервисам проверяют сертификаты (verify=True). Отключать проверку не рекомендуется: без неё возможна MITM-атака с перехватом API-ключей и содержимого диалогов. При необходимости (корпоративный прокси, самоподписанный CA) есть два штатных способа.
Свой CA-бандл. Переменная SAGAAI_GIGACHAT_CA_BUNDLE задаёт путь к PEM-файлу с корневым сертификатом для запросов к GigaChat. По умолчанию используется встроенный certs/russian_trusted_root_ca.pem - Russian Trusted Root CA, которым подписаны эндпоинты GigaChat (этого корня нет в стандартном бандле certifi).
export SAGAAI_GIGACHAT_CA_BUNDLE=/path/to/corporate_ca.pem
streamlit run app.py
Полное отключение проверки (крайняя мера). Переменная SAGAAI_VERIFY_TLS=false отключает TLS-верификацию для всех запросов к AI-сервисам. Используйте только в доверенной сети.
| Пакет | Назначение |
|---|---|
app.py |
Точка входа Streamlit |
core/ |
Бизнес-логика (API, файлы, помощники, оркестраторы, RAG, аутентификация, криптография, обновления) без зависимостей от Streamlit |
ui/ |
Страницы интерфейса (чат, сотрудники, хранилище RAG, статистика, коннекторы, библиотека навыков) |
storage/ |
SQLAlchemy ORM-модели и репозиторий для SQLite |
dev_agent/ |
Агентный цикл DevAgent: безопасный писатель, инструменты, подбор моделей, внешняя память задач |
defaults/ |
Канонические копии: промпты оркестраторов, инструкции, пресеты, локализации, RAG-базы |
tests/ |
Полный набор тестов (pytest), включая сценарные (tests/scenarios/ и tests/smoke/) |
langs/ |
Переводы интерфейса (ru, en, zh-CN) |
Технологии: Python 3.12+ · Streamlit · SQLite через SQLAlchemy · RAG-индекс (BM25 на SQLite; векторный поиск - косинусное сходство, эмбеддинги Yandex Embeddings API) · cryptography · pytest.
AI-провайдеры: OpenAI-совместимые API (YandexAI, DeepSeek), GigaChat; веб-поиск DeepSeek - через Anthropic-совместимый endpoint (модель deepseek-flash).
Обновления: версии и хеши всех поставляемых файлов ведёт манифест file_versions.json; конвейер обновлений доставляет их пользователям через публичный GitHub-репозиторий без токена. Обновления применяются при холодном старте, с бэкапом и откатом при сбое.
Тесты: python3 -m pytest - полный регрессионный набор.
- PROJECT_MAP.md - карта проекта: каждый файл и его назначение.
- AGENT.md - ключевая информация для агентов: требования, конвенции, ограничения.
- ARCHITECTURE.md - архитектура.
SagaAI распространяется под лицензией PolyForm Noncommercial 1.0.0 (© 2026 Deinekin T.V.): исходный код открыт, некоммерческое использование, изменение и распространение разрешены; коммерческое использование требует отдельного договора. Разрешённые сценарии перечислены в разделе «Бесплатное использование».
История лицензирования. Версии 1.x и ранее (до 1.17.0 включительно) опубликованы под лицензией MIT, и для них условия MIT продолжают действовать. Начиная с версии 2.0.0 платформа распространяется под PolyForm Noncommercial 1.0.0.