跳到主要內容
NVIDIA NOOA 解析:Agent Harness 如何改變模型成績?
/閱讀約 15 分鐘/

NVIDIA NOOA 解析:Agent Harness 如何改變模型成績?

NVIDIA 開源 NOOA,把 Agent 的狀態、方法、提示與型別整合進 Python class。本文解析 Agent Harness 的六項能力、官方評測結果,以及程式碼執行與安全隔離的現實限制。

目錄+

在 NVIDIA 團隊公布的測試中,同一個模型換一套 Agent Harness,成績可能差到兩位數百分點。

這不是說 Harness 能憑空把小模型變成頂級模型,而是提醒我們:模型提供推理與動作決策,真正決定它能不能完成長任務的,還包括它如何看見狀態、呼叫工具、驗證結果、保留記憶,以及判斷工作是否完成。

NVIDIA Labs 在 2026 年 7 月開源 NVIDIA-labs OO Agents(NOOA),就是把這套「模型周圍的工作環境」當成主要研究對象。

NVIDIA-NeMo/labs-OO-Agents on GitHub

從會寫 RTL 的模型,看見 Harness 的存在

NVIDIA AI 最近展示 Nemotron 3 Ultra 處理代理式晶片設計:模型撰寫 RTL、交給 simulator 執行、讀取失敗訊息,再修改程式碼。這個循環一直重複,直到設計通過驗證。

這則貼文不是 NOOA 的產品展示,兩者不能直接畫上等號。它比較像一個容易理解的例子:只有模型並不足以完成任務,外面還需要一套系統負責執行、回傳觀察、保存進度與控制迴圈。

這套系統就是 Agent Harness。

如果把 LLM 比喻成大腦,Harness 就是它的工作桌、工具箱、筆記本、操作規則與驗收流程。桌面太亂、工具回傳格式不穩、筆記每隔一段時間就遺失,即使大腦沒有變笨,最後的工作成果仍會下降。

Agent Harness 不只是模型外面的包裝

一般聊天介面的流程很短:使用者輸入文字,模型回傳文字。

Agent 的流程則長得更像軟體執行:

Loading diagram...

模型每次採取行動後,Harness 都要決定下一輪讓它看到什麼。工具輸出要完整塞進 context,還是只給一段 preview?模型說「完成了」就停止,還是必須交出符合型別、附帶驗證證據的結果?

這些選擇會改變 token 成本、錯誤恢復能力與長任務可靠性。因此 NOOA 的核心主張不是「物件導向寫法比較漂亮」,而是:軟體介面本身就是 Agent 能力的一部分。

NOOA 如何把 Agent 變成 Python 物件?

許多 Agent 框架把 prompt、tool schema、callback、workflow graph 與 state 分散在不同檔案。NOOA 選擇把它們收回一個 Python class。以下是省略 LLM client 設定的概念範例,不是可直接執行的完整程式:

from nooa import Agent


class ResearchAgent(Agent):
    """整理研究資料,並回傳經過驗證的摘要。"""

    sources: list[str]

    def source_count(self) -> int:
        return len(self.sources)

    async def summarize(self, topic: str) -> str:
        """根據目前資料來源整理主題,缺少證據時必須指出。"""
        ...

這段程式裡:

  • ResearchAgent 是 Agent 本身。
  • sources 是模型可見的物件狀態。
  • source_count() 有普通 method body,所以執行的是確定性 Python。
  • summarize() 的 method body 是 ...,NOOA 會在執行時啟動 LLM loop。
  • method name、參數和 docstring 共同描述任務。
  • str 回傳型別是契約;結果不符合時,Harness 可以把錯誤交回模型修正。

對開發者來說,Agent 因此可以像其他程式碼一樣做 diff、code review、unit test、trace 與 refactor。對模型來說,它面對的是訓練資料中早已熟悉的 Python,而不是另一套新發明的 workflow DSL。

NOOA 集中處理的六項能力

NOOA 技術報告整理了六個 model-facing interface capabilities。它們並非每一項都由 NOOA 首創;研究團隊的主張是,NOOA 首次把六項能力放在同一個介面上。

