Действия и MCP
Действия
Действия
Действия (в бэкенде их также называют инструментами) — это функции,
которые ваши агенты могут выполнять для взаимодействия с внешними системами и сервисами.
Они расширяют возможности ваших агентов за пределы языковой модели.Встроенные действия:
Пользовательские действия:
- Интеграции API: подключение к внешним REST API
- Операции с базами данных: запросы и обновление баз данных
- Автоматизация рабочих процессов: запуск бизнес-процессов
- Операции с файлами: чтение, запись и обработка файлов
MCP
MCP
Model Context Protocol (MCP) — открытый стандарт,
который позволяет ИИ-ассистентам безопасно получать доступ к внешним источникам данных и инструментам.
Yahont можно настроить как клиент MCP, чтобы управляемо взаимодействовать с внешними системами, базами данных и API.Ключевые возможности MCP:
- Доступ к внешним данным: подключение к базам данных, API и файловым системам
- Аутентификация: сквозная передача OAuth для безопасного доступа к вашему MCP-серверу.
(Расширенное) Пользовательские встроенные действия
(Расширенное) Пользовательские встроенные действия
Иногда нужно больше контроля над действием, чем позволяет пользовательское действие.
Поскольку Yahont — проект с открытым исходным кодом, вы можете расширить встроенные действия по своему усмотрению!Шаблоны встроенных действий находятся в
backend/onyx/tools/tool_implementations в репозитории
Yahont.Агенты
Агенты
Агенты
Агенты — это ИИ-ассистенты с пользовательскими инструкциями, действиями и доступом к данным,
расширяющие возможности базовой LLM.Встроенные агенты:
Термины ассистент (Assistant) и агент (Agent)
в Yahont используются как взаимозаменяемые и обозначают одно и то же понятие.
id: 0Search Agent — использует инструмент поиска, чтобы отвечать на вопросы по вашей базе знанийid: -1General Agent — базовый чат без инструментов (обычный чат с LLM)id: -2Paraphrase Agent — использует инструмент поиска и цитирует точные фрагменты из источниковid: -3Art Agent — создаёт изображения и визуальный контент
- Использовать конечную точку API
GET /personaдля вывода списка всех агентов - В панели администратора: открыть агента и посмотреть первое число в URL
Чат
Потоковые ответы чата
Потоковые ответы чата
Система ответов чата использует пакетную архитектуру для доставки ответов пользователям в реальном времени.
Вместо ожидания полного ответа система разбивает взаимодействие в чате на отдельные пакеты,
которые передаются постепенно.Каждый пакет имеет единую структуру, определённую классом Поток передачи:
Packet:- Запрос чата запускает процесс потоковой передачи
- В зависимости от нужных операций создаются пакеты разных типов (рассуждения, вызовы инструментов, ответ ИИ, документы, цитаты и т. д.)
- Пакеты отправляются с последовательными индексами, чтобы сохранить порядок
- Фронтенд обрабатывает пакеты в реальном времени и обновляет интерфейс
- Пакет
OverallStopсигнализирует о завершении
Базовые пакеты сообщений
Базовые пакеты сообщений
MessageStart и MessageDeltaЭти пакеты составляют основу системы потоковых ответов:
- MessageStart: начинает новое сообщение с начальным содержимым и итоговыми найденными документами (если они есть)
- MessageDelta: доставляет текст по мере его создания
Управляющие пакеты
Управляющие пакеты
Управление сессией и разделамиУправляющие пакеты определяют ход и жизненный цикл потоковой передачи:
- OverallStop: сигнализирует о конце всей сессии потоковой передачи
- SectionEnd: отмечает завершение типа пакетов (рассуждения, сообщение, цитаты и т. д.)
Пакеты инструментов
Пакеты инструментов
Ответы инструментов передаются так же, как основной ответ сообщения.Инструменты поиска
- SearchToolStart и SearchToolDelta обрабатывают операции поиска документов
- ImageGenerationToolStart, ImageGenerationToolDelta и ImageGenerationToolHeartbeat управляют созданием изображений ИИ
- CustomToolStart и CustomToolDelta используются для MCP и пользовательских действий
Пакеты рассуждений
Пакеты рассуждений
Все шаги рассуждений передаются потоком, чтобы фронтенд мог отображать их по мере обработки. Пакеты рассуждений,
как правило, отправляются первыми.
- ReasoningStart: начинает раздел рассуждений
- ReasoningDelta: передаёт процесс рассуждений ИИ
Пакеты цитат
Пакеты цитат
Пакеты цитат связывают ID цитат с ID документов.
- CitationStart: начинает результаты цитирования
- CitationDelta: доставляет цитаты и ссылки на источники
Коннекторы
Коннекторы
Коннекторы
Connectors в Yahont определяют данные, которые вы хотите индексироватьname: на самом деле не отображается в интерфейсе, если заданоConnectorCredentialPairMetadata:namesource: к какой системе подключаться (см. раскрывающийся блокDocumentSourceниже)input_type: какConnectorполучает данные (см. раскрывающийся блокInputTypeниже)connector_specific_config: настройки конкретного источника, например пути к папкам или каналы. Ожидаемые настройки конкретного коннектора смотрите в/backend/onyx/connectors.refresh_freq: как часто проверять новое или обновлённое содержимое, в секундахprune_freq: как часто удалять устаревшее содержимое из Yahont, в секундахindexing_start: необязательная дата и время начала индексации
Python
Учётные данные
Учётные данные
Credentials содержат сведения для аутентификации, необходимые для доступа к источникам данных. Это ключи API,
токены OAuth, персональные токены доступа (PAT) или учётные данные сервисных аккаунтов,
которые позволяют Yahont безопасно подключаться к вашим внешним системам.Типы Credentials:- Ключи API: простая аутентификация по токену
- Токены OAuth: делегированная авторизация с возможностью обновления
- Сервисные аккаунты: аутентификация между машинами
- Персональные токены доступа: учётные данные доступа конкретного пользователя
ConnectorCredentialPairs
ConnectorCredentialPairs
За кулисами
Connectors и Credentials объединяются в ConnectorCredentialPair (CC-pair,
пара «коннектор — учётные данные»). CC-pair — это активное подключение,
которое может синхронизировать данные из ваших внешних источников в Yahont.
Именно CC-pair вы видите и обслуживаете на странице администратора Connectors.Возможности CC-pair:- Активные подключения: синхронизация данных между источником и Yahont в реальном времени
- Мониторинг состояния: отслеживание работоспособности и производительности синхронизации
- Управление доступом: определение, кто может видеть данные из этого подключения
- Управление конфигурацией: изменение настроек синхронизации и учётных данных
ConnectorCredentialPairMetadata
ConnectorCredentialPairMetadata
ConnectorCredentialPairMetadata определяет настройки конфигурации и доступа для CC-pair.Параметры конфигурации:name: необязательное отображаемое имя CC-pair (переопределяет имяConnector)access_type: кто может получать доступ к данным этого CC-pair (см. раскрывающийся блокAccessTypeниже)auto_sync_options: необязательная конфигурация параметров автоматической синхронизацииgroups: список ID групп, имеющих доступ к этому CC-pair
Python
Документы
DocumentBase
DocumentBase
DocumentBase — основная структура, используемая в Yahont для хранения данных документов и управления ими.
Обратите внимание, что эмбеддинги хранятся в OpenSearch отдельно.id: уникальный идентификатор. Создаётся Yahont, если не указанsections: список разделов содержимого (см.TextSectionиImageSection)source: система, из которой получен документ (см.DocumentSource)semantic_identifier: отображается в интерфейсе как название документаmetadata: произвольныеstringилиlist[string], которые будут сохранены как теги документаdoc_updated_at: метка времени UTC последнего обновления документаchunk_count: число фрагментов, на которые документ разбивается для обработкиprimary_owners: метаданные о людях, связанных с документомsecondary_owners: метаданные о людях, связанных с документомtitle: используется для поиска (по умолчаниюsemantic_identifier, если не указан)from_ingestion_api: получен ли этот документ через Ingestion APIadditional_info: информация, специфичная для коннектора, которая может понадобиться другим частям кодаexternal_access: данные синхронизации прав (только Enterprise Edition)
Ingestion API расширяет определение DocumentBase полем
cc_pair_id,
чтобы автоматически связать документ с CC-pair.Python
DocumentSource
DocumentSource
DocumentSource — перечисление, определяющее допустимые источники документа.
Для загрузки файлов в Ingestion API и программного создания Connectors нужно указать DocumentSource.Python
TextSection
TextSection
TextSection — часть документа в Yahont.text: собственно текстовое содержимое разделаlink: необязательный URL, к которому относится этот текстовый раздел или из которого он получен
Python
ImageSection
ImageSection
ImageSection — изображение, извлечённое из документа в Yahont.image_file_id: UUID файла изображения, хранящегося в файловом хранилище Yahonttext: необязательное текстовое описание или подпись к изображениюlink: необязательный URL, к которому относится этот раздел изображения или из которого он получен
Python
AccessType
AccessType
AccessType определяет, кто может получать доступ к данным Connector в Yahont.PUBLIC: все пользователи Yahont могут получать доступ к данным этогоConnectorPRIVATE: только пользователь, создавшийConnector, и указанные группы могут получать доступ к данным этогоConnectorSYNC: значение SYNC можно задать толькоConnectorsс поддержкой синхронизации прав.Connectorбудет синхронизировать права доступа с исходной системой.
Python
InputType
InputType
InputType определяет, как Connector получает данные из исходной системы.LOAD_STATE: однократная загрузка данных из источникаPOLL: непрерывный опрос источника на наличие новых данных (начинается с полной загрузки)EVENT: для большинстваConnectorsне реализованоSLIM_RETRIEVAL: дляConnectorsс синхронизацией прав
Python
Дальнейшие шаги
Руководство: индексирование файлов с помощью Ingestion API
Узнайте, как индексировать файлы с помощью Ingestion API
Руководство: отправка сообщения чата
Простой пример программной отправки сообщения

