Monty

Monty, kısıtlı bir Python alt kümesi için Rust tabanlı bir yorumlayıcıdır. MontyCodeActProvider Bir Agent Framework aracısına bir execute_code araç verir ve oluşturulan kod çağrısı sağlayıcısına ait araçları zaman uyumsuz işlevler veya aracılığıyla call_tool(...)türü belirtilmiş olarak sağlar.

Bu tümleştirme, donanımdan yalıtılmış bir korumalı alan yerine kısıtlanmış bir yorumlayıcı ile CodeAct desenini kullanır.

Hyperlight'ın hiper yöneticisi veya WASM konuk bağımlılığı olmadan platformlar arası CodeAct çalışma zamanına ihtiyacınız olduğunda Monty'i kullanın.

Uyarı

agent-framework-monty bir beta paketidir. Monty işletim sistemini, alt işlemleri ve doğrudan ağ erişimini kısıtlar, ancak donanımdan yalıtılmış bir sanal makine değildir.

Paketleri yükleme

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

MontyCodeActProvider ekle

Konak araçlarını doğrudan aracı yerine sağlayıcıya kaydedin. Model, oluşturulan koddan bu araçları görür execute_code ve çağırır.

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

Özellikleri yapılandırın

MontyCodeActProvider ve MontyExecuteCodeTool destek:

  • konak araçları ve çalışma zamanı araç yönetimi
  • never_require veya always_require onay için execute_code
  • çalışma alanı kökü ve açık dosya bağlamaları
  • Monty kaynak sınırları
  • Aracı Çerçevesi içeriği olarak okuma-yazma bağlamalarından döndürülen dosyalar

Monty giden URL izin listesi sağlamaz. Hedefleri ve girişleri doğrulayan dar bir konak aracı aracılığıyla ağ erişimi sağlayın.

Monty veya Hyperlight'ı seçin

Runtime Ne zaman seçeceğini
Monty Platformlar arası yürütme ve kısıtlı bir yorumlayıcı yeterlidir.
Hiper ışık Sağlamlaştırılmış bir korumalı alan, dosya sistemi denetimleri veya giden etki alanı izin listeleri gerekir.

Sonraki Adımlar