沙盒邊界
這是什麼
降低工具或生成指令可能造成損害的執行和檔案系統限制。
白話解釋
想像化學教室的通風櫥:在裡面混合危險物質只有在沒有人將其排氣管連接到建築物共用空調回風系統時才是安全的。Hermes 以同樣的方式對待程式碼執行:腳本在一個受限制的子程序中運行,只有一組窄門通往外部世界,而一旦該限制被連接回主機,通風櫥的保證就不再適用。
為什麼重要
哪些目錄、哪些程序、哪些網路存取——沙盒邊界是圍繞程式碼執行、終端工具和生成指令實際可以觸及的範圍設置的硬性限制,因此一個錯誤或惡意的指令無法在其預期範圍之外造成損害。這是核准邊界底層的技術強制層:核准決定某個操作是否需要確認,沙盒決定的是無論核准與否,當出錯時什麼是可能的。這在程式碼執行和終端工具這兩個具有最直接系統級存取權限的工具集中最為明顯。
運作方式
execute_code 沙盒(tools/code_execution_tool.py)在自己的子程序中啟動一個腳本,其呼叫 Hermes 工具的唯一方式是透過一個僅限於七個允許名稱的微型 RPC 通道——web_search、web_extract、read_file、write_file、search_files、patch、terminal——並與當前工作階段實際啟用的內容進行交集。在該程序啟動之前,其繼承的環境變數中任何包含金鑰形狀子字串(如 KEY、TOKEN 或 SECRET)的內容都會被清除,只留下一個狹窄的允許清單。腳本預設有五分鐘的超時時間和最多 50 次工具呼叫的限制。當終端後端是一個 Docker 容器,其主機目錄被綁定掛載進來時(tools/terminal_tool.py),Hermes 會將其視為不再具有實際意義的隔離,並將其路由回完整的命令核准防護,而不是快速路徑。