로컬(.NET)

Microsoft.Agents.AI.LocalCodeAct는 에이전트 환경의 자식 프로세스에서 생성된 Python 실행합니다. Hyperlight 게스트 런타임을 요구하지 않고 CodeAct 공급자 패턴을 제공합니다.

이 통합은 CodeAct 패턴을 사용하고 격리를 위해 호스트 환경에 의존합니다.

Warning

로컬 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],
    });

심층 방어 컨트롤

로컬 CodeAct는 다음을 제공합니다.

  • 구성 가능한 허용 및 차단된 가져오기 및 기본 제공을 사용하는 AST 유효성 검사입니다.
  • 셸을 호출하지 않고 하위 Python 직접 실행
  • 시간, 출력, 결과 및 캡처된 파일 크기 제한입니다.
  • 명시적 호스트 도구 등록.
  • 읽기 전용 및 읽기/쓰기 파일 탑재
  • 구성 가능한 작업 디렉터리 및 하위 프로세스 환경입니다.

이러한 컨트롤은 위험을 줄이지만 제약을 제공하지는 않습니다. 유효성 검사를 사용하도록 설정하고, 제한된 환경 사전을 전달하고, 좁은 호스트 도구를 노출하고, 강력한 외부 샌드박스 내에서 프로세스를 실행합니다.

CodeAct 런타임 선택

Runtime 선택 시기
하이퍼라이트 파일 시스템 및 네트워크 컨트롤이 있는 격리된 샌드박스가 필요합니다.
로컬 CodeAct .NET 에이전트는 이미 외부 샌드박스 환경 내에서 실행됩니다.
몬티 (주) Python 에이전트에 대해 플랫폼 간 제한된 인터프리터가 필요합니다.

다음 단계