Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Monty ist ein Rust-basierter Dolmetscher für eine eingeschränkte Python Teilmenge.
MontyCodeActProvider gibt einem Agent Framework-Agent ein execute_code Tool und ermöglicht generierten Codeaufrufanbieter-eigenen Tools als typierte asynchrone Funktionen oder über call_tool(...).
Diese Integration verwendet das CodeAct-Muster mit einem eingeschränkten Interpreter anstelle einer hardwareisolierten Sandbox.
Verwenden Sie Monty, wenn Sie eine plattformübergreifende CodeAct-Laufzeit ohne Hyperlight-Hypervisor oder WASM-Gastabhängigkeit benötigen.
Note
agent-framework-monty ist ein Betapaket. Monty schränkt den Zugriff auf Das Betriebssystem, die Unterverarbeitung und den direkten Netzwerkzugriff ein, ist jedoch kein hardwareisolierter virtueller Computer.
Installieren der Pakete
pip install agent-framework-monty agent-framework-foundry --pre
Fügen Sie MontyCodeActProvider hinzu.
Registrieren Sie Hosttools auf dem Anbieter und nicht direkt auf dem Agent. Das Modell sieht execute_code und ruft diese Tools aus generierten Code auf.
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}")
Funktionen konfigurieren
MontyCodeActProvider und MontyExecuteCodeTool Support:
- Hosttools und Laufzeittoolverwaltung
-
never_requireoderalways_requireGenehmigung fürexecute_code - Ein Arbeitsbereichstamm und explizite Datei mounts
- Monty-Ressourcenbeschränkungen
- Von Lese-/Schreibzugriff zurückgegebene Dateien als Agent Framework-Inhalt
Monty stellt keine Zulassungsliste für ausgehende URL bereit. Bereitstellen des Netzwerkzugriffs über ein schmales Hosttool, das Ziele und Eingaben überprüft.
Wählen Sie Monty oder Hyperlight aus.
| Runtime | Wählen Sie es aus, wenn |
|---|---|
| Monty | Plattformübergreifende Ausführung und eingeschränkter Dolmetscher sind ausreichend. |
| Hyperlight | Sie benötigen eine gehärtete Sandbox, Dateisystemsteuerelemente oder Zulassungslisten für ausgehende Domänen. |