Monty

Monty är en Rust-baserad tolk för en begränsad Python delmängd. MontyCodeActProvider ger en agent i Agent Framework ett execute_code-verktyg och låter genererad kod anropa leverantörsägda verktyg som typade asynkrona funktioner eller via call_tool(...).

Den här integreringen använder CodeAct-mönstret med en begränsad tolk i stället för en maskinvaruisolerad sandbox-miljö.

Använd Monty när du behöver en plattformsoberoende CodeAct-körning utan Hyperlights hypervisor- eller WASM-gästberoende.

Anmärkning

agent-framework-monty är ett betapaket. Monty begränsar operativsystem, underprocess och direkt nätverksåtkomst, men det är inte en maskinvaruisolerad virtuell dator.

Installera programvarupaketen

pip install agent-framework-monty agent-framework-foundry --pre

Lägg till MontyCodeActProvider

Registrera värdverktyg på providern i stället för direkt på agenten. Modellen ser execute_code och anropar dessa verktyg från genererad kod.

async def main() -> None:
    """Run the provider-owned Monty CodeAct sample."""
    # 1. Create the Monty-backed provider and register sandbox tools on it.
    codeact = MontyCodeActProvider(
        tools=[compute, fetch_data],
        approval_mode="never_require",
    )

    # 2. Create the client and the agent.
    agent = Agent(
        client=FoundryChatClient(
            project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
            model=os.environ["FOUNDRY_MODEL"],
            credential=AzureCliCredential(),
        ),
        name="MontyCodeActProviderAgent",
        instructions="You are a helpful assistant.",
        context_providers=[codeact],
        middleware=[log_function_calls],
    )

    # 3. Run a request that should use execute_code plus provider-owned tools.
    query = (
        "Fetch all users, find admins, multiply 7*(3*2), and print the users, "
        "admins, and multiplication result. Use a single execute_code call. "
        "You may call the registered tools directly as typed async functions "
        "(`await compute(operation='multiply', a=7, b=6)`) or via "
        "`call_tool('compute', ...)`."
    )
    print(f"{_CYAN}{'=' * 60}")
    print("Monty CodeAct provider sample")
    print(f"{'=' * 60}{_RESET}")
    print(f"{_CYAN}User: {query}{_RESET}")
    result = await agent.run(query)
    print(f"{_CYAN}Agent: {result.text}{_RESET}")

Konfigurera funktioner

MontyCodeActProvider- och MontyExecuteCodeTool-support:

  • värdverktyg och körningsverktygshantering
  • never_require eller always_require godkännande för execute_code
  • en rotkatalog för arbetsytan och uttryckliga filmonteringar
  • Monty-resursgränser
  • filer som returneras från läs- och skrivmonteringar som innehåll i Agent Framework

Monty tillhandahåller ingen lista över tillåtna utgående URL:er. Ge nätverksåtkomst via ett smalt värdverktyg som validerar mål och indata.

Välj Monty eller Hyperlight

Runtime Välj den när
Monty Plattformsoberoende exekvering och en begränsad tolk räcker.
Hyperlight Du behöver en förstärkt sandbox-miljö, filsystemkontroller eller listor över tillåtna utgående domäner.

Nästa steg