Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Monty é um interpretador baseado em Rust para um subconjunto de Python restrito.
MontyCodeActProvider fornece a um agente do Agent Framework uma ferramenta execute_code e permite que o código gerado chame ferramentas do provedor como funções assíncronas tipadas ou por meio de call_tool(...).
Essa integração usa o padrão CodeAct com um interpretador restrito em vez de um sandbox isolado por hardware.
Use o Monty quando precisar de um runtime CodeAct multiplataforma sem o hipervisor do Hyperlight ou a dependência de um convidado WASM.
Note
agent-framework-monty é um pacote beta. Monty restringe o sistema operacional, o subprocesso e o acesso direto à rede, mas não é uma máquina virtual isolada por hardware.
Instalar os pacotes
pip install agent-framework-monty agent-framework-foundry --pre
Adicionar MontyCodeActProvider
Registre as ferramentas de host no provedor em vez de diretamente no agente. O modelo vê execute_code e chama essas ferramentas a partir do código gerado.
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 recursos
suporte a MontyCodeActProvider e MontyExecuteCodeTool:
- ferramentas de host e gerenciamento de ferramentas de runtime
-
never_requireoualways_requireaprovação paraexecute_code - uma raiz do espaço de trabalho e montagens explícitas de arquivos
- Limites de recursos do Monty
- arquivos retornados de montagens de leitura/gravação como conteúdo do Agent Framework
Monty não fornece uma lista de permissões de URL de saída. Forneça acesso à rede por meio de uma ferramenta restrita no host que valida os destinos e os parâmetros de entrada.
Escolha Monty ou Hyperlight
| Tempo de execução | Escolha-o quando |
|---|---|
| Monty | A execução entre plataformas e um interpretador restrito são suficientes. |
| Hyperlight | Você precisa de uma sandbox reforçada, controles do sistema de arquivos ou listas de permissões de domínios de saída. |