Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Monty es un intérprete basado en Rust para un subconjunto de Python restringido.
MontyCodeActProvider proporciona a un agente de Agent Framework una herramienta execute_code y permite que el código generado llame a las herramientas del proveedor como funciones asíncronas tipadas o a través de call_tool(...).
Esta integración utiliza el patrón CodeAct con un intérprete restringido en lugar de un entorno aislado por hardware.
Utilice Monty cuando necesite un entorno de ejecución multiplataforma de CodeAct sin el hipervisor de Hyperlight ni la dependencia de un invitado WASM.
Note
agent-framework-monty es un paquete beta. Monty restringe el sistema operativo, el subproceso y el acceso directo a la red, pero no es una máquina virtual aislada por hardware.
Instalación de los paquetes
pip install agent-framework-monty agent-framework-foundry --pre
Agregue MontyCodeActProvider.
Registre las herramientas de host en el proveedor en lugar de directamente en el agente. El modelo ve execute_code y llama a esas herramientas desde código generado.
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}")
Configurar las capacidades
MontyCodeActProvider y MontyExecuteCodeTool soporte técnico:
- herramientas de host y administración de herramientas en tiempo de ejecución
-
never_requireoalways_requireaprobación paraexecute_code - una raíz del espacio de trabajo y montajes explícitos de archivos
- Límites de recursos de Monty
- archivos devueltos por montajes de lectura y escritura como contenido del Agent Framework
Monty no proporciona una lista de direcciones URL de salida permitidas. Proporcione acceso a la red mediante una herramienta de anfitrión limitada que valide los destinos y las entradas.
Elegir Monty o Hyperlight
| Runtime | Elíjalo cuando |
|---|---|
| Monty | La ejecución multiplataforma y un intérprete restringido son suficientes. |
| Hyperlight | Necesitas un entorno aislado reforzado, controles del sistema de archivos o listas de dominios salientes permitidos. |