AREX Feed Article
NVIDIA NOOA 杀回 Python:253行代码打下 SWE-bench 82.2%,Token 腰斩
一个没有任何 benchmark 专用 prompt、仅 253 行的通用 coding agent,搭配 GPT-5.5 在 SWE-bench Verified 上拿下了 82.2% 的解决率。而对比框架需要 66 次模型调用、约 220 万 token,才跑到 78.2%。
这 253 行代码来自 NVIDIA Labs 在 7 月 27 日开源的 NOOA(NVIDIA Object-Oriented Agents),Apache 2.0 许可,pip 可装,模型无关。
它的核心赌注只有一句话:一个 agent 就是一个 Python 对象。方法即能力,字段即状态,docstring 即 prompt,类型注解即合约——方法体里的三个点 ...,就是交给 LLM 的循环。
「你把 Agent 逻辑散在五个文件里,三个月后就没人敢动了」
NOOA 在 GitHub 上线以来收获了 665 颗星。 论文第一作者 Paul Furgale 在 LinkedIn 上写道:"我们相信开放 AI 的未来不仅取决于开放模型,也取决于开放的研究——研究模型如何与计算机交互。"
AI 教育博主 Akshay Pachaar(28 万关注者)用一条千赞推文拆解了设计思路:"大多数 agent 框架把逻辑散在 prompt 文件、tool schema、callback 和 workflow graph 里。NOOA 把它们折叠进一个 Python 类。docstring 就是 prompt,... 就是 LLM 生成,只有两种 strategy。仪式感少了,漂移 bug 也少了。"
并非所有人都买账。资深工程师 Peramanathan Sathyamoorthy 在 X 上直言:"这不是传统 OOP,没有继承层级、没有多态。NOOA 更像一种结构化方式,在一个类里声明状态、动作和合约。用 Python 类的机制解决 2026 年的问题,有点像用 2005 年的工具。"
法国 AI 工程师 Anis Ayari(Defend Intelligence,7.5 万关注者)持中间立场:"把 agent 工程拉回传统软件工程非常有吸引力——类型化、可测试、可追踪、可演进。但把状态、工具、数据和执行集中在一个对象里,也意味着 prompt injection 的爆炸半径变大了。"
Jensen Huang 的两条推文,37 家公司的联盟,一个框架
NOOA 不是凭空出现。它是 NVIDIA 更大棋局中的技术落子。
7 月 27 日,NVIDIA 宣布成立 Open Secure AI Alliance,37 家创始成员横跨芯片、云、安全、企业软件和开源社区——Microsoft、CrowdStrike、Cloudflare、Hugging Face、Linux Foundation 等悉数入列。同日,据 36氪报道,极少在社交平台发声的 Jensen Huang 当周连续发出两条推文,第二条即是宣布联盟成立。
联盟的核心主张是:AI agent 的安全防御需要全栈开源——身份、权限、隔离、模型存储、漏洞扫描、日志、评估,每一层都必须可审查、可修改。OpenAI、Google 和 Anthropic 没有加入。OpenAI 和 Google 后来签署了一封支持开源模型的公开信作为姿态,但仍未入盟;Anthropic 则连公开信也拒绝签署,CEO Dario Amodei 同日发表声明,明确反对「开放会让防御者更安全」这一前提。
在各家成员带来的技术嫁妆里,NVIDIA 出手最重。NOOA 被定位为联盟的旗舰交付。HPE 拿出了零信任身份标准 SPIFFE/SPIRE,Hugging Face 贡献了 Safetensors 安全权重格式,Microsoft 提供了 MDASH 多模型扫描工具。但 NOOA 是唯一一个从头定义了 agent 编程范式的项目。
从论文上传 arXiv(7 月 22 日)到 GitHub 建仓(7 月 20 日)再到 PyPI 发布 v0.0.8(7 月 30 日),整个节奏在一周内完成。这不是按部就班的产品发布——这是立场声明。
方法即能力,字段即状态,三个点就是 LLM 循环
NOOA 的设计原则第一条就划清了界限:如果 Python 已有成熟抽象,直接用,不要发明新的 DSL。 因此 agent 就是类,能力就是方法,并发就是 asyncio。
在此之上,NOOA 实现了六项模型面向接口能力——论文自述是第一个在同一界面上组合全部六项的框架。调研了 LangGraph、Google ADK、PydanticAI、Claude Agent SDK 等 14 个框架后,结论是:社区已在朝其中几个方向收敛,但没有人把六项全部做到位。
最关键的一项叫 pass by reference。参数以活 Python 对象传入,模型只看到有界预览——类型、长度、头尾采样。一个 100 元素的列表在 prompt 里仅占约 30 个 token,完整数据留在 REPL 中,模型通过 execute_python(...) 直接操作真实对象。
直接后果:NOOA 在 SWE-bench 上不需要任何上下文压缩。GPT-5.5 的中位数 prompt token 峰值仅 22k–72k,对比框架跑到 200k–400k。工具结果不塞入上下文,transcript 全程 append-only,KV-cache 持续命中。
两种内置 strategy:PredictStrategy 是一次性 LLM 调用加本地重试;CodeActStrategy 运行 Python REPL,模型调用 execute_python(...) 直到 return_result(...) 提交校验后的返回值。可选内存子系统在 ARC-AGI-3 上相比文件笔记提升了 +11.8 个 RHAE 百分点。
安全性方面,NVIDIA 的 README 直言:AST 检查和模块黑名单是纵深防御,不是隔离边界——隔离边界是 OS 级别的容器、VM 或 OpenShell。
Agent 框架的竞争,正在从「谁的抽象层更厚」转向「谁的代码更接近 Python」
过去三年,agent 框架的演化路径大致是:LangChain 堆 callbacks → LangGraph 上状态图 → CrewAI 和 AutoGen 做多 agent 编排。每一步都在增加抽象层,也在增加学习成本和调试难度。
一个生产级 agent 的源码往往分散在 prompt 模板、JSON schema、YAML 配置、callback 注册和 workflow 定义之间。
NOOA 走了一条相反的路。它的出发点来自论文中的一句话:"PyTorch 证明了强大的 runtime 仍然可以给用户呈现一个简单的 Python 编程模型。NOOA 把同样的概念用到 agent 上。"
PyTorch 当年用 eager execution 和 Pythonic API 取代 TensorFlow 的静态图——不是因为计算图这个抽象错了,而是因为"定义图"和"debug 图"之间的鸿沟太大。NOOA 在 agent 领域提出了类似的问题:prompt 模板、tool schema、callback 和 workflow graph 在概念上清晰,在工程上却构成了同一道鸿沟。
NVIDIA 用基准测试支撑了这个论点。能力测试中,88 个测试在 10 个模型上各跑 5 次,4,400 条记录通过 4,309 条(97.9%)。六族压力测试(批处理、错误恢复、任务分解)通过率 84.7%。
小模型与前沿模型的差距从 3.2 个百分点扩大到 23 个。这些模型都没有针对 NOOA 接口做过训练——能跑通,纯粹因为接口就是普通 Python。
在 CyberGym L1 漏洞复现基准上,NOOA 以 86.8% 的解决率登顶开源榜——断网环境中每个轨迹都经过"作弊检查",分数来自对代码本身的推理而非查阅已知漏洞。在 ARC-AGI-3 上,单 agent 搭配一份 45 行的 world-model skill,以 GPT-5.6-sol 达到 85.1% 的平均 RHAE,单局约 13 美元。
但最值得关注的不是最高分,而是性价比曲线。同模型(GPT-5.5)下,NOOA 以 ~110 万 token 达到 82.2%,PI 以 ~220 万 token 达到 78.2%,OpenCode 以 ~130 万 token 达到 78.6%。
用一半 token 换来更高准确率——这个优势来自架构,不是 prompt 技巧。
不是又一个框架。它赌的是 Agent 开发的 PyTorch 路线。
NOOA 远非成熟产品。PyPI 标记为 alpha,Python 版本限定在 3.12–3.13,文档明确声明"research preview"。 GitHub README 写道:"我们欢迎贡献和修复,但请预期粗糙的边缘。"需要生产级 agent 的团队,LangGraph 或 Microsoft Agent Framework 1.0 是更稳妥的选择。
但 NOOA 的意义不在成熟度。它用代码表明了一个立场:agent harness 应该和模型权重一样接受审查、测试、版本管理和重构。在 agent 安全正从"信任黑箱 guardrail"转向"全栈透明可验证"的共识下,37 家联盟成员是信号,GitHub 上 665 颗星也是信号。
Paul Furgale 在发布帖里的那句话或许是最好的注脚:"我们不指望每个人都用这个框架——我们希望你基于这些想法去构建。拿走这些概念,集成到自己的 harness 里,改进它们,挑战它们。告诉我们它们在哪里有帮助——在哪里没有。"