能力NOOA 的做法實際影響
Typed input/outputmethod 參數與回傳型別成為執行契約減少自由文字交接,錯誤可自動重試
Pass-by-reference大型資料保留為 live Python object,只向模型顯示有限 preview不必把完整工具結果反覆塞回 context
Code as action模型在類似 Jupyter REPL 的環境撰寫 Python能使用迴圈、條件、library 與多步控制流
Programmable loop開發者與模型都能用普通 Python 組合流程不需另外學一套 workflow language
Explicit object state不依賴對話紀錄的顯式物件狀態放在 Agent fieldscontext 被整理後,關鍵狀態不一定跟著消失;跨 session 保存另由 long-term memory 負責
Harness APIscontext blocks 與 event history 可被程式化查詢模型能主動管理自己看到的內容與歷史

其中最有意思的是 pass-by-reference。假設工具回傳一個百萬列資料表,NOOA 不必把整張表序列化成文字。模型先看到資料型別、長度與頭尾樣本,再寫 Python 對真正的物件做篩選或統計。

這讓「模型能處理的資料量」不再完全等於「context window 能塞多少文字」。完整資料仍在執行環境,context 只承載模型當下需要理解的部分。

NVIDIA 公布的評測結果,應該怎麼讀?

NOOA 的數字很亮眼,但不同表格回答的是不同問題。SWE-bench Verified 測試 Agent 能否修好真實 GitHub issue;CyberGym L1 測試漏洞發現與驗證;ARC-AGI-3 則要求 Agent 在陌生格狀遊戲中靠互動找出規則。ARC 使用的 RHAE 是相對人類基準衡量動作效率的分數,而 reasoning effort 是模型在回答前投入的額外推理資源。

先把口徑分開:

評測NVIDIA 團隊公布結果正確解讀
Capability tests4,309 / 4,400 筆紀錄通過,97.9%10 種模型大多能使用 NOOA 介面,不是真實世界任務成功率
SWE-bench VerifiedGPT-5.5 在 off、high、xhigh reasoning 分別為 67.2%、78.8%、82.2%同一模型增加 reasoning effort,成績也明顯變動
SWE-bench VerifiedGPT-5.5 xhigh:NOOA 82.2%、OpenCode 1.14.33 為 78.6%、PI 0.72.1 為 78.2%在論文設定下,Harness 仍造成可測量差距
CyberGym L1GPT-5.5、封鎖網路下解出 86.8%論文稱其為該表最高分的開源 Agent
ARC-AGI-3 memory ablationGPT-5.5 使用 NOOA memory 為 50.2%,markdown notes 為 38.4%相同 world-model skill 下,記憶系統增加 11.8 個 RHAE 百分點

Capability tests 共包含 88 個測試案例、36 個家族、10 種模型,每項重跑五次。97.9% 證明的是多數現代模型能看懂 typed methods、操作 state、使用 REPL 並交回合法型別;其中較困難的 stress subset 只有 84.7%,長序列 bookkeeping 與錯誤恢復仍會拉開模型差距。

最能支持「Harness 會影響能力」的,是論文內使用同一模型與 reasoning 設定的比較。以 GPT-5.5 關閉 reasoning 的 SWE-bench Verified 為例,NOOA 是 67.2%,OpenCode 是 59.2%,PI 是 60.8%。到了 xhigh,三者差距縮小到 3.6 至 4 個百分點。這代表 Harness 在模型本身缺少規劃與驗證紀律時,可能補得更多。

論文也把 NOOA + Claude Opus 4.6 的 79.8%,與 OpenHands CodeAct 已公開的 68.4% 相比,得到 11.4 個百分點差距。這是同一底層模型的公開結果比較,但不是同一批實驗中的完全受控 A/B test,適合視為值得重現的訊號,不宜寫成已證明的普遍定律。

效率也值得注意。論文報告 NOOA + GPT-5.5 xhigh 在 SWE-bench 每題約使用 28 次模型呼叫與 110 萬 tokens;PI 約用 66 次呼叫與 220 萬 tokens,分數仍較低。研究團隊把差異歸因於 live objects、bounded previews 與 append-only context,使系統不必反覆序列化工具輸出,也能保留 prefix cache。

ARC-AGI-3 方面,GPT-5.6-sol 搭配 NOOA 得到 85.1% RHAE,ARC Prize 公布的 raw model 結果為 13.3%。論文自己也提醒兩邊預算不同,因此只能作方向性觀察,不能直接說 NOOA 讓模型能力提升六倍。

NVIDIA 真正想建立的是一整套 Agent 技術棧

