agent_framework Пакет
Модули
| exceptions | |
| observability |
Классы
| AIFunction |
Инструмент, который упаковывает функцию Python, чтобы сделать ее вызываемой моделью ИИ. Этот класс упаковывает функцию Python, чтобы сделать ее вызываемой моделями ИИ с автоматической проверкой параметров и созданием схемы JSON. Инициализация AIFunction. |
| AgentExecutor |
встроенный исполнитель, который упаковывает агент для обработки сообщений. AgentExecutor адаптирует его поведение на основе режима выполнения рабочего процесса:
Исполнитель автоматически обнаруживает режим с помощью WorkflowContext.is_streaming(). Инициализировать исполнителя с уникальным идентификатором. |
| AgentExecutorRequest |
Запрос исполнителя агента. |
| AgentExecutorResponse |
Ответ от исполнителя агента. |
| AgentInputRequest |
Запрос на ввод данных человека перед запуском агента в рабочих процессах построителя высокого уровня. Создается с помощью RequestInfoEvent при приостановке рабочего процесса перед выполнением агента. Ответ внедряется в беседу как пользовательское сообщение, чтобы управлять поведением агента. Это стандартный тип запроса, используемый .with_request_info() в SequentialBuilder, ConcurrentBuilder, GroupChatBuilder и HandoffBuilder. |
| AgentMiddleware |
Абстрактный базовый класс для по промежуточного слоя агента, который может перехватывать вызовы агента. ПО промежуточного слоя агента позволяет перехватывать и изменять вызовы агента до и после выполнения. Вы можете проверить сообщения, изменить контекст, переопределить результаты или завершить выполнение раньше. Замечание AgentMiddleware — это абстрактный базовый класс. Необходимо выполнить подкласс и реализовать его Метод process() для создания по промежуточного слоя пользовательского агента. |
| AgentProtocol |
Протокол для агента, который можно вызвать. Этот протокол определяет интерфейс, который должны реализовывать все агенты, включая свойства для идентификации и методов для выполнения. Замечание Протоколы используют структурное подтипирование (типирование утки). Классы не нужны для явного наследования от этого протокола, который будет считаться совместимым. Это позволяет создавать полностью настраиваемые агенты без использования все базовые классы Agent Framework. |
| AgentRunContext |
Объект контекста для вызовов ПО промежуточного слоя агента. Этот контекст передается через конвейер ПО промежуточного слоя агента и содержит все сведения о вызове агента. Инициализируйте agentRunContext. |
| AgentRunEvent |
Событие, активированное при завершении запуска агента. Инициализация события запуска агента. |
| AgentRunResponse |
Представляет ответ на запрос запуска агента. Предоставляет одно или несколько сообщений ответа и метаданных об ответе. Типичный ответ содержит одно сообщение, но может содержать несколько сообщений в сценариях с вызовами функций, извлечением RAG или сложной логикой. Инициализация agentRunResponse. |
| AgentRunResponseUpdate |
Представляет один блок ответа потоковой передачи из агента. Инициализация агентаRunResponseUpdate. |
| AgentRunUpdateEvent |
Событие, активируется при потоковой передаче сообщений агента. Инициализация события потоковой передачи агента. |
| AgentThread |
Класс потока агента может представлять как локальный управляемый поток, так и поток, управляемый службой. Поддерживает Инициализация AgentThread, не используйте этот метод вручную, всегда используйте: Замечание Можно задать service_thread_id или message_store, но не оба. |
| AggregateContextProvider |
ContextProvider, содержащий несколько поставщиков контекста. Перед возвратом он делегирует события нескольким поставщикам контекстов и объединяет ответы от этих событий. Это позволяет объединить несколько поставщиков контекста в один поставщик. Замечание АгрегатContextProvider создается автоматически при передаче одного контекста. поставщик или последовательность поставщиков контекста конструктору агента. Инициализировать АгрегатContextProvider с помощью поставщиков контекста. |
| BaseAgent |
Базовый класс для всех агентов Agent Framework. Этот класс предоставляет основные функциональные возможности для реализации агента, включая поставщиков контекстов, поддержку по промежуточного слоя и управление потоками. Замечание Не удается создать экземпляр BaseAgent напрямую, так как он не реализует run(), run_stream() и другие методы, необходимые агентуProtocol. Используйте конкретную реализацию, например ChatAgent, или создайте подкласс. Инициализация экземпляра BaseAgent. |
| BaseAnnotation |
Базовый класс для всех типов заметки ИИ. Инициализация BaseAnnotation. |
| BaseChatClient |
Базовый класс для клиентов чата. Этот абстрактный базовый класс предоставляет основные функциональные возможности для реализации клиентов чата, включая поддержку по промежуточного слоя, подготовку сообщений и нормализацию инструментов. Замечание BaseChatClient нельзя создать экземпляр напрямую, так как это абстрактный базовый класс. Подклассы должны реализовывать _inner_get_response() и _inner_get_streaming_response(). Инициализация экземпляра BaseChatClient. |
| BaseContent |
Представляет содержимое, используемое службами ИИ. Инициализация BaseContent. |
| Case |
Оболочка среды выполнения, объединяющая предикат регистра коммутатора с целевым объектом. Каждый случай связывает логический предикат с исполнителем, который должен обрабатывать сообщение, когда предикат оценивается как True. Среда выполнения сохраняет этот упрощенный контейнер отдельно от сериализуемого switchCaseEdgeGroupCase , чтобы выполнение могли работать с динамическими вызываемыми файлами без загрязнения сохраняемого состояния. |
| ChatAgent |
Агент клиента чата. Это основная реализация агента, которая использует клиент чата для взаимодействия с языковыми моделями. Она поддерживает средства, поставщики контекстов, по промежуточному по промежуточному слоям, а также потоковые и непоточные ответы. Инициализация экземпляра ChatAgent. Замечание Набор параметров из frequency_penalty в request_kwargs используется для вызовите клиент чата. Они также могут быть переданы обоим методам выполнения. Когда оба заданы, те, которые передаются в методы выполнения, имеют приоритет. |
| ChatClientProtocol |
Протокол для клиента чата, который может создавать ответы. Этот протокол определяет интерфейс, который должны реализовать все клиенты чата, включая методы для создания потоковых и непотоковых ответов. Замечание Протоколы используют структурное подтипирование (типирование утки). Классы не нужны для явного наследования от этого протокола, который будет считаться совместимым. |
| ChatContext |
Объект контекста для вызовов ПО промежуточного слоя чата. Этот контекст передается через конвейер ПО промежуточного слоя чата и содержит все сведения о запросе чата. Инициализация ChatContext. |
| ChatMessage |
Представляет сообщение чата. Инициализация ChatMessage. |
| ChatMessageStore |
Реализация в памяти ChatMessageStoreProtocol, в которой хранятся сообщения в списке. Эта реализация предоставляет простое хранилище на основе списка для сообщений чата с поддержкой сериализации и десериализации. Он реализует все необходимые методы Хранилище хранит сообщения в памяти и предоставляет методы сериализации и десериализации состояния в целях сохраняемости. Создайте ChatMessageStore для использования в потоке. |
| ChatMessageStoreProtocol |
Определяет методы хранения и извлечения сообщений чата, связанных с определенным потоком. Реализации этого протокола отвечают за управление хранилищем сообщений чата, включая обработку больших объемов данных путем усечения или суммирования сообщений по мере необходимости. |
| ChatMiddleware |
Абстрактный базовый класс для по промежуточного слоя чата, который может перехватывать запросы клиентов чата. По промежуточному слоя чата позволяет перехватывать и изменять запросы клиентов чата до и после выполнения. Вы можете изменять сообщения, добавлять системные запросы, запросы журналов или переопределять ответы чата. Замечание ChatMiddleware — это абстрактный базовый класс. Необходимо выполнить подкласс и реализовать его Метод process() для создания пользовательского по промежуточного слоя чата. |
| ChatOptions |
Общие параметры запроса для служб ИИ. Инициализация ChatOptions. |
| ChatResponse |
Представляет ответ на запрос чата. Инициализирует ChatResponse указанными параметрами. |
| ChatResponseUpdate |
Представляет один блок ответа потоковой передачи из ChatClient. Инициализирует chatResponseUpdate указанными параметрами. |
| CheckpointStorage |
Протокол серверной части хранилища контрольных точек. |
| CitationAnnotation |
Представляет заметку ссылки. Инициализация citationAnnotation. |
| ConcurrentBuilder |
Построитель высокого уровня для параллельных рабочих процессов агента.
Использование:
|
| Context |
Класс, содержащий любой контекст, который должен быть предоставлен модели ИИ, как показано в ContextProvider. Каждый ContextProvider имеет возможность предоставлять собственный контекст для каждого вызова. Класс Context содержит дополнительный контекст, предоставленный ContextProvider. Этот контекст будет сочетаться с контекстом, предоставленным другими поставщиками, прежде чем передаваться в модель ИИ. Этот контекст является вызовом и не будет храниться в журнале чата. Создайте объект Context. |
| ContextProvider |
Базовый класс для всех поставщиков контекста. Поставщик контекста — это компонент, который можно использовать для улучшения управления контекстом ИИ. Он может прослушивать изменения в беседе и предоставлять дополнительный контекст модели ИИ непосредственно перед вызовом. Замечание ContextProvider — это абстрактный базовый класс. Необходимо выполнить подкласс и реализовать его Метод invoking() для создания пользовательского поставщика контекста. В идеале, вы должны также реализуйте методы invoked() и thread_created() для отслеживания беседы состояние, но это необязательно. |
| DataContent |
Представляет содержимое двоичных данных с соответствующим типом мультимедиа (также известным как тип MIME). Это важно Это относится к двоичным данным, которые представляются как универсальный код ресурса (URI) данных, а не для сетевых ресурсов. Используйте UriContent для онлайн-ресурсов. Инициализирует экземпляр DataContent. Это важно Это относится к двоичным данным, которые представляются как универсальный код ресурса (URI) данных, а не для сетевых ресурсов. Используйте UriContent для онлайн-ресурсов. |
| Default |
Представление ветви по умолчанию в группе вариантов. Ветвь по умолчанию вызывается только в том случае, если другие предикаты не соответствуют. На практике гарантируется, что маршрутизация никогда не создает пустой целевой объект. |
| Edge |
Модель направленной, необязательно условной передачи между двумя исполнителями. Каждый край записывает минимальные метаданные, необходимые для перемещения сообщения от одного исполнителя к другому внутри графа рабочего процесса. При необходимости он внедряет логический предикат, который решает, следует ли ребра принимать во время выполнения. Сериализуя край вниз до примитивов, мы можем восстановить топологию рабочего процесса независимо от исходного процесса Python. Инициализация полностью указанного края между двумя исполнителями рабочих процессов. |
| EdgeDuplicationError |
Исключение, возникающее при обнаружении повторяющихся ребер в рабочем процессе. |
| ErrorContent |
Представляет ошибку. Примечания: обычно используется для неустранимых ошибок, где что-то пошло не так в рамках операции, но операция по-прежнему была в состоянии продолжить. Инициализирует экземпляр ErrorContent. |
| Executor |
Базовый класс для всех исполнителей рабочих процессов, обрабатывающих сообщения и выполняющие вычисления. ОбзорИсполнителями являются основные стандартные блоки рабочих процессов, представляющие отдельные единицы обработки, которые получают сообщения, выполняют операции и создают выходные данные. Каждый исполнитель однозначно идентифицируется и может обрабатывать определенные типы сообщений с помощью декорированных методов обработчика. Система типовУ исполнителей есть система богатых типов, которая определяет их возможности: Типы входных данныхТипы сообщений, которые может обрабатывать исполнитель, могут обнаруживать сигнатуры метода обработчика:
Доступ через свойство input_types . Типы выходных данныхТипы сообщений, которые исполнитель может отправлять другим исполнителям через ctx.send_message():
Доступ через свойство output_types . Типы выходных данных рабочего процессаТипы данных, которые исполнитель может выдавать в виде выходных данных уровня рабочего процесса с помощью ctx.yield_output():
Доступ через свойство workflow_output_types . Обнаружение обработчикаИсполнители обнаруживают свои возможности с помощью декорированных методов: @handler ДекораторПомечает методы, обрабатывающие входящие сообщения:
Перехват запросов вложенного рабочего процессаИспользуйте @handler методы для перехвата запросов вложенного рабочего процесса:
Типы контекстаМетоды обработчика получают различные варианты WorkflowContext на основе заметок типа: WorkflowContext (без параметров типа)Для обработчиков, которые выполняют только побочные эффекты без отправки сообщений или получения выходных данных:
WorkflowContext[T_Out]Включает отправку сообщений типа T_Out через ctx.send_message():
WorkflowContext[T_Out, T_W_Out]Включает отправку сообщений (T_Out) и получение выходных данных рабочего процесса (T_W_Out):
Исполнители функцийПростые функции можно преобразовать в исполнителей с помощью декоратора @executor :
Композиция вложенных рабочих процессовИсполнители могут содержать вложенные рабочие процессы с помощью WorkflowExecutor. Вложенные рабочие процессы могут выполнять запросы, которые могут перехватывать родительские рабочие процессы. Дополнительные сведения о шаблонах композиции рабочих процессов и обработке запросов и ответов см. в документации по WorkflowExecutor. Управление состояниямиИсполнители могут содержать состояния, которые сохраняются во время выполнения рабочих процессов и контрольных точек. Переопределите методы on_checkpoint_save и on_checkpoint_restore для реализации пользовательской логики сериализации и восстановления состояния. Заметки о реализации
Инициализировать исполнителя с уникальным идентификатором. |
| ExecutorCompletedEvent |
Событие, активированное при завершении обработчика исполнителя. Инициализировать событие исполнителя с идентификатором исполнителя и необязательными данными. |
| ExecutorEvent |
Базовый класс для событий исполнителя. Инициализировать событие исполнителя с идентификатором исполнителя и необязательными данными. |
| ExecutorFailedEvent |
Событие, вызываемое при возникновении ошибки обработчика исполнителя. |
| ExecutorInvokedEvent |
Событие, активируется при вызове обработчика исполнителя. Инициализировать событие исполнителя с идентификатором исполнителя и необязательными данными. |
| FanInEdgeGroup |
Представляет конвергентный набор ребер, которые питают одного нижестоящего исполнителя. Группы вентиляторов обычно используются, когда несколько этапов вышестоящего потока независимо создают сообщения, которые должны поступать на один и тот же подчиненный процессор. Создайте сопоставление вентилятора, которое объединяет несколько источников в один целевой объект. |
| FanOutEdgeGroup |
Представляет группу edge в стиле трансляции с необязательной логикой выбора. Вентилятор перенаправит сообщение, созданное одним исходным исполнителем, одному или нескольким нижестоящим исполнителям. Во время выполнения мы можем дополнительно сузить целевые объекты, выполнив selection_func , который проверяет полезные данные и возвращает подмножество идентификаторов, которые должны получать сообщение. Создайте сопоставление вентилятора из одного источника с несколькими целевыми объектами. |
| FileCheckpointStorage |
Хранилище контрольных точек на основе файлов для сохраняемости. Инициализация хранилища файлов. |
| FinishReason |
Представляет причину завершения ответа чата. Инициализировать FinishReason со значением. |
| FunctionApprovalRequestContent |
Представляет запрос на утверждение пользователя вызова функции. Инициализирует экземпляр FunctionApprovalRequestContent. |
| FunctionApprovalResponseContent |
Представляет ответ для утверждения пользователем вызова функции. Инициализирует экземпляр FunctionApprovalResponseContent. |
| FunctionCallContent |
Представляет запрос вызова функции. Инициализирует экземпляр FunctionCallContent. |
| FunctionExecutor |
Исполнитель, который упаковывает определяемую пользователем функцию. Этот исполнитель позволяет пользователям определять простые функции (как синхронизацию, так и асинхронную) и использовать их в качестве исполнителей рабочих процессов без необходимости создавать полные классы исполнителя. Синхронные функции выполняются в пуле потоков с помощью asyncio.to_thread(), чтобы избежать блокировки цикла событий. Инициализировать FunctionExecutor с определяемой пользователем функцией. |
| FunctionInvocationConfiguration |
Настройка вызова функции в клиентах чата. Этот класс создается автоматически на каждом клиенте чата, поддерживающем вызов функции. Это означает, что в большинстве случаев можно просто изменить атрибуты экземпляра, а затем создать новый. Инициализация FunctionInvocationConfiguration. |
| FunctionInvocationContext |
Объект Context для вызовов ПО промежуточного слоя функций. Этот контекст передается через конвейер ПО промежуточного слоя функций и содержит все сведения о вызове функции. Инициализировать FunctionInvocationContext. |
| FunctionMiddleware |
Абстрактный базовый класс для по промежуточного слоя функций, который может перехватывать вызовы функций. ПО промежуточного слоя функций позволяет перехватывать и изменять вызовы функций и инструментов до и после выполнения. Аргументы, результаты кэша, вызовы журналов или переопределение выполнения функции можно проверить. Замечание FunctionMiddleware — это абстрактный базовый класс. Необходимо выполнить подкласс и реализовать его Метод process() для создания пользовательского ПО промежуточного слоя функций. |
| FunctionResultContent |
Представляет результат вызова функции. Инициализирует экземпляр FunctionResultContent. |
| GraphConnectivityError |
Исключение возникает при обнаружении проблем с подключением графа. |
| GroupChatBuilder |
Построитель высокого уровня для рабочих процессов чата, направленных на менеджеров, с динамической оркестрацией. GroupChat координирует беседы с несколькими агентами с помощью диспетчера, который выбирает, какой участник говорит далее. Диспетчер может быть простой функцией Python (set_select_speakers_func) или селектором на основе агента через set_manager. Эти два подхода являются взаимоисключающими. Основной рабочий процесс:
Шаблоны выбора говорящего: Шаблон 1. Простой выбор на основе функций (рекомендуется)
Шаблон 2. Выбор на основе LLM
Шаблон 3. Запрос сведений об обратной связи по середине беседы
Спецификация участника: Два способа указать участников:
Структура моментальных снимков состояния: Объект GroupChatStateSnapshot, переданный в set_select_speakers_func, содержит следующее:
Важные ограничения:
Инициализировать GroupChatBuilder. |
| GroupChatDirective |
Инструкция, выдаваемая реализацией диспетчера групповых чатов. |
| HandoffBuilder |
Fluent builder для рабочих процессов передачи бесед с координатором и специалистами. Шаблон передачи позволяет агенту-координатору направлять запросы к специалистам. Режим взаимодействия определяет, запрашивает ли рабочий процесс входные данные пользователя после каждого ответа агента или завершается автономно после завершения реагирования агентов. Условие завершения определяет, когда рабочий процесс должен перестать запрашивать входные данные и завершить работу. Шаблоны маршрутизации: Single-Tier (по умолчанию): Только координатор может передать специалистам. По умолчанию после ответа любого специалиста элемент управления возвращается пользователю для получения дополнительных входных данных. Это создает циклический поток: пользователь -> координатор -> [необязательный специалист] -> пользователь -> координатор -> ... Используйте with_interaction_mode("автономный") для пропуска запроса дополнительных входных данных пользователей и получения окончательной беседы при реагировании агента без делегирования. Многоуровневый (расширенный): Специалисты могут передать другим специалистам с помощью .add_handoff(). Это обеспечивает большую гибкость для сложных рабочих процессов, но становится менее управляемым, чем шаблон с одним уровнем. Пользователи теряют видимость в режиме реального времени во время промежуточных шагов во время передачи специалистов к специалисту (хотя полная история беседы, включая все передачи, сохраняется и может быть проверена после этого). Основные возможности:
Использование (Single-Tier):
Многоуровневая маршрутизация с .add_handoff():
Используйте фабрики участников для изоляции состояния: Условие пользовательского завершения:
Контрольная точка:
Инициализировать HandoffBuilder для создания рабочих процессов передачи бесед. Построитель запускается в ненастроенном состоянии и требует вызова:
Необязательные методы конфигурации позволяют настраивать управление контекстом, логику завершения и сохраняемость. Замечание Участники должны иметь стабильные имена и идентификаторы, так как рабочий процесс сопоставляет Аргументы средства передачи для этих идентификаторов. Имена агентов должны совпадать строки, создаваемые инструментом передачи координатора (например, инструментом, который выходные данные {"handoff_to": "выставление счетов"} требует выставления счетов с именем агента). |
| HandoffUserInputRequest |
Запрос сообщения, выдаваемого, когда рабочий процесс нуждается в свежих входных данных пользователя. Примечание. Поле беседы намеренно исключается из сериализации контрольных точек, чтобы предотвратить дублирование. Беседа сохраняется в состоянии координатора и будет восстановлена при восстановлении. См. вопрос 2667. |
| HostedCodeInterpreterTool |
Представляет размещенное средство, которое можно указать в службе ИИ, чтобы он мог выполнять созданный код. Это средство не реализует саму интерпретацию кода. Он служит маркером для информирования службы о том, что он может выполнить созданный код, если служба может сделать это. Инициализация HostedCodeInterpreterTool. |
| HostedFileContent |
Представляет содержимое размещенного файла. Инициализирует экземпляр HostedFileContent. |
| HostedFileSearchTool |
Представляет средство поиска файлов, которое можно указать в службе ИИ, чтобы он мог выполнять поиск файлов. Инициализация FileSearchTool. |
| HostedMCPSpecificApproval |
Представляет конкретный режим для размещенного средства. При использовании этого режима пользователь должен указать, какие средства всегда или никогда не требуют утверждения. Этот словарь представлен в виде словаря с двумя необязательными ключами: |
| HostedMCPTool |
Представляет средство MCP, управляемое и выполняемое службой. Создайте размещенное средство MCP. |
| HostedVectorStoreContent |
Представляет содержимое размещенного векторного хранилища. Инициализирует экземпляр HostedVectorStoreContent. |
| HostedWebSearchTool |
Представляет средство поиска в Интернете, которое можно указать в службе ИИ, чтобы он мог выполнять веб-поиск. Инициализация HostedWebSearchTool. |
| InMemoryCheckpointStorage |
Хранилище контрольных точек в памяти для тестирования и разработки. Инициализация хранилища памяти. |
| InProcRunnerContext |
Контекст выполнения в процессе для локального выполнения и необязательных контрольных точек. Инициализировать контекст выполнения в процессе. |
| MCPStdioTool |
Средство MCP для подключения к серверам MCP на основе stdio. Этот класс подключается к серверам MCP, которые взаимодействуют через стандартные входные и выходные данные, обычно используемые для локальных процессов. Инициализировать средство MCP stdio. Замечание Аргументы используются для создания объекта StdioServerParameters, затем используется для создания клиента stdio. См. mcp.client.stdio.stdio_client и mcp.client.stdio.stdio_server_parameters для получения дополнительных сведений. |
| MCPStreamableHTTPTool |
Средство MCP для подключения к серверам MCP на основе HTTP. Этот класс подключается к серверам MCP, взаимодействующим через потоковый ПРОТОКОЛ HTTP/SSE. Инициализировать средство HTTP для потоковой передачи MCP. Замечание Аргументы используются для создания потокового HTTP-клиента. Дополнительные сведения см. в разделе mcp.client.streamable_http.streamablehttp_client. Все дополнительные аргументы, переданные конструктору, будут переданы в конструктор клиента HTTP, доступный для потоковой передачи. |
| MCPWebsocketTool |
Средство MCP для подключения к серверам MCP на основе WebSocket. Этот класс подключается к серверам MCP, взаимодействующим через WebSocket. Инициализировать средство MCP WebSocket. Замечание Аргументы используются для создания клиента WebSocket. Дополнительные сведения см. в mcp.client.websocket.websocket_client. Все дополнительные аргументы, переданные конструктору, будут переданы в Конструктор клиента WebSocket. |
| MagenticBuilder |
Построитель Fluentic для создания рабочих процессов оркестрации magentic One с несколькими агентами. Рабочие процессы Magentic One используют диспетчер с питанием LLM для координации нескольких агентов с помощью динамического планирования задач, отслеживания хода выполнения и адаптивного перепланирования. Менеджер создает планы, выбирает агентов, отслеживает ход выполнения и определяет, когда нужно перепланировать или завершить. Построитель предоставляет простой API для настройки участников, руководителя, необязательного проверки плана, контрольных точек и обратных вызовов событий. Поддержка "Человек в цикле": Magentic предоставляет специализированные механизмы HITL через:
Эти события выдают события MagenticHumanInterventionRequest , предоставляющие структурированные варианты принятия решений (УТВЕРЖДЕНИЕ, ИЗМЕНЕНИЕ, ПРОДОЛЖЕНИЕ, REPLAN, РУКОВОДСТВО), подходящие для оркестрации на основе планирования Magentic. Использование:
С помощью пользовательского диспетчера:
|
| MagenticContext |
Контекст для диспетчера magentic. |
| MagenticManagerBase |
Базовый класс для диспетчера Magentic One. |
| ManagerDirectiveModel |
Pydantic model for структурированных выходных данных директив диспетчера. Создайте новую модель, анализируя и проверяя входные данные из аргументов ключевых слов. Вызывает [ValidationError][pydantic_core. ValidationError] если входные данные не могут быть проверены для формирования допустимой модели. self явно позиционирует только для разрешения себя в качестве имени поля. |
| ManagerSelectionRequest |
Запрос, отправленный агенту диспетчера для выбора следующего докладчика. Этот класс данных упаковывал полный контекст беседы и контекст задачи для агента руководителя для анализа и принятия решения о выборе говорящего. |
| ManagerSelectionResponse |
Ответ от агента руководителя с решением выбора говорящего. Агент диспетчера должен создать эту структуру (или совместимый дикт/JSON), чтобы передать свое решение обратно оркестратору. Создайте новую модель, анализируя и проверяя входные данные из аргументов ключевых слов. Вызывает [ValidationError][pydantic_core. ValidationError] если входные данные не могут быть проверены для формирования допустимой модели. self явно позиционирует только для разрешения себя в качестве имени поля. |
| Message |
Класс, представляющий сообщение в рабочем процессе. |
| OrchestrationState |
Единый контейнер состояния для контрольных точек оркестратора. Этот класс данных стандартизирует сериализацию контрольных точек во всех трех шаблонах группового чата, позволяя расширениям, зависящим от шаблона, через метаданные. Общие атрибуты охватывают общие проблемы оркестрации (задача, беседа, циклический отслеживание). Состояние конкретного шаблона переходит в диктовку метаданных. |
| RequestInfoEvent |
Событие, активируется при запросе внешней информации исполнителя рабочего процесса. Инициализировать событие сведений о запросе. |
| RequestInfoInterceptor |
Внутренний исполнитель, который приостанавливает рабочий процесс для ввода данных человека перед запуском агента. Этот исполнитель вставляется в граф рабочего процесса построителями при вызове .with_request_info(). Он перехватывает сообщения AgentExecutorRequest ПЕРЕД запуском агента и приостанавливает рабочий процесс через ctx.request_info() с агентом AgentInputRequest. Когда ответ получен, обработчик ответа внедряет входные данные в виде сообщения пользователя в беседу и пересылает запрос агенту. Необязательный параметр agent_filter позволяет ограничить, какие агенты активируют паузу. Если идентификатор целевого агента не находится в наборе фильтров, запрос пересылается без приостановки. Инициализировать исполнителя перехватчика сведений запроса. |
| Role |
Описывает предназначенную цель сообщения в взаимодействии чата. Свойства: SYSTEM: роль, которая указывает или задает поведение системы ИИ. USER: роль, которая предоставляет входные данные пользователя для взаимодействия чата. ПОМОЩНИК. Роль, которая предоставляет ответы на системные, запрашиваемые пользователем входные данные. ИНСТРУМЕНТ. Роль, которая предоставляет дополнительные сведения и ссылки в ответ на запросы на использование средства. Инициализация роли со значением. |
| Runner |
Класс для запуска рабочего процесса в pregel supersteps. Инициализировать средство выполнения с помощью ребер, общего состояния и контекста. |
| RunnerContext |
Протокол для контекста выполнения, используемого средством выполнения. Один контекст, поддерживающий обмен сообщениями, событиями и необязательными контрольными точками. Если хранилище контрольных точек не настроено, методы контрольных точек могут вызываться. |
| SequentialBuilder |
Построитель высокого уровня для последовательных рабочих процессов агента или исполнителя с общим контекстом.
Использование:
|
| SharedState |
Класс для управления общим состоянием в рабочем процессе. SharedState предоставляет потокобезопасный доступ к данным о состоянии рабочего процесса, которым необходимо предоставить общий доступ между исполнителями во время выполнения рабочего процесса. Зарезервированные ключи: следующие ключи зарезервированы для внутреннего использования платформы и не должны изменяться пользовательским кодом:
Предупреждение Не используйте ключи, начиная с подчеркивания (_), так как они могут быть зарезервированы для внутренние операции платформы. Инициализация общего состояния. |
| SingleEdgeGroup |
Удобная оболочка для одиночного края, сохраняющая однородную форму API группы. Создайте группу "один к одному" между двумя исполнителями. |
| StandardMagenticManager |
Стандартный диспетчер magentic, выполняющий реальные вызовы LLM через ChatAgent. Диспетчер создает запросы, которые отражают исходную оркестрацию Magentic One:
Инициализируйте стандартный диспетчер magentic. |
| SubWorkflowRequestMessage |
Сообщение, отправленное из вложенного рабочего процесса исполнителя в родительском рабочем процессе для запроса сведений. Это сообщение упаковывает объект RequestInfoEvent, создаваемый исполнителем в вложенном рабочем процессе. |
| SubWorkflowResponseMessage |
Сообщение, отправленное из родительского рабочего процесса в вложенный рабочий процесс через WorkflowExecutor, чтобы предоставить запрошенные сведения. Это сообщение упаковывает данные ответа вместе с исходным requestInfoEvent, созданным исполнителем подзаработки рабочего процесса. |
| SuperStepCompletedEvent |
Событие активируется при завершении суперстепа. Инициализировать событие superstep. |
| SuperStepStartedEvent |
Событие, активируется при запуске суперстепа. Инициализировать событие superstep. |
| SwitchCaseEdgeGroup |
Вариант вентилятора, который имитирует традиционный поток управления коммутатором или регистром. Каждый случай проверяет полезные данные сообщения и решает, следует ли обрабатывать сообщение. Ровно один случай или ветвь по умолчанию возвращает целевой объект во время выполнения, сохраняя семантику с одним диспетчером. Настройте структуру маршрутизации коммутатора или регистра для одного исходного исполнителя. |
| SwitchCaseEdgeGroupCase |
Сохраняемое описание одной условной ветви в регистре коммутатора. В отличие от объекта case среды выполнения, этот сериализуемый вариант сохраняет только целевой идентификатор и описательное имя предиката. Когда базовый вызывающий объект недоступен во время десериализации, мы заменим заполнитель прокси-сервера, который не работает громко, обеспечивая немедленное отображение отсутствующих зависимостей. Запишите метаданные маршрутизации для ветви условного регистра. |
| SwitchCaseEdgeGroupDefault |
Сохраняемый дескриптор для резервной ветви группы вариантов. Ветвь по умолчанию гарантированно существует и вызывается, когда все остальные предикаты регистра не соответствуют полезным данным. Укажите ветвь по умолчанию к заданному идентификатору исполнителя. |
| TextContent |
Представляет текстовое содержимое в чате. Инициализирует экземпляр TextContent. |
| TextReasoningContent |
Представляет содержимое, указывающее текст в чате. Примечания: этот класс и TextContent поверхностно похожи, но отличаются. Инициализирует экземпляр TextReasoningContent. |
| TextSpanRegion |
Представляет область текста, которая была аннотирована. Инициализация TextSpanRegion. |
| ToolMode |
Определяет, если и как средства используются в запросе чата. Инициализация ToolMode. |
| ToolProtocol |
Представляет универсальный инструмент. Этот протокол определяет интерфейс, который все средства должны реализовывать для совместимости с платформой агента. Он реализуется различными классами инструментов, такими как HostedMCPTool, HostedWebSearchTool и AIFunction. AiFunction обычно создается ai_function декоратором. Так как каждый соединитель должен анализировать средства по-разному, пользователи могут передать дикт, чтобы указать инструмент для конкретной службы, если абстракция недоступна. |
| TypeCompatibilityError |
Исключение возникает при обнаружении несовместимости типов между подключенными исполнителями. |
| UriContent |
Представляет содержимое URI. Это важно Это используется для содержимого, определяемого универсальным кодом ресурса (URI), например изображения или файла. Для URI (двоичных) данных используйте DataContent. Инициализирует экземпляр UriContent. Примечания. Это используется для содержимого, определяемого универсальным кодом ресурса (URI), например изображения или файла. Для URI (двоичных) данных используйте DataContent . |
| UsageContent |
Представляет сведения об использовании, связанные с запросом и ответом чата. Инициализирует экземпляр UsageContent. |
| UsageDetails |
Предоставляет сведения об использовании запроса и ответа. Инициализирует экземпляр UsageDetails. |
| Workflow |
Подсистема выполнения на основе графа, которая управляет подключенными исполнителями. ОбзорРабочий процесс выполняет направленный граф исполнителей, подключенных через пограничные группы с помощью модели pregel-like, выполняясь в суперстежках, пока граф не станет неактивным. Рабочие процессы создаются с помощью класса WorkflowBuilder. Не создавайте экземпляр этого класса напрямую. Модель выполненияИсполнители выполняются в синхронизированных суперстепах, где каждый исполнитель:
Сообщения между исполнителями доставляются в конце каждого суперстепа и не отображаются в потоке событий. Можно наблюдать только события уровня рабочего процесса (выходные данные, пользовательские события) и события состояния вызывающим лицам. Типы входных и выходных данныхТипы рабочих процессов обнаруживаются во время выполнения, проверяя:
Методы выполненияРабочий процесс предоставляет два основных API выполнения, каждый из которых поддерживает несколько сценариев:
Оба метода поддерживают:
Управление состояниямиЭкземпляры рабочих процессов содержат состояния и состояния, сохраняются в вызовах для выполнения и run_stream. Чтобы выполнить несколько независимых запусков, создайте отдельные экземпляры рабочих процессов с помощью WorkflowBuilder. Внешние входные запросыИсполнители в рабочем процессе могут запрашивать внешние входные данные с помощью ctx.request_info():
Назначение контрольных точекКонтрольные точки можно настроить во время сборки или во время выполнения: Время сборки (через WorkflowBuilder): рабочий процесс = WorkflowBuilder().with_checkpointing(storage).build() Среда выполнения (с помощью параметров run/run_stream): result = await workflow.run(message, checkpoint_storage=runtime_storage) При включении контрольные точки создаются в конце каждого суперстепа, захватывая:
КомпозицияРабочие процессы можно вложить с помощью WorkflowExecutor, который упаковывает дочерний рабочий процесс в качестве исполнителя. Типы входных и выходных данных вложенного рабочего процесса становятся частью типов WorkflowExecutor. При вызове WorkflowExecutor запускает вложенный рабочий процесс для завершения и обработки выходных данных. Инициализация рабочего процесса со списком ребер. |
| WorkflowAgent |
Подкласс агента , который упаковывает рабочий процесс и предоставляет его в качестве агента. Инициализация WorkflowAgent. |
| WorkflowBuilder |
Класс построителя для создания рабочих процессов. Этот класс предоставляет простой API для определения графов рабочих процессов путем подключения исполнителей к ребрам и настройке параметров выполнения. Вызов build для создания неизменяемого Workflow экземпляра. Инициализирует WorkflowBuilder пустым списком ребер и не запускает исполнителя. |
| WorkflowCheckpoint |
Представляет полную контрольную точку состояния рабочего процесса. Контрольные точки фиксируют полное состояние выполнения рабочего процесса в определенной точке, что позволяет приостановить и возобновить рабочие процессы. Замечание Дикт shared_state может содержать зарезервированные ключи, управляемые платформой. Дополнительные сведения о зарезервированных ключах см. в документации по классу SharedState. |
| WorkflowCheckpointSummary |
Читаемая пользователем сводка контрольной точки рабочего процесса. |
| WorkflowContext |
Контекст выполнения, позволяющий исполнителям взаимодействовать с рабочими процессами и другими исполнителями. ОбзорWorkflowContext предоставляет управляемый интерфейс для исполнителей для отправки сообщений, получения выходных данных, управления состоянием и взаимодействия с более широкой экосистемой рабочих процессов. Он обеспечивает безопасность типов с помощью универсальных параметров, предотвращая прямой доступ к внутренним компонентам среды выполнения. Параметры типаКонтекст параметризован для обеспечения безопасности типов для различных операций: WorkflowContext (нет параметров)Для исполнителей, которые выполняют только побочные эффекты без отправки сообщений или получения выходных данных:
WorkflowContext[T_Out]Позволяет отправлять сообщения типа T_Out другим исполнителям:
WorkflowContext[T_Out, T_W_Out]Включает отправку сообщений (T_Out) и получение выходных данных рабочего процесса (T_W_Out):
Типы союзовНесколько типов можно указать с помощью нотации объединения:
Инициализировать контекст исполнителя с заданным контекстом рабочего процесса. |
| WorkflowErrorDetails |
Структурированные сведения об ошибках для отображения в событиях или результатах ошибок. |
| WorkflowEvent |
Базовый класс для событий рабочего процесса. Инициализация события рабочего процесса с необязательными данными. |
| WorkflowExecutor |
Исполнитель, который упаковывает рабочий процесс для включения иерархической композиции рабочих процессов. ОбзорWorkflowExecutor делает рабочий процесс одним исполнителем в родительском рабочем процессе, обеспечивая вложенные архитектуры рабочих процессов. Он обрабатывает полный жизненный цикл выполнения вложенного рабочего процесса, включая обработку событий, перенаправление выходных данных и координацию запросов и ответов между родительскими и дочерними рабочими процессами. Модель выполненияПри вызове WorkflowExecutor:
Обработка потока событийWorkflowExecutor обрабатывает события после завершения вложенного рабочего процесса: Пересылка выходных данныхВсе выходные данные из дочернего рабочего процесса автоматически перенаправляются родительскому элементу: Если allow_direct_output имеет значение False (по умолчанию):
Если allow_direct_output имеет значение True:Координация запросов и ответовЕсли вложенные рабочие процессы требуют внешних сведений:
Управление состояниямиWorkflowExecutor поддерживает состояние выполнения в циклах запроса и ответа:
Интеграция системы типовWorkflowExecutor наследует его сигнатуру типа от упаковаемого рабочего процесса: Типы входных данныхСоответствует типам входных данных начального исполнителя в оболочке рабочего процесса:
Типы выходных данныхОбъединяет выходные данные вложенных рабочих процессов с типами координации запросов:
Обработка ошибокWorkflowExecutor распространяет ошибки вложенных рабочих процессов:
Поддержка параллельного выполненияWorkflowExecutor полностью поддерживает несколько параллельных выполнения вложенных рабочих процессов: изоляция состояния Per-ExecutionКаждое вызов вложенного рабочего процесса создает изолированный ExecutionContext:
Координация запросов и ответовОтветы правильно перенаправляются в исходное выполнение:
Управление памятью
Важные аспектыОбщий экземпляр рабочего процесса: все параллельные выполнения используют один и тот же базовый экземпляр рабочего процесса. Для правильной изоляции убедитесь, что упакованный рабочий процесс и его исполнители являются без отслеживания состояния.
Интеграция с родительскими рабочими процессамиРодительские рабочие процессы могут перехватывать запросы вложенных рабочих процессов: Заметки о реализации
Инициализация WorkflowExecutor. |
| WorkflowFailedEvent |
Встроенное событие жизненного цикла, возникаемое при завершении выполнения рабочего процесса с ошибкой. |
| WorkflowOutputEvent |
Событие, активируется, когда исполнитель рабочего процесса выдает выходные данные. Инициализировать событие вывода рабочего процесса. |
| WorkflowRunResult |
Контейнер для событий, созданных во время выполнения рабочего процесса без потоковой передачи. ОбзорПредставляет полные результаты выполнения рабочего процесса, содержащие все события, созданные с начала до состояния простоя. Рабочие процессы создают выходные данные постепенно через вызовы ctx.yield_output() во время выполнения. Структура событийПоддерживает разделение между событиями плоскости данных и плоскости управления:
Ключевые методы
|
| WorkflowStartedEvent |
Встроенное событие жизненного цикла, созданное при запуске рабочего процесса. Инициализация события рабочего процесса с необязательными данными. |
| WorkflowStatusEvent |
Встроенное событие жизненного цикла, созданное для переходов состояния выполнения рабочего процесса. Инициализировать событие состояния рабочего процесса с новым состоянием и необязательными данными. |
| WorkflowValidationError |
Базовое исключение для ошибок проверки рабочего процесса. |
| WorkflowViz |
Класс для визуализации рабочих процессов с помощью graphviz и Mermaid. Инициализация WorkflowViz с помощью рабочего процесса. |
Перечисления
| MagenticHumanInterventionDecision |
Варианты принятия решений для реагирования на вмешательство человека. |
| MagenticHumanInterventionKind |
Тип запрашиваемого человеческого вмешательства. |
| ValidationTypeEnum |
Перечисление типов проверки рабочего процесса. |
| WorkflowEventSource |
Определяет, поступило ли событие рабочего процесса из платформы или исполнителя. Используйте FRAMEWORK для событий, создаваемых встроенными путями оркестрации, даже если код, который создает их в модулях, связанных с выполнением, и EXECUTOR для событий, предоставляемых разработчиками, реализациями исполнителя. |
| WorkflowRunState |
Состояние выполнения рабочего процесса. Семантика:
|
Функции
agent_middleware
Декоратор, который помечает функцию как ПО промежуточного слоя агента.
Этот декоратор явно идентифицирует функцию как ПО промежуточного слоя агента, которое обрабатывает объекты AgentRunContext.
agent_middleware(func: Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]
Параметры
| Имя | Описание |
|---|---|
|
func
Обязательно
|
Функция по промежуточному слоям, помечаемая как ПО промежуточного слоя агента. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Та же функция с маркером по промежуточного слоя агента. |
Примеры
from agent_framework import agent_middleware, AgentRunContext, ChatAgent
@agent_middleware
async def logging_middleware(context: AgentRunContext, next):
print(f"Before: {context.agent.name}")
await next(context)
print(f"After: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
ai_function
Украшайте функцию, чтобы превратить ее в aiFunction, которая может быть передана моделям и выполнена автоматически.
Этот декоратор создает модель Pydantic из сигнатуры функции, которая будет использоваться для проверки аргументов, переданных функции, и для создания схемы JSON для параметров функции.
Чтобы добавить описания в параметры, используйте Annotated тип со строковым описанием в typing качестве второго аргумента. Класс Pydantic Field можно также использовать для более расширенной настройки.
Замечание
Если для approval_mode задано значение "always_require", функция не будет выполнена.
пока не будет дано явное утверждение, это применяется только к потоку автоматического вызова.
Также важно отметить, что если модель возвращает несколько вызовов функций, некоторые из которых требуют утверждения
и другие, которые этого не делают, он попросит одобрения для всех из них.
ai_function(func: Callable[[...], ReturnT | Awaitable[ReturnT]] | None = None, *, name: str | None = None, description: str | None = None, approval_mode: Literal['always_require', 'never_require'] | None = None, max_invocations: int | None = None, max_invocation_exceptions: int | None = None, additional_properties: dict[str, Any] | None = None) -> AIFunction[Any, ReturnT] | Callable[[Callable[[...], ReturnT | Awaitable[ReturnT]]], AIFunction[Any, ReturnT]]
Параметры
| Имя | Описание |
|---|---|
|
func
|
Callable[[...], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]] | None
Функция для декорирования. Default value: None
|
|
name
Обязательно
|
|
|
description
Обязательно
|
|
|
approval_mode
Обязательно
|
Literal['always_require', 'never_require'] | None
|
|
max_invocations
Обязательно
|
|
|
max_invocation_exceptions
Обязательно
|
|
|
additional_properties
Обязательно
|
|
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
name
|
Имя функции. Если это не указано, будет использоваться атрибут функции Default value: None
|
|
description
|
Описание функции. Если это не указано, будет использоваться документация функции. Default value: None
|
|
approval_mode
|
Требуется ли утверждение для запуска этого средства. По умолчанию утверждение не требуется. Default value: None
|
|
max_invocations
|
Максимальное количество вызовов этой функции. Если нет, ограничение не ограничено, должно быть не менее 1. Default value: None
|
|
max_invocation_exceptions
|
Максимальное количество исключений, разрешенных во время вызовов. Если нет, ограничение не ограничено, должно быть не менее 1. Default value: None
|
|
additional_properties
|
Дополнительные свойства, заданные для функции. Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
AIFunction[Any, <xref:agent_framework._tools.ReturnT>] | Callable[[Callable[[…], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]]], AIFunction[Any, <xref:agent_framework._tools.ReturnT>]]
|
Примеры
from agent_framework import ai_function
from typing import Annotated
@ai_function
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# the same function but with approval required to run
@ai_function(approval_mode="always_require")
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# With custom name and description
@ai_function(name="custom_weather", description="Custom weather function")
def another_weather_func(location: str) -> str:
return f"Weather in {location}"
# Async functions are also supported
@ai_function
async def async_get_weather(location: str) -> str:
'''Get weather asynchronously.'''
# Simulate async operation
return f"Weather in {location}"
chat_middleware
Декоратор, который помечает функцию как ПО промежуточного слоя чата.
Этот декоратор явно идентифицирует функцию как ПО промежуточного слоя чата, которое обрабатывает объекты ChatContext.
chat_middleware(func: Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]
Параметры
| Имя | Описание |
|---|---|
|
func
Обязательно
|
Функция по промежуточному слоям, помечаемая как ПО промежуточного слоя чата. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Та же функция с маркером ПО промежуточного слоя чата. |
Примеры
from agent_framework import chat_middleware, ChatContext, ChatAgent
@chat_middleware
async def logging_middleware(context: ChatContext, next):
print(f"Messages: {len(context.messages)}")
await next(context)
print(f"Response: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
create_edge_runner
Функция фабрики для создания соответствующего граничного runner для группы пограничных вычислений.
create_edge_runner(edge_group: EdgeGroup, executors: dict[str, Executor]) -> EdgeRunner
Параметры
| Имя | Описание |
|---|---|
|
edge_group
Обязательно
|
<xref:agent_framework._workflows._edge.EdgeGroup>
Граничная группа для создания средства выполнения. |
|
executors
Обязательно
|
Сопоставление идентификаторов исполнителя с экземплярами исполнителя. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
<xref:agent_framework._workflows._edge_runner.EdgeRunner>
|
Соответствующий экземпляр EdgeRunner. |
executor
Декоратор, который преобразует автономную функцию в экземпляр FunctionExecutor.
Декоратор @executor предназначен только для автономных функций уровня модуля. Для исполнителей на основе классов используйте базовый класс Исполнителя с @handler методами экземпляра.
Поддерживает синхронные и асинхронные функции. Синхронные функции выполняются в пуле потоков, чтобы избежать блокировки цикла событий.
Это важно
Использование @executor автономных функций (на уровне модуля или локальных функций)
Не используйте или @executor не используйте staticmethodclassmethod
Для исполнителей на основе классов, подкласс Исполнителя и использования @handler в методах экземпляра
Использование:
# Standalone async function (RECOMMENDED):
@executor(id="upper_case")
async def to_upper(text: str, ctx: WorkflowContext[str]):
await ctx.send_message(text.upper())
# Standalone sync function (runs in thread pool):
@executor
def process_data(data: str):
return data.upper()
# For class-based executors, use @handler instead:
class MyExecutor(Executor):
def __init__(self):
super().__init__(id="my_executor")
@handler
async def process(self, data: str, ctx: WorkflowContext[str]):
await ctx.send_message(data.upper())
executor(func: Callable[[...], Any] | None = None, *, id: str | None = None) -> Callable[[Callable[[...], Any]], FunctionExecutor] | FunctionExecutor
Параметры
| Имя | Описание |
|---|---|
|
func
|
Функция для декорирования (при использовании без круглых скобок) Default value: None
|
|
id
Обязательно
|
Необязательный пользовательский идентификатор исполнителя. Если нет, использует имя функции. |
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
id
|
Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Экземпляр FunctionExecutor, который можно подключить к рабочему процессу. |
Исключения
| Тип | Описание |
|---|---|
|
Если используется или staticmethodclassmethod (неподдерживаемый шаблон) |
function_middleware
Декоратор, который помечает функцию как ПО промежуточного слоя функций.
Этот декоратор явно идентифицирует функцию как ПО промежуточного слоя функций, которое обрабатывает объекты FunctionInvocationContext.
function_middleware(func: Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
Параметры
| Имя | Описание |
|---|---|
|
func
Обязательно
|
Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
Функция по промежуточному слоям, помечаемая как ПО промежуточного слоя функций. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Та же функция с маркером ПО промежуточного слоя функций. |
Примеры
from agent_framework import function_middleware, FunctionInvocationContext, ChatAgent
@function_middleware
async def logging_middleware(context: FunctionInvocationContext, next):
print(f"Calling: {context.function.name}")
await next(context)
print(f"Result: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
get_checkpoint_summary
get_checkpoint_summary(checkpoint: WorkflowCheckpoint) -> WorkflowCheckpointSummary
Параметры
| Имя | Описание |
|---|---|
|
checkpoint
Обязательно
|
|
Возвращаемое значение
| Тип | Описание |
|---|---|
get_logger
Получите средство ведения журнала с указанным именем, по умолчанию значение "agent_framework".
get_logger(name: str = 'agent_framework') -> Logger
Параметры
| Имя | Описание |
|---|---|
|
name
|
Имя средства ведения журнала. По умолчанию используется значение "agent_framework". Default value: "agent_framework"
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Настроенный экземпляр средства ведения журнала. |
handler
Декоратор для регистрации обработчика для исполнителя.
handler(func: Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]) -> Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]
Параметры
| Имя | Описание |
|---|---|
|
func
Обязательно
|
Callable[[<xref:agent_framework._workflows._executor.ExecutorT>, Any, <xref:agent_framework._workflows._executor.ContextT>], Awaitable[Any]]
Функция для декорирования. Может быть нет при использовании без параметров. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Украшенная функция с метаданными обработчика. |
Примеры
@handler async def handle_string(self, message: str, ctx: WorkflowContext[str]) —> Нет:
...
@handler async def handle_data(self, message: dict, ctx: WorkflowContext[str | int]) -> None:
...
prepare_function_call_results
Подготовьте значения результатов вызова функции.
prepare_function_call_results(content: TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any | list[TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any]) -> str
Параметры
Возвращаемое значение
| Тип | Описание |
|---|---|
prepend_agent_framework_to_user_agent
Передголовок "agent-framework" для User-Agent в заголовках.
Если данные телеметрии агента пользователя отключены с помощью AGENT_FRAMEWORK_USER_AGENT_DISABLED переменной среды, заголовок User-Agent не будет включать сведения о платформе агента.
Он будет отправлен обратно как есть или как пустой дикт при передаче None.
prepend_agent_framework_to_user_agent(headers: dict[str, Any] | None = None) -> dict[str, Any]
Параметры
| Имя | Описание |
|---|---|
|
headers
|
Существующий словарь заголовков. Default value: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Новый дикт с именем User-Agent имеет значение agent-framework-python/{version}, если заголовки none. Измененный словарь заголовков с "agent-framework-python/{version}" предварительно добавлен в user-agent. |
Примеры
from agent_framework import prepend_agent_framework_to_user_agent
# Add agent-framework to new headers
headers = prepend_agent_framework_to_user_agent()
print(headers["User-Agent"]) # "agent-framework-python/0.1.0"
# Prepend to existing headers
existing = {"User-Agent": "my-app/1.0"}
headers = prepend_agent_framework_to_user_agent(existing)
print(headers["User-Agent"]) # "agent-framework-python/0.1.0 my-app/1.0"
response_handler
Декоратор для регистрации обработчика для обработки ответов на запрос.
response_handler(func: Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]) -> Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]
Параметры
| Имя | Описание |
|---|---|
|
func
Обязательно
|
Callable[[<xref:agent_framework._workflows._request_info_mixin.ExecutorT>, Any, Any, <xref:agent_framework._workflows._request_info_mixin.ContextT>], Awaitable[None]]
Функция для декорирования. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Украшенная функция с метаданными обработчика. |
Примеры
@handler
async def run(self, message: int, context: WorkflowContext[str]) -> None:
# Example of a handler that sends a request
...
# Send a request with a `CustomRequest` payload and expect a `str` response.
await context.request_info(CustomRequest(...), str)
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: str,
context: WorkflowContext[str],
) -> None:
# Example of a response handler for the above request
...
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: dict,
context: WorkflowContext[int],
) -> None:
# Example of a response handler for a request expecting a dict response
...
setup_logging
Настройте конфигурацию ведения журнала для платформы агента.
setup_logging() -> None
Возвращаемое значение
| Тип | Описание |
|---|---|
use_agent_middleware
Декоратор классов, который добавляет поддержку по промежуточного слоя в класс агента.
Этот декоратор добавляет функциональные возможности ПО промежуточного слоя в любой класс агента.
Он упаковывает и run() методы run_stream() для обеспечения выполнения ПО промежуточного слоя.
Выполнение ПО промежуточного слоя можно завершить в любой момент, установив context.terminate для свойства значение True. После установки конвейер перестанет выполнять дополнительное ПО промежуточного слоя, как только элемент управления возвращается в конвейер.
Замечание
Этот декоратор уже применяется к встроенным классам агента. Вам нужно использовать только
он при создании реализаций настраиваемых агентов.
use_agent_middleware(agent_class: type[TAgent]) -> type[TAgent]
Параметры
| Имя | Описание |
|---|---|
|
agent_class
Обязательно
|
type[<xref:TAgent>]
Класс агента для добавления поддержки ПО промежуточного слоя. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
type[~<xref:TAgent>]
|
Измененный класс агента с поддержкой ПО промежуточного слоя. |
Примеры
from agent_framework import use_agent_middleware
@use_agent_middleware
class CustomAgent:
async def run(self, messages, **kwargs):
# Agent implementation
pass
async def run_stream(self, messages, **kwargs):
# Streaming implementation
pass
use_chat_middleware
Декоратор классов, который добавляет поддержку ПО промежуточного слоя в клиентский класс чата.
Этот декоратор добавляет функции ПО промежуточного слоя в любой клиентский класс чата.
Он упаковывает и get_response() методы get_streaming_response() для обеспечения выполнения ПО промежуточного слоя.
Замечание
Этот декоратор уже применяется к встроенным клиентским классам чата. Вам нужно использовать только
он, если вы создаете пользовательские реализации клиента чата.
use_chat_middleware(chat_client_class: type[TChatClient]) -> type[TChatClient]
Параметры
| Имя | Описание |
|---|---|
|
chat_client_class
Обязательно
|
type[<xref:TChatClient>]
Клиентский класс чата для добавления поддержки ПО промежуточного слоя. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
type[~<xref:TChatClient>]
|
Измененный клиентский класс чата с поддержкой ПО промежуточного слоя. |
Примеры
from agent_framework import use_chat_middleware
@use_chat_middleware
class CustomChatClient:
async def get_response(self, messages, **kwargs):
# Chat client implementation
pass
async def get_streaming_response(self, messages, **kwargs):
# Streaming implementation
pass
use_function_invocation
Декоратор классов, который позволяет средству вызывать клиент чата.
Этот декоратор упаковывает get_response и get_streaming_response методы для автоматического обработки вызовов функций из модели, их выполнения и возврата результатов в модель для дальнейшей обработки.
use_function_invocation(chat_client: type[TChatClient]) -> type[TChatClient]
Параметры
| Имя | Описание |
|---|---|
|
chat_client
Обязательно
|
type[<xref:TChatClient>]
Клиентский класс чата для декорирования. |
Возвращаемое значение
| Тип | Описание |
|---|---|
|
type[~<xref:TChatClient>]
|
Декорированный клиентский класс чата с включенным вызовом функции. |
Исключения
| Тип | Описание |
|---|---|
|
Если у клиента чата нет необходимых методов. |
Примеры
from agent_framework import use_function_invocation, BaseChatClient
@use_function_invocation
class MyCustomClient(BaseChatClient):
async def get_response(self, messages, **kwargs):
# Implementation here
pass
async def get_streaming_response(self, messages, **kwargs):
# Implementation here
pass
# The client now automatically handles function calls
client = MyCustomClient()
validate_workflow_graph
Удобная функция для проверки графа рабочего процесса.
validate_workflow_graph(edge_groups: Sequence[EdgeGroup], executors: dict[str, Executor], start_executor: Executor) -> None
Параметры
| Имя | Описание |
|---|---|
|
edge_groups
Обязательно
|
Sequence[<xref:agent_framework._workflows._edge.EdgeGroup>]
список пограничных групп в рабочем процессе |
|
executors
Обязательно
|
Сопоставление идентификаторов исполнителя с экземплярами исполнителя |
|
start_executor
Обязательно
|
Начальный исполнитель (может быть экземпляром или идентификатором) |
Возвращаемое значение
| Тип | Описание |
|---|---|
Исключения
| Тип | Описание |
|---|---|
|
Если проверка завершается ошибкой |