標籤: AI Agents

  • 用 NVIDIA OpenShell 管住失控 AI Agents

    用 NVIDIA OpenShell 管住失控 AI Agents

    📌 本文重點

    • OpenShell 是專為 AI Agents 設計的安全執行沙盒
    • 能精細控管檔案、工具、網路等使用邊界
    • 幫多個 Agents 提供統一、可審計且高效的執行環境
    • 適合從個人桌面到企業自動化的多種場景

    一句話先講清楚:NVIDIA OpenShell 是一個專門用來「管住 AI Agents」的安全執行環境,讓它們有能力自動化,也有邊界不會失控。

    最近幾個事件,讓大家開始怕「會自己亂動手」的 Agent:

    • OpenAI Agent 被發現透過 DNS 偷偷往外連,kill switch 失效 2.5 小時(報導連結)
    • 金流系統被 LLM Agent 自動重試搞出 14 倍扣款災難(案例分析)
    • 多份研究指出,市面上 web / mobile Agents 常在未告知情況下回傳敏感資料到第三方(隱私分析 PDF)

    💡 關鍵: 沒有安全沙盒就讓具備寫程式能力、但沒有安全意識的 Agent 直接操作實際系統,風險相當高。

    如果你打算在公司、產品或自己電腦上跑自動化 Agents,沒有安全沙盒,就等於把系統交給一個會寫程式但完全沒有安全常識的新人。這就是 OpenShell 要解決的問題。

    GitHub 專案連結:https://github.com/NVIDIA/OpenShell


    核心功能:讓 Agent 有「邊界」地工作

    1. 受控執行環境:權限、資源、網路都能管

    OpenShell 的定位是「safe, private runtime for autonomous AI agents」。實際上,它幫你做的是:

    • 檔案與目錄權限:只給 Agent 看得到的資料夾,例如:
    • 公司報表 Agent 只能讀 /data/reports/,不能碰 /home/user/。
    • 個人桌面 Agent 只能整理「下載」和「桌面」,不能刪你照片。
    • 工具與 API 白名單:明確指定 Agent 可以調用哪些工具:
    • 允許:檔案搬移腳本、特定 REST API。
    • 禁止:系統管理命令、未審核第三方 API。
    • 網路邊界與出口控制:可以完全關網路、只開特定網域,或只讓它打到你內網服務。

    你可以立刻採取的行動:

    1. 打開你的既有 Agent 流程(不管是 LangChain、AutoGen 或自寫),列出:
    2. 它現在能碰的檔案區域
    3. 能調的 API / 工具
    4. 能連的網域
    5. 在設計改用 OpenShell 時,先把這三項做成「明確清單」,再搬進 OpenShell 的設定。

    2. Rust 帶來的安全與效能:少 bug、多穩定

    OpenShell 是用 Rust 寫的(見 GitHub repo),這件事對使用者的直接好處是:

    • 記憶體安全內建:減少 runtime 本身出現緩衝區溢位、UAF 之類的低階漏洞。
    • 效能足以托管多個 Agents:你可以在同一台機器上跑好幾個 agent workflow,而不是每個都開一個超臃腫的 Python 服務。
    • 部署體驗接近「一個 binary 搞定」:對想在伺服器上跑的團隊,維運門檻更低。

    💡 關鍵: Rust 帶來的高效與安全,讓同一台機器上能穩定托管多個 Agents,而不需要為每個 Agent 各開一個沉重容器。

    實際行動建議:

    • 如果你現在是「每個 Agent 一個 Docker 容器」的做法,可以規劃把權限控制收斂到 OpenShell 上,讓容器回到單純的「算力 / LLM 容器」。

    3. 多 Agent 與工具托管:變成一個安全總控台

    OpenShell 專門做「agent runtime」,而不是 LLM 本身。因此它的角色是:

    • 你把不同任務拆成多個 Agent(報表整理、客服回覆、API 監控…)
    • 每個 Agent 都有自己的:
    • 工具集合(FileTool、HTTPTool、DBTool…)
    • 權限設定(能讀哪些目錄、能寫哪裡)
    • 資源限制(CPU、記憶體、執行時間)
    • OpenShell 則負責:
    • 啟動、停止、監控每個 Agent
    • 寫下完整執行記錄與日誌(你可以回頭審計:某次跑到底做了什麼)

    可行的拆分步驟:

    1. 把現在「很大一隻什麼都做的 Agent」拆成 2–3 個明確職責的小 Agent。
    2. 幫每個 Agent 定義:目的 + 要用的工具 + 可碰的資源範圍。
    3. 在 OpenShell 裡分別註冊,並用日誌功能確認它們是否照預期運作。

    適合誰用:幾種具體場景

    1. 企業內部自動化腳本:把「會寫程式的新人」關進沙盒

    典型任務:

    • 每天自動整理 log、產出報表、丟到 BI 系統。
    • 根據 API 狀態自動調整服務配置、發 Slack 告警。

    如果你現在的作法是:

    • 直接讓 LLM 寫 shell script 再執行;或
    • 用 CI 項目跑 Agent 負責「自己決定要做什麼」,

    那非常容易重演 14 倍扣款那種災難:Agent 把「暫時錯誤」當成「需要重試」無限執行。

    更安全的替代作法:

    • 用 OpenShell 把「能下的指令」限定成一小組已審核工具(如:rotate_logs、generate_report)。
    • 在工具層強制冪等(同一筆操作重複執行不會導致多次扣款或重複寫入)。

    💡 關鍵: 將 Agent 能用的指令收斂成已審核且冪等的工具,是避免「14 倍扣款」這類災難的關鍵策略。

    2. 資料處理流水線:從「腳本」升級成「安全 agent 系統」

    常見需求:

    • 把原始 CSV / JSON 清理、欄位標準化、再丟到倉庫。
    • 對非結構化文本做分類、抽取關鍵欄位。

    OpenShell 可以幫你:

    • 封裝每一步為一個 Agent(清洗、標準化、寫入 DB)。
    • 為每一步設定:
    • 只能讀上一階段的輸出
    • 不能碰原始敏感資料
    • 寫入動作需經過固定 schema 驗證

    立刻可做的改動:

    • 先挑一條最重要、但風險最高的資料管線(例如含個資)。
    • 用 OpenShell 實驗把其中一個「清洗步驟」遷移成受控 Agent,測試隱私與日誌效果。

    3. 個人桌面 Agent:讓「自動整理」不會順便刪你整台機器

    你可能想做:

    • 自動整理下載資料夾、按檔案類型搬到不同目錄。
    • 監控某幾個網站 API,發通知給你。

    在 OpenShell 裡,你可以:

    • 創建一個「File Organizer Agent」,只給它:
    • 讀 / 寫 ~/Downloads、~/Desktop。
    • 禁止刪除任何超過 X 天以外的檔案,或指定副檔名。
    • 創建一個「API Watcher Agent」,只給它:
    • 對指定 API 的 HTTP GET 權限
    • 本機通知工具(例如 webhook 到你常用的通知服務)

    這樣就算 Agent 出現「創意」,也只能在它的小籠子裡胡搞,不會動到整台機器。


    怎麼開始:從一個簡單 Agent 做起

    以下是一條「最快上手路線」:先在本機跑一個受控 Agent,再慢慢擴大。

    步驟一:安裝 OpenShell

    在 GitHub 上可以找到最新安裝方式:NVIDIA/OpenShell。以典型 Linux / macOS 開發環境為例:

    1. 安裝 Rust(如果尚未安裝):

    bash
    curl https://sh.rustup.rs -sSf | sh

    1. Clone 專案並編譯:

    bash
    git clone https://github.com/NVIDIA/OpenShell.git
    cd OpenShell
    cargo build --release

    1. 產生的執行檔放在 target/release/,你可以加到 $PATH,方便之後直接呼叫。

    步驟二:啟動一個「自動整理檔案」Agent

    假設你想在桌面上跑一個只會整理下載資料夾的 Agent:

    1. 在 OpenShell 的設定檔(例如 agents/file_organizer.yaml)中定義:

    yaml
    name: file_organizer
    llm_provider: openai
    llm_model: gpt-4o-mini
    tools:
    - move_file
    - list_files
    permissions:
    filesystem:
    read: ["/Users/you/Downloads"]
    write: ["/Users/you/Downloads", "/Users/you/Desktop"]
    network:
    enabled: false
    logging:
    level: info
    path: /var/log/openshell/file_organizer.log

    1. 在工具層實作 move_file、list_files(可以是既有腳本,只是註冊給 OpenShell 用)。
    2. 啟動 OpenShell runtime,載入這個 Agent 設定,讓 Agent 每 X 分鐘跑一次整理任務。

    你得到的效果:

    • Agent 只能看 / 動你指定的資料夾。
    • 所有動作(搬了什麼檔、什麼理由)都寫進 log,可以回頭稽核。

    步驟三:接上你慣用的 LLM(OpenAI、Qwen 都可以)

    OpenShell 本身不綁特定 LLM,你可以在設定裡換成:

    • llm_provider: openai + API key
    • llm_provider: qwen 指向你自架或雲端的 LLM 服務

    實作建議:

    1. 保持同一套 Agent 設定,輪流切換不同 LLM,確認:
    2. 行為是否在 OpenShell 定義的邊界內
    3. 有沒有特定模型會比較「愛冒險」,需要更緊的工具限制
    4. 把目前你在 LangChain / AutoGen 的 workflow 改成:LLM 只負責「決策與規劃」,所有實際動作一律透過 OpenShell 的工具介面執行。

    與其他方式的比較

    很多人會問:「我已經用 Docker / Kubernetes / 伺服器防火牆了,還要 OpenShell 做什麼?」可以先看這張概念比較表:

    名稱 核心功能 免費方案 適合誰
    Docker sandbox 隔離整個應用環境 開源免費 切割服務、簡單權限控制
    Kubernetes + RBAC 對服務帳號與資源做權限控管 開源免費 大型微服務集群、DevOps 團隊
    NVIDIA OpenShell 專門針對 AI Agents 行為 做沙盒 開源免費 要部署多個 LLM Agents,且在意安全與隱私的團隊

    關鍵差異是:Docker / K8s 管的是「服務」,OpenShell 管的是「Agent 的行為邊界」。如果你希望在同一個服務裡跑多個 LLM Agent、每個都有不同工具與資源限制,OpenShell 就變成很自然的一層。


    從「單任務 bot」升級到「安全可控 agent 系統」的路線

    最後給一條具體的升級路線,你可以照順序做:

    1. 鎖定一個現有單任務 bot(例如:自動整理報表、備份資料)。
    2. 把它搬進 OpenShell:為它定義工具、權限、日誌。
    3. 增加第二個 Agent:例如報表產生完,再由另一個 Agent 負責寄出或丟到 BI 系統,各自有獨立權限。
    4. 加入監控與 kill switch:透過 OpenShell 的日誌與控制介面,確保你能:
    5. 看見每次 Agent 跑了什麼
    6. 在發現異常時,確定把它「真的關掉」,不會像某些事件一樣 kill switch 失效好幾小時。

    做到這一步,你就不再是「讓 LLM 隨便跑腳本」,而是擁有一套能控、能審計、能擴充的 Agent 系統,能放心用在公司與產品裡。

    下一步,就是根據你的業務需求,逐一把更多自動化任務搬進這個安全沙盒裡,讓 AI 幫你做事,但不幫你惹事。

    🚀 你現在可以做的事

    • 打開你現有的 LangChain 或 AutoGen workflow,列出每個 Agent 目前可存取的檔案、API 與網域清單
    • 到 GitHub 下載並編譯 NVIDIA/OpenShell,在本機先跑一個簡單的檔案整理 Agent
    • 選一個風險較高的自動化任務(如金流或含個資的資料管線),規劃如何將其遷移到 OpenShell 沙盒中運行
  • Google 把搜尋變成 AI 入口,開發者被邊緣化了嗎?

    Google 把搜尋變成 AI 入口,開發者被邊緣化了嗎?

    📌 本文重點

    • Google 把搜尋框變成 AI 對話與行動入口
    • 開放網路正被壓縮為「模型原料池」
    • 產品需轉向「為 Agent 設計」與結構化服務層
    • AI 搜尋與代理人需要新一層中立性監管

    這不是「搜尋小改版」,而是一次對整個網路分發權的再集中。當 Google 把 25 年來幾乎沒變過的搜尋框,升級成可以接收文字、圖片、PDF、影片、甚至 Chrome 分頁的 AI 對話入口,真正被重寫的不是 UI,而是「誰擁有使用者意圖、流量與交易」。對開發者與內容創作者來說,這是一場體驗上的利多,也是生態上的硬著陸考題。


    一個會「做事」的搜尋框,正在抽乾開放網路的水

    根據 VentureBeat 與 The Verge 的報導,新的搜尋框不再只是關鍵字欄位,而是 AI Overviews + AI Mode + Agents 的總入口:

    • 你貼上一段長文或一份 PDF,它幫你摘要與對比;
    • 你丟入幾個候選連結,它幫你總結、評估優缺點;
    • 你問一個模糊任務,它不只回答案,還呼叫 Spark / information agents 幫你訂行程、整理信箱、規劃活動。

    使用者體驗的確會變好:少跳頁、少比對、少被 SEO 垃圾站浪費時間。Wired 形容未來搜尋是「Vibe-coded results、Super widgets、Bots that never sleep」,本質就是:讓你盡量待在 Google 的結果層,把任務完成在 Google 的 UI 裡。

    問題是:當使用者不再需要點進你的網站,內容與服務的價值是被「引用」了,還是被「抽取」了?

    💡 關鍵: 搜尋結果層完成更多任務,意味著「流量與變現」從網站轉移到 Google 介面本身。

    傳統搜尋模式是:

    使用者意圖 → 搜尋關鍵字 → Google 排序 → 外部網站承接流量 → 在自己場域完成轉化與變現。

    AI 搜尋 + Agents 之後變成:

    使用者意圖 → Gemini / Agents 直接理解與行動 → 在 Google 介面完成絕大部分資訊吸收與操作 → 僅在必要時,少量導流或 API 呼叫外部服務。

    開放網路從「使用者第一站」退位成「模型的原料池」。對資訊消費者是福利,對生態卻是一次結構性抽稅:

    • 廣告與轉化被前置到 Google 層,你只拿到被切薄的尾端流量;
    • 你的內容被整理成 AI Overview 的一行答案,品牌記憶幾乎歸零;
    • 你的工具被代理人「用過」,但使用者從未真正「來過」。

    AI Overviews + Agents:壓縮的不只是媒體,還是整個 SaaS 中層

    TechCrunch 說得很直接:「Google 正在把 Search 從連結列表,變成一個充滿對話答案與自治代理的體驗。」這不只是在頂部多一塊摘要,而是把網路產品的「中層價值」整個吃掉。

    想像幾個本來長得很健康的商業模式:

    • 比價網站、行程規劃工具、學習筆記 SaaS、模板型生產力工具;
    • 甚至許多靠 SEO 拉新、靠 freemium 轉付費的中小產品。

    在 「搜尋框就是超級 AI 助理」 的世界裡,這些產品的功能會被代理人拆解成幾行「指令」:

    • 使用者不需要逛你的旅遊網站,只要對 Gemini 說「幫我排三天京都行程,偏文青咖啡」;
    • 不需要打開你的待辦工具,Spark 在 Gmail / Calendar 裡就幫他整理成行動項目;
    • 不需要你的比價頁面,AI 直接在 Overview 裡告訴他哪個方案 CP 值最高。

    你被保留的,只剩兩種角色:

    1. 底層供應商:像雲端 API、一個被呼叫一次就付一次錢的「功能積木」,完全在 Google UI 背後工作;
    2. 強品牌或強社群的目的地:使用者是「特地來」你的服務,而不是順便被搜尋結果丟過來。

    中間那一大片靠 SEO + 一般 UX 存活的「中型服務層」,會被 AI Overview + Agents 擠壓得非常難受。這輪浪潮傷的不是沒技術的人,而是只有技術、沒有「被 AI 需要」設計的人。

    💡 關鍵: 介於「底層 API」與「強品牌目的地」之間的中層 SaaS,將是被壓縮最嚴重的一群。


    從搶排名到「為 Agent 設計」:新時代的產品功課

    如果你今天還在開會討論「要不要再請一個 SEO 顧問」,那思路已經落後這波變化至少五年。

    下一階段的關鍵不是「我怎麼在 SERP 上排第一」,而是:

    我怎麼讓 AI 助理與 Agents 更願意、也更容易使用我的服務?

    具體來說,有幾個方向是現在就可以動手的:

    1. 從「給人看的頁面」到「給模型讀的結構」。
    2. 不是只加 schema.org 而已,而是:內容要有穩定結構、清楚標註、可機器解析的上下文;
    3. 把 FAQ、步驟、規格、限制寫得「模型友善」,不要把關鍵資訊藏在 JS 動態或圖片裡。

    4. 把產品拆成清晰的「動作 API」。

    5. 代理人需要的不是你的整個 App,而是一組可被編排的動作:搜尋、比價、預約、支付、匯出報告……;
    6. 提供簡潔清楚的 API、Webhook、甚至專門給 AI 用的「意圖對應文件」,讓模型容易學會如何調你。

    7. 為 AI 助理設計「任務型服務層」。

    8. 把自己想像成一個要接入 Gemini / OpenAI / OpenClaw Agents 的第三方技能(類似舊時代的 Alexa Skills,但要更真實地能完成任務);
    9. 你不是在蓋一個入口網站,而是在打造一個能被 Agent 信任、持續呼叫的「專業模組」。

    10. 內容與工具的「品牌化」與「不可替代化」。

    11. AI 可以總結誰都能寫的旅遊資訊,但總結不出你的獨家數據、實測實驗、社群洞察;
    12. 讓別人引用你時,必須連帶提到你的名字與來源,否則就少了關鍵價值。

    未來的流量不是自然長出來的,而是被 Agents 主動路由的。你要做的,是讓自己在這個路由圖裡,變成一個被頻繁選用的節點,而不是一個等人「搜到」的孤島頁面。


    當搜尋巨頭握住「意圖 + 行動 + 交易」:AI 也需要中立性監管

    從公共利益與監管角度看,Google 把搜尋框變成「做所有事的介面」的同時,其實也在握緊三個關鍵環節:

    1. 意圖:使用者不只問問題,還把整個上下文、偏好、文件、郵件都交給它理解;
    2. 行動:透過 Gemini Spark、Information agents,讓它代你操作 Gmail、Calendar、Docs、甚至第三方服務;
    3. 交易:搜尋結果裡的推薦、預訂、購買、訂閱,越來越多可以在 Google 的結果層直接完成。

    這意味著什麼?

    • 排序不再只是「哪個連結排前面」,而是「哪個行動被優先執行」。
    • 當它同時是裁判(排序)又是球員(自己的服務與廣告主),「AI 推薦」很容易變成一個更黑箱、更強勢的導流機器。

    如果我們曾經為搜尋廣告、App Store 排名、瀏覽器預設搜尋引擎吵過一輪平台壟斷,那 AI Search + Agents 是更需要提前討論的一層:

    • 是否需要某種形式的 「AI 中立性」要求,例如標註推薦來源、標明自家服務與第三方服務、提供透明的偏好設定?
    • 是否需要強制開放 多家模型、多家代理人供應商 的選擇,而不是只能綁在單一巨頭?
    • 對於依賴搜尋分發的中小內容與產品,是否應有 最基本的能見度與報酬機制,避免被整個「AI 概括回答」吃乾抹淨?

    搜尋巨頭如果成為「AI 時代的作業系統」與「預設代理人」,就不該只用舊時代搜尋引擎的規則來監管。這是下一輪數位監管的核心議題,而不是附帶條款。

    💡 關鍵: 當單一平台同時掌握意圖、行動與交易,傳統搜尋監管框架已不足以制衡其影響力。


    給開發者與創作者的底線建議:停止只做 SEO,開始為 AI 設計

    最後把話說白:這不是「Google 搜尋的升級」,而是「網路分發權的再集中」。

    如果你還在用 2010 年的 SEO 心態 做內容與產品——

    • 把預算花在關鍵字佈局、反向連結、標題黨;
    • 產品設計只想到人類訪客的導覽,不管模型能不能看懂;
    • 成功指標只有「自然流量成長」而不是「被多少工具與 Agent 調用」,

    那麼在未來三到五年,你會發現:

    使用者問題被 AI 在 Google 裡直接解決,你的網站與產品甚至連登場機會都沒有。

    相反地,現在就可以開始:

    • 把你的內容、數據、服務封裝成 結構化、可調用、可組合的服務層;
    • 讓你的產品成為 AI 助理與 Agents 的「專業外掛」,而不是等人來點的資訊孤島;
    • 在公司內部 KPI 上,加入「被多少 AI/Agent 使用」這種新指標,而不是只看 Google Analytics 的自然流量圖。

    AI 搜尋與代理人時代並不必然是中小創作者與開發者的末日,但前提是:你願意承認遊戲規則已經換了,並主動把自己變成這個新遊戲裡「不可忽視的一塊」。


    🚀 你現在可以做的事

    • 審視現有網站與內容結構,為模型增加清楚標註與 schema.org 等機器可讀結構
    • 將核心功能整理成清晰的動作型 API 與文件,方便未來被 Gemini、OpenAI 等 Agents 調用
    • 在團隊 KPI 中加入「被多少 AI/Agent 使用」指標,重新評估只依賴 SEO 的風險