NOOA 不需要限定使用 NVIDIA 模型。它透過 LiteLLM 支援託管與本地模型,官方 README 示範了 OpenAI、Anthropic、Ollama 與 vLLM。這個 model-agnostic 設計反而更能說明 NVIDIA 的企圖:讓自己掌握的不是單一模型,而是 Agent 從模型到執行環境的多個層次。

使用託管 API 不需要自行準備 GPU;若想用 Ollama 測試較小的本地量化模型,麗臺 RTX PRO 4000 Blackwell 24GB可作為工作站選項,但硬體需求仍取決於實際模型大小,並不是使用 NOOA 的必要條件。

可以把目前版圖粗略分成四層:

  1. 模型層:Nemotron 提供可用於推理與 Agent 任務的模型。
  2. Agent 開發層:NOOA 定義狀態、能力、提示、記憶與執行迴圈。
  3. 安全執行層:OpenShell 用作容器或作業系統層級的隔離邊界。
  4. 推理基礎設施層:Dynamo 處理長 context Agent workload 的 routing、KV cache 與分散式 serving。

想看安全執行層,可以延伸閱讀 NemoClaw、OpenShell 與 NVIDIA 開源 Agent 版圖;推理層則可接著看 NVIDIA Dynamo 如何處理 Agentic Inference 的 KV cache

這套布局的商業意義很直接:當模型逐漸可以替換,競爭會往「誰能讓模型更穩定、更便宜、更安全地工作」移動。Harness、runtime、memory 與 inference infrastructure,都可能成為比 chatbot 介面更難替換的部分。

NOOA 現在最大的限制,也是它的核心優勢

NOOA 的 CodeAct 會在 Agent 自己的 process 內執行模型生成的 Python。這樣才能保留 live objects 與 pass-by-reference,不必穿過 sandbox boundary 後把資料序列化。

代價是安全風險。

官方 README 說得很清楚:AST checks 與 module deny-list 只是 defense-in-depth guardrails,不是 containment boundary。Python 的檔案存取、動態 import 與 reflection,都不是靜態檢查能完整封鎖的。

只要 Agent 能執行模型產生的程式碼,就應把整個 Agent process 放進容器、VM、權限系統或 OpenShell,而不是相信 in-process validator。

這形成一個真正的工程取捨:把程式碼搬到外部沙箱比較安全,卻會犧牲 live object reference;留在同一 process 效率較高,安全邊界就必須包在更外層。

還有兩個限制不能忽略:

  • NOOA 是研究型軟體,不是已證明可直接接管 production workflow 的成熟平台。
  • 論文談到用 reinforcement learning 訓練模型使用 Harness 的可能性,但那是未來研究方向,不是目前已整合的 NOOA + NeMo RL 功能。

常見問題

NOOA 是 AI 模型,還是 Agent 框架?

NOOA 不是模型,而是 model-agnostic 的 Python Agent Harness。它負責向模型呈現狀態、提供方法、執行動作、驗證回傳值,以及管理事件與記憶。

NOOA 能搭配 OpenAI、Claude 或本地模型嗎?

可以。NOOA 透過 LiteLLM 支援多種託管與本地模型,官方範例包含 OpenAI、Anthropic、Ollama 與 vLLM。實際相容性仍取決於模型是否能穩定使用程式碼與型別介面。

NOOA 適合直接部署到正式環境嗎?

不建議把預設的 in-process 程式碼執行視為安全邊界。官方將 NOOA 定位為研究型軟體,正式環境應放進容器、VM 或 OpenShell 等作業系統層級沙箱。

我的判斷

NOOA 最重要的地方不是「用 class 寫 Agent」這個語法,而是它把 Harness 從幕後工程提升成可測量、可修改的能力介面。

目前的結果還不足以證明 NOOA 會全面取代其他框架。評測由專案團隊執行,部分比較引用不同時間與設定的公開成績,production safety 也需要另一層系統補足。但它提出了一個很有說服力的方向:下一輪 Agent 競爭,不只會訓練更強的模型,也會共同設計模型工作的環境。

後續文章會繼續拆 NVIDIA 的模型與 Agent 訓練專案,包含 Nemotron、NeMo Gym、NeMo RL,以及 OpenShell 如何補上安全執行層。

你想先看 NeMo Gym 與 NeMo RL 的代理訓練流程,還是 Nemotron 模型家族?


利益揭露:本文含一條蝦皮聯盟連結,若你透過連結購買,我可能獲得分潤,不影響你的價格。

資料來源NOOA GitHubNVIDIA Technical BlogNOOA Technical ReportNVIDIA OpenShell