Local (.NET)

Microsoft.Agents.AI.LocalCodeActзапускает созданные Python в дочернем процессе в среде агента. Он предоставляет шаблон поставщика CodeAct, не требуя гостевой среды выполнения Hyperlight.

Эта интеграция использует шаблон CodeAct и использует среду узла для изоляции.

Предупреждение

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

Установите пакет

dotnet add package Microsoft.Agents.AI.LocalCodeAct --prerelease

Для пакета требуется явный Python исполняемый путь.

Настройте провайдера

Регистрация средств узла с помощью LocalCodeActProviderOptions. Созданный код может вызывать только эти средства.await call_tool(...) Применение ограничений выполнения для привязанной среды выполнения субпроцесса и захваченных выходных данных.

// ── LocalCodeAct provider with sandbox-only host tools ───────────────────────

var codeActOptions = new LocalCodeActProviderOptions
{
    Tools =
    [
        AIFunctionFactory.Create(Compute, name: "compute"),
        AIFunctionFactory.Create(FetchData, name: "fetch_data"),
    ],
    ExecutionLimits = new ProcessExecutionLimits { TimeoutSeconds = 5 },
};

var codeAct = new LocalCodeActProvider(pythonExecutable, codeActOptions);

// ── Build the hosted agent ───────────────────────────────────────────────────

AIAgent agent = new AIProjectClient(new Uri(endpoint), credential)
    .AsAIAgent(new ChatClientAgentOptions
    {
        Name = Environment.GetEnvironmentVariable("AGENT_NAME") ?? "hosted-local-codeact",
        Description = "Hosted CodeAct agent with sandbox-only compute and fetch_data tools.",
        ChatOptions = new ChatOptions
        {
            ModelId = deploymentName,
            Instructions =
                """
                You are a helpful assistant. Keep your answers brief. Prefer orchestrating your work
                in a single `execute_code` block using `await call_tool(...)` over issuing many
                direct tool calls. The sandbox exposes `compute` and `fetch_data` via `call_tool`.
                """,
        },
        AIContextProviders = [codeAct],
    });

Элементы управления глубиной обороны

Local CodeAct предоставляет:

  • Проверка AST с настраиваемыми разрешенными и заблокированными импортами и встроенными.
  • Прямое Python выполнение субпроцесса без вызова оболочки.
  • Ограничения размера файла, выходных данных, результатов и захваченных файлов.
  • Явная регистрация средства узла.
  • Подключения файлов только для чтения и записи.
  • Настраиваемый рабочий каталог и среда подпроцесса.

Эти элементы управления снижают риск, но не обеспечивают сдерживание. Продолжайте проверку, передайте словарь ограниченной среды, предоставьте узкие средства узла и запустите процесс в строгой внешней песочнице.

Выбор среды выполнения CodeAct

Runtime Выберите его, когда
Гиперлайт Вам нужна изолированная песочница с файловой системой и сетевыми элементами управления.
Local CodeAct Агент .NET уже выполняется внутри внешней изолированной среды.
Монти Для агентов Python требуется кроссплатформенный интерпретатор с ограниченным доступом.

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