# Диаграмма развертывания Python-агентов под управлением Sherpa Orchestrator

<figure><img src="https://483167589-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpyvTUnAaOD3OMZ1w2jM6%2Fuploads%2Fo2gxZahMo48EK0aAjrnF%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media&#x26;token=cecfddcb-a048-449d-a04c-1e8473c9cdb4" alt=""><figcaption></figcaption></figure>

Полноценная диаграмма доступна по ссылке:

{% file src="<https://483167589-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpyvTUnAaOD3OMZ1w2jM6%2Fuploads%2FSj1FgF0tX3ahhfCumwws%2F%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%20%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20Python-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20%D0%BF%D0%BE%D0%B4%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20Sherpa%20Orchestrator%20%2B%20Sherpa%20AI%20Server.pdf?alt=media&token=c68cc155-773e-47e6-a72d-0b14b201f968>" %}

## Описание архитектуры решения

Sherpa Orchestrator и Sherpa Python Coordinator / Sherpa Python SDK обеспечивают автоматизацию бизнес процессов с помощью Python-агентов, выполняемых на терминальных серверах или виртуальных машинах.

Оркестратор по событиям или входящим данным из внешней среды (через API) запускает Python-сценарии, выполняемые в учётных записях терминальных серверов без участия Пользователя:

* по команде ИИ-агента,
* по команде бизнес-пользователя,
* по расписанию.

Python-сценарии с помощью Sherpa Python SDK обмениваются с Оркестратором логами, задачами из очередей, централизованно хранимыми учетными данными и общими данными.

Все компоненты платформы устанавливается локально в сети Заказчика, без связи с внешними серверами или службами SaaS. Возможность и необходимость доступа компонентов платформы к внутренним и внешним системам определяется решаемой в рамках бизнес-процесса задачей.

Развертывание Sherpa Python SDK производится с помощью exe-инсталлятора в технических пользовательских учетных записях. Установка Sherpa Coordinator Service производится в администраторской учетной записи терминального сервера с помощью exe-инсталлятора.

По умолчанию развертывание Sherpa Orchestrator осуществляется с помощью Docker-контейнера.

Последовательность шагов процесса:

1. Разработчик сценария ИИ-агента с помощью любого подходящего Python IDE создаёт сценарий (скрипт) с использованием Sherpa Python SDK. Готовые сценарии передаются на технические учетные записи ИИ-агентов с помощью функции удаленной публикации в Sherpa Orchestrator. Управление версиями сценариев также осуществляется с помощью Sherpa Orchestrator.
2. Серверный компонент Sherpa Orchestrator поддерживает связь с агентами, запущенными на клиентских машинах, а также хранит:
   1. конфигурации и версии сценариев,
   2. общие глобальные переменные и учетные данные,
   3. логи и скриншоты работы агентов,
   4. журналы аудита Оркестратора,
   5. Пользователей,
   6. Роли и тенанты самого Оркестратора,
   7. Лицензии всех компонентов платформы,
   8. статистику исполнения сценариев.
3. Пользователи и администраторы Sherpa Orchestrator получают доступ к ресурсам, настройкам и статистике с помощью веб-приложения Оркестратора, доступного через веб-браузер. Sherpa Orchestrator включает в себя:
   1. веб-сервер Nginx,
   2. интерпретатор PHP,
   3. реляционную базу данных (по умолчанию - MariaDB).
4. По расписанию, вызову API, команде агента, или по другому поддерживаемому триггеру, Sherpa Orchestrator даёт задание Sherpa Python Coordinator Service соответствующего терминального сервера создать RDP-подключение к локальной или удаленной учетной записи, выделенной для ИИ-агента.\
   \
   При этом на одном терминальном сервере может быть размещено и одновременно активно несколько таких учетных записей. Вход в учётную запись агента производится с предоставленными Оркестратором логином и паролем.\
   \
   После входа, в учетной записи запускается соответствующий экземпляр Sherpa Python SDK. Он подключается к Оркестратору, получает задание на выполнение сценария и сам сценарий, хранящийся в Оркестраторе.\
   \
   В процессе исполнения сценария Sherpa Python SDK может передавать Оркестратору:

   1. текущий статус,
   2. задачи,
   3. логи,
   4. значения глобальных переменных и учетных данных.

   \
   Также в процессе исполнения сценария Sherpa Python SDK может получать от Оркестратора:

   1. задачи,
   2. значения глобальных переменных и учетных\
      данных,
   3. команды для "мягкого" или "жесткого" завершения сценария.

   \
   После завершения исполнения сценария Sherpa Python SDK выполняет logoff из своей учетной записи.
