Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Monty è un interprete basato su Rust per un subset con restrizioni Python.
MontyCodeActProvider fornisce un agente di Agent Framework uno execute_code strumento e consente di generare strumenti di proprietà del provider di chiamate di codice come funzioni asincrone tipate o tramite call_tool(...).
Questa integrazione usa il modello CodeAct con un interprete con restrizioni anziché un sandbox isolato dall'hardware.
Usare Monty quando è necessario un runtime CodeAct multipiattaforma senza l'hypervisor o la dipendenza guest WASM di Hyperlight.
Annotazioni
agent-framework-monty è un pacchetto beta. Monty limita il sistema operativo, il subprocesso e l'accesso diretto alla rete, ma non è una macchina virtuale isolata dall'hardware.
Installare i pacchetti
pip install agent-framework-monty agent-framework-foundry --pre
Aggiungere MontyCodeActProvider
Registrare gli strumenti host nel provider anziché direttamente nell'agente. Il modello vede execute_code e chiama tali strumenti dal codice generato.
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}")
Configurare le funzionalità
MontyCodeActProvider e MontyExecuteCodeTool supporto:
- strumenti host e gestione degli strumenti di runtime
-
never_requireoalways_requireapprovazione perexecute_code - montaggi di file espliciti e radice dell'area di lavoro
- Limiti delle risorse Monty
- file restituiti dai montaggi di lettura/scrittura come contenuto di Agent Framework
Monty non fornisce un elenco di url in uscita consentito. Fornire l'accesso alla rete tramite uno strumento host ristretto che convalida le destinazioni e gli input.
Scegliere Monty o Hyperlight
| Runtime | Sceglilo quando |
|---|---|
| Monty | L'esecuzione multipiattaforma e un interprete con restrizioni sono sufficienti. |
| Hyperlight | Sono necessari un sandbox con protezione avanzata, controlli del file system o elenchi di indirizzi consentiti di dominio in uscita. |