Monty

Monty is een op Rust gebaseerde interpreter voor een beperkte Python subset. MontyCodeActProvider geeft een Agent Framework-agent één execute_code tool en laat gegenereerde code tools van de provider aanroepen als getypeerde asynchrone functies of via call_tool(...).

Deze integratie maakt gebruik van het CodeAct-patroon met een beperkte interpreter in plaats van een hardware-geïsoleerde sandbox.

Gebruik Monty wanneer u een platformoverschrijdende CodeAct-runtime nodig hebt zonder hypervisor of WASM-gastafhankelijkheid van Hyperlight.

Opmerking

agent-framework-monty is een bètapakket. Monty beperkt het besturingssysteem, subprocessen en directe netwerktoegang, maar het is geen hardware-geïsoleerde virtuele machine.

De pakketten installeren

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

MontyCodeActProvider toevoegen

Registreer hosthulpprogramma's bij de provider in plaats van rechtstreeks op de agent. Het model ziet execute_code en roept deze hulpprogramma's aan op basis van gegenereerde code.

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}")

Mogelijkheden configureren

ondersteuning voor MontyCodeActProvider en MontyExecuteCodeTool:

  • beheer van hosthulpprogramma's en runtimehulpprogramma's
  • never_require of always_require goedkeuring voor execute_code
  • een hoofdmap van een werkruimte en expliciete bestandsaankoppelingen
  • Monty-resourcelimieten
  • bestanden die vanuit mounts met lees- en schrijftoegang worden geretourneerd als inhoud van het Agent Framework

Monty biedt geen lijst met toegestane uitgaande URL's. Netwerktoegang bieden via een smal hosthulpprogramma waarmee bestemmingen en invoer worden gevalideerd.

Kies Monty of Hyperlight

Runtime Kies deze wanneer
Monty Platformoverschrijdende uitvoering en een beperkte interpreter zijn voldoende.
Hyperlight U hebt een beperkte sandbox, besturingselementen voor bestandssysteem of acceptatielijsten voor uitgaand domein nodig.

Volgende stappen