<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>KVM on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/kvm/</link>
        <description>Recent content in KVM on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sun, 12 Jul 2026 10:35:00 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/kvm/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>CubeSandbox 怎麼給 AI Agent 配置隔離環境：併發執行、許可權與成本取捨</title>
        <link>https://knightli.com/zh-tw/2026/07/12/cubesandbox-ai-agent-isolation-concurrency-permission-cost-guide/</link>
        <pubDate>Sun, 12 Jul 2026 10:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/07/12/cubesandbox-ai-agent-isolation-concurrency-permission-cost-guide/</guid>
        <description>&lt;p&gt;當 AI Agent 需要執行程式碼、安裝依賴、訪問網頁、呼叫工具或持續執行較長任務時，問題不再只是“能不能跑”，而是“這段不可信或不完整的指令應當在哪兒跑、能訪問什麼、出錯後如何停止和回滾”。CubeSandbox 是一個面向 Agent 的沙箱服務，主打快速啟動、高併發和 KVM 硬體級隔離。&lt;/p&gt;
&lt;p&gt;它適合把 Agent 的執行面從宿主機和生產環境中拆出來。它不是讓所有操作自動安全：掛載目錄、網路出口、注入的憑據、映象模板和排程配額仍需要由團隊明確配置。&lt;/p&gt;
&lt;h2 id=&#34;先判斷是否真的需要-cubesandbox&#34;&gt;先判斷是否真的需要 CubeSandbox
&lt;/h2&gt;&lt;p&gt;不是每個 Agent 都需要微虛擬機器。可以按風險和任務型別選擇：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;場景&lt;/th&gt;
          &lt;th&gt;更合適的方式&lt;/th&gt;
          &lt;th&gt;原因&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;只讀程式碼問答、靜態搜尋&lt;/td&gt;
          &lt;td&gt;本地只讀工具或受限 MCP&lt;/td&gt;
          &lt;td&gt;不需要啟動獨立執行環境&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;執行單元測試、安裝依賴、執行生成程式碼&lt;/td&gt;
          &lt;td&gt;CubeSandbox 或其他強隔離沙箱&lt;/td&gt;
          &lt;td&gt;程式碼和依賴可能不可信，且會寫入檔案系統&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;高併發 Agent 評測、批次任務、瀏覽器自動化&lt;/td&gt;
          &lt;td&gt;CubeSandbox 叢集&lt;/td&gt;
          &lt;td&gt;需要快速建立、回收和隔離多個執行單元&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;操作生產資料庫、發郵件、部署&lt;/td&gt;
          &lt;td&gt;人工審批加受控專用系統&lt;/td&gt;
          &lt;td&gt;沙箱不能替代業務授權和變更流程&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;如果 Agent 只需要檢索檔案和提出補丁，先從只讀許可權和 diff 審查開始。只有任務確實需要執行不可信程式碼或大量併發時，再引入完整沙箱，避免用基礎設施複雜度解決一個本可由許可權策略處理的問題。&lt;/p&gt;
