Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Monty jest interpreterem opartym na rust dla ograniczonego podzestawu Python.
MontyCodeActProvider udostępnia agentowi Agent Framework jedno narzędzie execute_code i umożliwia wygenerowanemu kodowi wywoływanie narzędzi dostawcy jako typowanych funkcji asynchronicznych lub za pomocą call_tool(...).
Ta integracja wykorzystuje wzorzec CodeAct z ograniczonym interpreterem, a nie piaskownicę izolowaną sprzętowo.
Użyj Monty, jeśli potrzebujesz wieloplatformowego środowiska uruchomieniowego CodeAct bez hiperwizora Hyperlight lub zależności od gościa WASM.
Uwaga / Notatka
agent-framework-monty jest pakietem beta. Monty ogranicza system operacyjny, podproces i bezpośredni dostęp do sieci, ale nie jest to maszyna wirtualna izolowana sprzętowo.
Instalowanie pakietów
pip install agent-framework-monty agent-framework-foundry --pre
Dodaj MontyCodeActProvider
Zarejestruj narzędzia hosta po stronie dostawcy, a nie bezpośrednio w agencie. Model widzi execute_code i wywołuje te narzędzia z wygenerowanego kodu.
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}")
Opisy parametrów narzędzia sterowania hostem
MontyCodeActProvider i MontyExecuteCodeTool zaakceptuj tool_description_format. Domyślnie "compact" zawiera typy parametrów skalarnych, informację o tym, czy są wymagane, czy opcjonalne, opisy, wartości enumeracji oraz wartości domyślne w opisie execute_code i instrukcjach CodeAct. Użyj "json" dla pełnego schematu JSON lub wybierz format według dokładnej nazwy narzędzia z rozróżnianiem wielkości liter:
codeact = MontyCodeActProvider(
tools=[compute, fetch_data],
tool_description_format={
"compute": "json",
"fetch_data": "compact",
},
)
Narzędzia pominięte w mapowaniu są wyświetlane w formacie kompaktowym. Renderowanie kompaktowe automatycznie przełącza się na pełny schemat JSON, gdy nie może przedstawić schematu bez utraty ograniczeń, na przykład w przypadku obiektów zagnieżdżonych, tablic, odwołań lub typów unijnych. Schematy parametrów są widoczne dla modelu, dlatego nie umieszczaj poświadczeń ani innych tajnych informacji w opisach, wartościach wyliczeniowych, wartościach domyślnych ani niestandardowych polach schematu.
Konfigurowanie możliwości
MontyCodeActProvider i MontyExecuteCodeTool pomoc techniczna:
- narzędzia hosta i zarządzanie narzędziami środowiska uruchomieniowego
-
never_requirelubalways_requirezatwierdzenie dlaexecute_code - katalog główny obszaru roboczego i jawne montowania plików
- Limity zasobów Monty
- pliki zwrócone z instalacji odczytu i zapisu jako zawartość programu Agent Framework
Monty nie udostępnia listy dozwolonych adresów URL dla ruchu wychodzącego. Zapewnij dostęp do sieci za pośrednictwem ograniczonego narzędzia hosta, które weryfikuje adresy docelowe i dane wejściowe.
Wybierz Monty lub Hyperlight
| Runtime | Wybierz ją, gdy |
|---|---|
| Monty | Wykonywanie międzyplatformowe i interpreter ograniczony są wystarczające. |
| Hyperlight | Potrzebujesz utwardzonej piaskownicy, mechanizmów kontroli systemu plików lub list dozwolonych domen dla ruchu wychodzącego. |