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 stellt einem Agent-Framework-Agenten ein execute_code-Tool zur Verfügung und ermöglicht es generiertem Code, anbieterbetriebene Tools als typisierte asynchrone Funktionen oder über call_tool(...) aufzurufen.
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 Unterstützung:
- Host-Werkzeuge und Verwaltung von Laufzeitwerkzeugen
-
never_require-Genehmigung oderalways_require-Genehmigung fürexecute_code - ein Stammverzeichnis des Arbeitsbereichs und explizite Dateieinhängepunkte
- Monty-Ressourcenbeschränkungen
- Dateien, die von Mounts mit Lese- und Schreibzugriff als Inhalt des Agent Frameworks zurückgegeben werden
Monty stellt keine Zulassungsliste für ausgehende URL bereit. Stellen Sie den Netzwerkzugriff über ein eng begrenztes Host-Tool bereit, das Ziele und Eingaben validiert.
Wählen Sie Monty oder Hyperlight aus.
| Laufzeit | Wählen Sie diese Option, 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. |