&lt;h2 id=&#34;cubesandbox-的隔離模型是什麼&#34;&gt;CubeSandbox 的隔離模型是什麼
&lt;/h2&gt;&lt;p&gt;CubeSandbox 基於 RustVMM 和 KVM，為每個沙箱提供獨立的 Guest OS 核心。與共享宿主核心的普通容器相比，它的目標是減少容器逃逸帶來的影響範圍；倉庫還提供 eBPF 網路隔離、出口控制、審計和憑據保險庫等元件。&lt;/p&gt;
&lt;p&gt;這幾個概念需要分開理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;計算隔離&lt;/strong&gt;：限制 Agent 在自己的沙箱內執行程式碼，不直接獲得宿主機程序和核心許可權。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;檔案隔離&lt;/strong&gt;：決定沙箱能看到哪些掛載目錄、模板和持久卷。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;網路隔離&lt;/strong&gt;：決定它能訪問哪些域名、API 和內部服務。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;身份隔離&lt;/strong&gt;：決定憑據是否直接進入環境、日誌或模型上下文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;業務隔離&lt;/strong&gt;：決定 Agent 是否有權修改真實資料、傳送訊息或觸發部署。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;KVM 能改善前四層，但不能自動完成最後一層。即使程式碼在獨立虛擬機器裡執行，拿到了高許可權生產 token 仍可能造成真實業務影響。&lt;/p&gt;
&lt;h2 id=&#34;部署前的基礎條件&#34;&gt;部署前的基礎條件
&lt;/h2&gt;&lt;p&gt;官方快速開始要求 &lt;strong&gt;支援 KVM 的 x86_64 Linux 環境&lt;/strong&gt;。它支援單節點部署，也能擴充套件為多節點叢集；沒有 KVM 時可以使用開發環境方案，但官方將其標為效能較差，不應直接當作高併發生產基準。&lt;/p&gt;
&lt;p&gt;準備環境時先確認：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;CPU 虛擬化已在 BIOS 和宿主機系統中啟用，KVM 裝置可用。&lt;/li&gt;
&lt;li&gt;控制節點、計算節點和儲存位置的職責已劃分，不把控制面與業務資料混在一起。&lt;/li&gt;
&lt;li&gt;映象或模板來源可追溯，包含固定版本的執行時、包管理器和基礎工具。&lt;/li&gt;
&lt;li&gt;日誌、指標和審計資料有獨立儲存與保留策略，不依賴 Agent 自己解釋發生了什麼。&lt;/li&gt;
&lt;li&gt;有能力在異常時停止單個沙箱、停止佇列或切斷出口，而不是隻能停掉整個叢集。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;安裝完成後，官方 Web 控制檯預設使用控制節點的 &lt;code&gt;:12088&lt;/code&gt; 埠。控制檯應放在受限網路中，不要直接暴露到公網；為管理員設定獨立身份認證和網路訪問規則。&lt;/p&gt;
&lt;h2 id=&#34;併發怎麼規劃&#34;&gt;併發怎麼規劃
&lt;/h2&gt;&lt;p&gt;CubeSandbox 的優勢之一是快速建立和高密度執行。官方基準將冷啟動描述為單併發平均低於 60ms，並給出小規格例項低於 5MB 的基礎記憶體開銷；但這些是特定環境下的效能資料，不應直接等同於你的業務容量。&lt;/p&gt;
&lt;p&gt;規劃併發時，把容量拆成四個變數：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;變數&lt;/th&gt;
          &lt;th&gt;要問的問題&lt;/th&gt;
          &lt;th&gt;常見誤區&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;佇列長度&lt;/td&gt;
          &lt;td&gt;同時有多少 Agent 任務等待執行？&lt;/td&gt;
          &lt;td&gt;只看平均請求量，不看高峰突發&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;單任務資源&lt;/td&gt;
          &lt;td&gt;每個任務的 CPU、記憶體、磁碟、執行時長是多少？&lt;/td&gt;
          &lt;td&gt;只估模型 token，不估編譯和依賴安裝&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;模板命中&lt;/td&gt;
          &lt;td&gt;任務是否使用預熱模板或頻繁重新安裝依賴？&lt;/td&gt;
          &lt;td&gt;所有任務從空映象啟動&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;外部瓶頸&lt;/td&gt;
          &lt;td&gt;網路、LLM API、資料庫或瀏覽器服務能否承受併發？&lt;/td&gt;
          &lt;td&gt;沙箱夠快就認為整條鏈路夠快&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;建議從少量併發開始，用真實任務測量建立延遲、執行時長、失敗率、記憶體峰值和出口請求量，再設定每租戶、每專案和每任務型別的上限。不要把“可在單節點執行大量例項”理解為可以無限制接受外部請求。&lt;/p&gt;
