ローカル (.NET)

Microsoft.Agents.AI.LocalCodeActは、エージェントの環境内の子プロセスで生成されたPythonを実行します。 Hyperlight ゲスト ランタイムを必要とせずに CodeAct プロバイダー パターンを提供します。

この統合では CodeAct パターンが使用され、分離のためにホスト環境に依存します。

Warning

ローカル CodeAct は セキュリティ サンドボックスではありません。 外部コンテナー、仮想マシン、またはマネージド ホスティング環境がプロセス、ファイルシステム、ネットワーク、資格情報の分離を提供する場合にのみ実行します。

パッケージをインストールする

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

パッケージには、明示的なPython実行可能パスが必要です。

プロバイダーの設定

LocalCodeActProviderOptionsを使用してホスト ツールを登録します。 生成されたコードは、 await call_tool(...)を介してこれらのツールのみを呼び出すことができます。 バインドされたサブプロセス ランタイムとキャプチャされた出力に実行制限を適用します。

            new Dictionary<string, object> { ["id"] = 3, ["name"] = "Charlie", ["role"] = "admin" },
        ],
        ["products"] =
        [
            new Dictionary<string, object> { ["id"] = 101, ["name"] = "Widget", ["price"] = 9.99 },
            new Dictionary<string, object> { ["id"] = 102, ["name"] = "Gadget", ["price"] = 19.99 },
        ],
    };

    return data.TryGetValue(table, out var rows) ? rows : [];
}

// ── 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 ───────────────────────────────────────────────────

// WARNING: DefaultAzureCredential is convenient for development but requires careful
// consideration in production. Consider a specific credential (for example
// ManagedIdentityCredential) to avoid latency, unintended credential probing, and
// fallback security risks.
AIAgent agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())

多層防御の統制

Local CodeAct では、次の機能が提供されます。

  • 設定可能な許可・禁止インポートおよび組み込み機能に対応した AST 検証
  • シェルを呼び出さずにサブプロセスを直接実行Python。
  • 時間、出力、結果、キャプチャされたファイル サイズの制限。
  • 明示的なホスト ツールの登録。
  • 読み取り専用および読み取り/書き込み可能のファイルマウント。
  • 構成可能な作業ディレクトリとサブプロセス環境。

これらのコントロールはリスクを軽減しますが、封じ込めはありません。 検証を有効のままにし、制限付き環境ディクショナリを渡し、狭いホスト ツールを公開して、強力な外部サンドボックス内でプロセスを実行します。

CodeAct ランタイムを選択する

ランタイム 次の場合に選択します。
Hyperlight ファイルシステムとネットワーク制御を備えた分離サンドボックスが必要です。
ローカルCodeAct .NET エージェントは、外部サンドボックス環境内で既に実行されています。
Monty Pythonエージェントにはクロスプラットフォームの制限付きインタープリターが必要です。

次のステップ