CodeAct

CodeAct позволяет агенту решить задачу, написав код и выполнив его с помощью execute_code средства. Вместо того чтобы запрашивать у модели вызов одного средства одновременно, CodeAct предоставляет ему изолированное место для объединения потока управления, преобразования данных и оркестрации инструментов внутри одного шага выполнения.

В Agent Framework CodeAct предоставляется через пакеты, специфичные для серверной части, а не через один встроенный тип ядра. Соединитель может добавить execute_code средство, внедрить руководство по среде выполнения и при необходимости предоставлять средства, принадлежащие поставщику, которые можно вызывать из песочницы.

Почему CodeAct

Современные агенты ИИ часто не ограничиваются качеством модели, а ограничиваются накладными расходами на оркестрацию. Когда агент объединяет множество небольших вызовов инструментов, каждый шаг обычно требует дополнительного запуска модели, что увеличивает задержку и использование маркеров.

CodeAct упрощает этот цикл: модель -> инструмент -> модель. Вместо того, чтобы попросить модель выбрать один инструмент за раз, Agent Framework может предоставить один execute_code инструмент и позволить модели выразить полный план в виде короткой программы. Инструменты остаются неизменными, модель остается той же, и основное изменение заключается в том, что план выполняется один раз в песочнице вместо того, чтобы быть разделённым на несколько этапов вызова инструментов.

Для рабочих нагрузок, насыщенных инструментами, это может значительно уменьшить сквозную задержку и использование токенов, сохраняя при этом план компактным и проверяемым в одном блоке кода. См. интеграцию Hyperlight CodeAct для наглядного сравнения схем подключения бок о бок.

Когда CodeAct является подходящим решением

Используйте CodeAct, когда задача получает преимущества:

  • объединение нескольких вызовов инструментов с циклами, ветвлением, фильтрацией или агрегированием
  • преобразование результатов инструмента перед возвратом окончательного ответа
  • создание более крупных структурированных выходных данных или артефактов в рамках выполнения
  • сохранение некоторых средств, доступных только в управляемой среде выполнения
  • сворачивание множества небольших, объединяемых последовательных поисковых операций или легковесных вычислений в один шаг выполнения

Продолжайте использовать прямое использование инструмента, когда:

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

Как CodeAct подходит в Agent Framework

Соединитель CodeAct обычно выполняет четыре действия при запуске:

  1. Добавляет средство execute_code на поверхность инструментов, обращенную к модели.
  2. Предоставляет инструкции для настроенной среды выполнения песочницы.
  3. При необходимости предоставляет доступ к средствам, принадлежащим call_tool(...)поставщику.
  4. Применяет ограничения возможностей, такие как доступ к файловой системе или списки разрешений для исходящей сети.

Так как коннектор управляет конфигурацией исполняющей среды, сведения о настройке зависят от выбранной серверной части.

Текущие ограничения

CodeAct является сильным подходом для рабочих процессов с большим количеством инструментов, но есть несколько текущих ограничений, которые следует учитывать:

  • Описанным соединителем Agent Framework на сегодняшний день является Hyperlight CodeAct, доступный как для Python, так и для .NET (в предварительной версии).
  • Одобрения в настоящее время применяются к вызову execute_code в целом. Если вам нужно, чтобы отдельные операции были утверждены по одному, сохраняйте эти операции в виде инструментов прямого агента, вместо того чтобы полагаться на call_tool(...).
  • Инструменты, доступ к которым осуществляется через call_tool(...), по-прежнему выполняются в процессе хоста. Используйте узкоспециализированные проверенные средства узла для чувствительных операций ввода-вывода вместо ненужного расширения доступа к песочнице.
  • CodeAct лучше всего работает, когда накладные расходы оркестрации доминируют. Для небольших задач с одним или двумя вызовами инструментов добавленная абстракция может не принести много пользы.
  • Имена инструментов, метаданные параметров и возвращаемые структуры имеют большее значение здесь, так как модель пишет код в соответствии с этими контрактами, а не выбирает один прямой вызов инструмента одновременно.

Get started

Для .NET на сегодняшний день документированным коннектором является Hyperlight CodeAct, который поставляется в пакете Microsoft.Agents.AI.Hyperlight.

Пакет предоставляет следующие возможности:

  • HyperlightCodeActProvider — это AIContextProvider, который добавляет execute_code и инструкции CodeAct при каждом запуске
  • HyperlightExecuteCodeFunction — автономная AIFunction для статического или ручного подключения, когда конфигурация песочницы фиксирована
  • Управляемые поставщиком средства, которые остаются доступными в изолированной среде через call_tool(...)
  • Интеграция CodeActApprovalMode и ApprovalRequiredAIFunction для согласований
  • необязательная конфигурация файловой системы (FileMounts, HostInputDirectory) и исходящей сети (AllowedDomains) для среды выполнения песочницы

Important

Пакет .NET находится в предварительной версии и зависит от Hyperlight.HyperlightSandbox.Api NuGet, который еще не опубликован в nuget.org. Сведения о текущих требованиях к установке и требованиям к платформе см. в Hyperlight CodeAct.

Дополнительные сведения см. в руководстве по установке, примерам и инструкциям для конкретной среды выполнения в Hyperlight CodeAct .

Get started

Для Python документированным соединителем на сегодняшний день является Hyperlight CodeAct.

Пакет Hyperlight предоставляет следующие возможности:

  • HyperlightCodeActProvider для запусков на основе контекст-провайдера
  • HyperlightExecuteCodeToolЕсли вы хотите напрямую подключиться execute_code
  • Управляемые поставщиком средства, которые остаются доступными в изолированной среде через call_tool(...)
  • необязательная конфигурация файловой системы и исходящей сети для среды выполнения песочницы

Для установки, примеров и специфичных для среды исполнения инструкций, таких как использование и print(...), а также текущих ограничений, относящихся к Hyperlight, см. /output/.

Дальнейшие действия