&lt;h2 id=&#34;許可權配置要遵循最小範圍&#34;&gt;許可權配置要遵循最小範圍
&lt;/h2&gt;&lt;p&gt;最安全的預設狀態是：沒有掛載、沒有憑據、沒有網路出口、沒有持久化。然後按任務逐項增加能力。&lt;/p&gt;
&lt;p&gt;一個可執行的許可權分層可以是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;只讀分析沙箱&lt;/strong&gt;：只讀程式碼快照，無網路、無金鑰，允許靜態分析和測試規劃。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;構建與測試沙箱&lt;/strong&gt;：可寫臨時工作目錄，允許從內部製品源下載依賴，不掛載宿主機專案目錄。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;受控整合沙箱&lt;/strong&gt;：只允許訪問列入白名單的測試 API，憑據由保險庫按請求注入並設定最短有效期。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人工審批任務&lt;/strong&gt;：涉及外發、生產資料、付費資源或基礎設施變更時，先暫停並要求審批，不讓 Agent 直接獲得能力。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不要掛載整個使用者主目錄、Docker socket、SSH 私鑰目錄、雲憑據目錄或生產配置。掛載比提示詞更有決定性：一旦目錄可寫，Agent 生成的程式碼或工具就可能影響其中所有內容。&lt;/p&gt;
&lt;h2 id=&#34;網路出口和憑據如何處理&#34;&gt;網路出口和憑據如何處理
&lt;/h2&gt;&lt;p&gt;CubeSandbox 提供 CubeEgress 用於域名過濾、憑據注入和訪問審計，目標是讓 API key 不直接進入沙箱、模型上下文或普通日誌。使用時仍要驗證自己的策略，而不是把“憑據保險庫”當成免審計標誌。&lt;/p&gt;
&lt;p&gt;建議：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;預設拒絕外網，只允許任務必需的域名和埠；&lt;/li&gt;
&lt;li&gt;把包倉庫、模型 API、測試服務和內部文件分別列入白名單；&lt;/li&gt;
&lt;li&gt;為每類任務使用最小許可權、短生命週期、可撤銷的憑據；&lt;/li&gt;
&lt;li&gt;記錄請求目標、時間、任務 ID 和結果碼，不記錄完整金鑰或敏感請求體；&lt;/li&gt;
&lt;li&gt;對出現未知域名、異常流量或反覆失敗認證的任務自動停止並告警。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;網路允許列表能減少無關外聯，但不能判斷業務請求是否正確。對支付、使用者資料和生產控制面，仍應在業務系統一側實施鑑權、審批和速率限制。&lt;/p&gt;
&lt;h2 id=&#34;自動暫停快照與回滾怎樣降低成本&#34;&gt;自動暫停、快照與回滾怎樣降低成本
&lt;/h2&gt;&lt;p&gt;長任務不等於要讓每個環境永遠執行。CubeSandbox 提供自動暫停/恢復，以及快照、克隆和回滾能力，可以用於降低空閒成本和加快相似任務的啟動。&lt;/p&gt;
&lt;p&gt;合理的使用方式是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;對閒置的開發或評測環境設定自動暫停；&lt;/li&gt;
&lt;li&gt;在安裝完穩定依賴、配置好執行時後製作模板或快照；&lt;/li&gt;
&lt;li&gt;用克隆啟動相同任務的併發副本，而不是反覆從零安裝；&lt;/li&gt;
&lt;li&gt;在 Agent 修改出現異常時回滾到已知檢查點；&lt;/li&gt;
&lt;li&gt;為快照、日誌、持久卷和長時間暫停環境單獨計算儲存成本。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自動暫停會節省計算資源，但會帶來恢復延遲；快照和持久卷提升可復現性，也會增加儲存與生命週期管理負擔。成本模型應同時包含計算、儲存、網路出口、模板構建、觀測和人工審查時間。&lt;/p&gt;
&lt;h2 id=&#34;一個-agent-任務的安全執行流程&#34;&gt;一個 Agent 任務的安全執行流程
&lt;/h2&gt;&lt;p&gt;可以把高風險任務按以下順序執行：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;接收任務後先分類：只讀、構建測試、受控整合或需要審批。&lt;/li&gt;
&lt;li&gt;為任務選擇最小模板、資源配額、有效期和網路白名單。&lt;/li&gt;
&lt;li&gt;建立獨立沙箱，記錄任務 ID、模板版本和策略版本。&lt;/li&gt;
&lt;li&gt;在沙箱內執行命令，實時收集標準輸出、退出碼、資源使用和網路審計。&lt;/li&gt;
&lt;li&gt;對寫入外部系統、使用敏感憑據或超出預算的動作暫停並請求審批。&lt;/li&gt;
&lt;li&gt;輸出結果、diff、測試記錄和引用來源，而不是隻輸出“完成”。&lt;/li&gt;
&lt;li&gt;回收臨時沙箱；需要複用時按策略暫停或儲存快照。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;這套流程也適用於 &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/zh-tw/2026/07/10/ai-agent-long-task-resume-guide/&#34; &gt;AI Agent 長任務中斷後怎麼恢復&lt;/a&gt;：恢復時先驗證快照、任務輸入和許可權策略是否仍有效，不要盲目從舊狀態繼續執行。&lt;/p&gt;
&lt;h2 id=&#34;常見誤區&#34;&gt;常見誤區
&lt;/h2&gt;&lt;h3 id=&#34;用了-kvm-就不需要許可權控制&#34;&gt;“用了 KVM 就不需要許可權控制”
&lt;/h3&gt;&lt;p&gt;錯誤。KVM 主要隔離計算環境；掛載、網路、憑據和業務 API 許可權仍由你的配置決定。最危險的組合往往是隔離很強的 VM 加上過度授權的生產 token。&lt;/p&gt;
&lt;h3 id=&#34;併發越高成本越低&#34;&gt;“併發越高，成本越低”
&lt;/h3&gt;&lt;p&gt;不一定。高併發會放大 LLM API、資料庫、頻寬、映象拉取和日誌系統的壓力。先設定配額、佇列和退避策略，再逐步壓測，而不是在真實使用者任務上試錯。&lt;/p&gt;
&lt;h3 id=&#34;自動暫停後就沒有成本&#34;&gt;“自動暫停後就沒有成本”
&lt;/h3&gt;&lt;p&gt;暫停環境仍可能佔用快照、持久卷、日誌和控制面資源。應設定過期清理規則，並統計恢復頻率，避免把短期快取變成永久閒置資產。&lt;/p&gt;
&lt;h2 id=&#34;總結&#34;&gt;總結
&lt;/h2&gt;&lt;p&gt;CubeSandbox 適合需要執行不可信程式碼、工具呼叫或高併發 Agent 的執行環境。它的價值在於把計算、檔案、網路和憑據分層隔離，並用暫停、模板、快照和克隆控制啟動與資源成本。真正安全的配置不是“開一個沙箱”，而是為每類任務設定最小許可權、可觀測執行、明確審批和可回收生命週期。&lt;/p&gt;
&lt;p&gt;官方倉庫：&lt;a class=&#34;link&#34; href=&#34;https://github.com/TencentCloud/CubeSandbox&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/TencentCloud/CubeSandbox&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
