Skip to content

About

SagaAI Platform

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

SagaAI - платформа для команды ИИ-сотрудников

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 - встроенный агент-разработчик

  • Редактирование кода с утверждением изменений: каждое изменение предлагается и применяется контролируемо.
  • Полностью автономный режим по вашему выбору. При готовом плане DevAgent спросит, следовать ли ему в точности или сначала проанализировать код; при подробном ТЗ - действовать ли без согласования. План всё равно составляется, но фаза утверждения пропускается и исполнение начинается сразу.
  • Версионирование файлов (бэкапы), снапшоты проекта и полный откат.
  • Регламентированный пайплайн тестирования: юнит-тесты, регрессия, сценарные тесты, саморевью.
  • Внешняя память задач (TASK_STATE.md): план, прогресс, журналы анализа и открытых вопросов - для многоэтапных работ.
  • Защита от path traversal (инструменты не выходят за пределы рабочей папки), санитизация и разметка недоверенных данных, эвристическая защита от prompt-injection.
  • Работа с любым проектом: DevAgent строит карту проекта (PROJECT_MAP.md) и ведёт документацию (AGENT.md - ключевая информация для агентов, архитектура, changelog).
  • Изоляция рабочей папки: новый диалог начинается без папки («папка не выбрана»), активная папка привязана к диалогу и восстанавливается при его открытии; меню недавних папок у каждого сотрудника своё.
  • Блок «Выбор папки» в чате: «Авто», до 10 недавних папок и нативный выбор папки на компьютере отдельным пунктом селектора - кнопки рядом с полем ввода нет, чтобы её не путали со скрепкой загрузки файлов. Выбранная папка применяется автоматически при отправке сообщения (агент не тратит на это шаг), после чего селектор возвращается в «Авто», а активный путь виден под полем.
  • Панель чата: веб-поиск и защита от prompt-injection. Экономный режим (компактный контекст) включён всегда и переключателя не имеет - он снижает расход токенов на длинных диалогах.
  • Авто-прокрутка ленты чата: пока агент работает, лента следует за новым выводом; прокрутка вверх ставит слежение на паузу, возврат к низу - возобновляет; отправка сообщения прокручивает вниз.
  • Загрузка файлов прямо в поле ввода чата: иконка-скрепка с подсказкой, без отдельного блока и подписи; файлы уходят вместе с текстом одной отправкой.

📚 Базы знаний (RAG)

  • Локальные базы знаний с тремя режимами поиска: 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 <пакет>) - выполните её для стабильной работы платформы.

🪟 Windows (WSL не требуется)

  1. Скачайте репозиторий (Git не обязателен). Страница репозитория → Code → Download ZIP → распакуйте архив в удобную папку. Либо клонируйте: git clone https://github.com/TVD2100/sagaai-platform SagaAI.

  2. Откройте терминал в папке проекта. Зайдите в папку, затем Shift + правая кнопка мыши по пустому месту → «Открыть окно PowerShell здесь».

  3. Установите зависимости: pip install -r requirements.txt.

  4. Запустите приложение: streamlit run app.py и откройте http://localhost:8501.

🐧 macOS / Linux

  1. Клонируйте репозиторий: git clone https://github.com/TVD2100/sagaai-platform SagaAI, затем cd SagaAI.

  2. Установите зависимости: pip install -r requirements.txt.

  3. Запустите приложение: streamlit run app.py и откройте http://localhost:8501.

  4. Задайте API-ключи нужных AI-сервисов на странице «Настройки» - после этого можно создавать помощников, сотрудников и базы знаний.

💡 Если команда streamlit не найдена, запускайте через модуль Python: python -m streamlit run app.py.


🔐 Настройка безопасности

Включение защиты паролем

Способ 1 - страница «Доступы» (рекомендуется): в боковом меню «🔐 Доступы» включите «Доступ по паролю», задайте пароль и подтверждение, настройте интервал повторного запроса и нажмите «Сохранить». Пароль хранится в БД в зашифрованном виде (Fernet).

Способ 2 - переменная окружения SAGAAI_AUTH_PASSWORD.

После включения интерфейс показывает форму входа. Пароль из формы имеет приоритет перед переменной окружения; при выключенном переключателе на странице «Доступы» пароль не запрашивается.

TLS-верификация

По умолчанию все 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.

About

SagaAI Platform

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages