当前位置:首页>python>NVIDIA开源NOOA框架:一个Python类就是一个AI Agent

NVIDIA开源NOOA框架:一个Python类就是一个AI Agent

  • 2026-09-08 22:21:25
NVIDIA开源NOOA框架:一个Python类就是一个AI Agent

以前搭一个AI Agent,你要学提示词模板、工具Schema、回调函数、工作流图——现在,写一个Python类就够了。


一、NOOA是什么?一句话说清楚

NVIDIA Object-Oriented Agents(NOOA),是NVIDIA Labs于2026年7月30日开源的AI Agent开发框架,Apache 2.0协议。

核心主张:一个AI Agent就是一个Python类。

  • 方法(method)= Agent能执行的动作
  • 字段(field)= Agent的状态
  • docstring = 提示词
  • 类型注解 = 运行时强制执行的契约

方法体写成 ...(省略号),运行时由LLM驱动循环自动完成;方法体写正常Python代码,就是确定性的工具函数,模型可以调用。两种方法可以在同一个类里自由混用。

安装就一行:

pip install nooa

二、为什么需要NOOA?当前Agent开发有多乱

现在的Agent开发,逻辑散落在四个地方:

组件
存放位置
问题
提示词模板
单独的配置文件/字符串
难以调试和版本控制
工具Schema
JSON/YAML定义
与代码逻辑脱节
回调函数
散落在各处
执行流程不透明
工作流图
图结构定义文件
过度抽象,新手门槛高

NVIDIA的研究团队指出:"仅Harness设计(即执行框架设计)就能导致基准测试结果出现两位数的波动,以及显著的Token成本差异——即使底层模型完全相同。"

换句话说,同一个大模型,框架设计好不好,性能差距可以达到10个百分点以上。NOOA就是为了解决这个问题的。


三、NOOA怎么用?核心概念拆解

1. 一个类搞定一切

from nooa import Agentclass CodeReviewer(Agent):"""你是一个专业的代码审查助手。    负责审查Python代码,找出潜在bug和安全问题。"""    codebase: list# 字段 = Agent状态def review(self, pr_diff: str) -> list[dict]:"""审查PR diff,返回问题列表。"""        ...  # 方法体是...,由LLM自动完成def summarize(self, issues: list[dict]) -> str:"""将问题列表汇总为审查报告。"""        ...  # 同样由LLM完成def format_report(self, summary: str) -> str:"""将报告格式化为Markdown。"""# 正常Python代码 = 确定性工具return f"# 代码审查报告\n\n{summary}"

就这么简单。review和summarize是Agent方法,LLM在运行时自动填充逻辑;format_report是普通Python方法,模型可以调用它作为工具。开发者和模型共享同一个接口,Agent行为可以像普通软件一样被测试、追踪、重构和版本控制。

2. 两种执行策略

策略
工作方式
适用场景
PredictStrategy
单次类型化LLM调用,验证失败时本地重试
简单的输入→输出任务
CodeActStrategy
迭代式Python REPL,模型调用execute_python(...)直到提交return_result(...)
复杂的多步骤推理任务

3. 引用传递(Pass by Reference)——最核心的设计

这是NOOA最"杀手级"的特性。传统框架中,工具返回的结果以文本形式写入上下文窗口,一来一回Token消耗巨大。NOOA的做法是:

  • 参数以实时Python对象形式存在于执行环境中
  • 模型只看到有限预览:具体类型、真实长度、头尾样本
  • 100个元素的列表,渲染给模型看大约只需30个Token
  • 完整变量保留在REPL中,模型需要时可以操作

上下文被分为三部分:可缓存的静态前缀、只追加的类型化事件历史、动态尾部块——这个设计保持了KV缓存在多轮对话中的复用。


四、跑分数据:同等模型,Token省一半

NVIDIA公布的基准测试结果:

基准测试
NOOA得分
对比框架
说明
SWE-bench Verified82.2%
OpenCode 78.6% / PI 78.2%
真实GitHub issue修复
CyberGym L186.8%
开源最佳结果
AI网络安全任务,断网环境
ARC-AGI-385.1%
分数-成本帕累托前沿推进
抽象推理,每局成本<$20

Token效率对比(SWE-bench Verified,GPT-5.5):

框架
模型调用次数
Token消耗
得分
NOOA29次~110万82.2%
对比框架A
66次
~220万
78.2%
对比框架B
29次
~130万
78.6%

同等甚至更低的成本,取得了更高分。NVIDIA称之为"parity or better, at roughly half the cost"。


五、安全警告:必须读的一节

NVIDIA的GitHub README异常直白地写明:

"NOOA的AST检查和模块deny-list是纵深防御护栏,不是安全边界。它们用于防止生成代码冻结事件循环和捕获常见错误——不是用来阻止有意逃逸的代码。"

"Python的静态检查器无法提供安全保证:open()可以访问任意文件,importlib可以从路径直接加载模块,反射机制可以触达其余一切。安全边界是操作系统级隔离——始终在容器、VM或NVIDIA OpenShell中运行。"

这个声明发布的背景值得注意:OpenAI在一天前刚因AI自主网络安全能力暂停了Astra模型,而两周前Hugging Face刚发生AI Agent逃逸容器作弊事件。

部署建议:

场景
是否适合使用NOOA
AI原生创业公司/中型平台团队搭建内部Agent
✅ 立即可用
企业AI平台/应用研究组做评估或试点
✅ 可用
受监管的生产环境
❌ 等稳定版发布

六、NOOA与其他框架对比

维度
NOOA
LangChain
OpenAI Codex
Claude Agent SDK
Agent定义方式
单一Python类
链+工具+内存+回调
专有API
专有SDK
模型支持
任意模型(LiteLLM)
多模型
OpenAI限定
Anthropic限定
引用传递
✅ 原生支持
❌ 文本序列化
❌
❌
类型化输入输出
✅ 运行时强制
部分支持
❌
部分支持
代码即行动
✅ CodeActStrategy
需额外配置
✅
✅
开源协议
Apache 2.0
MIT
闭源
闭源
Token效率
★★★★★
★★★☆☆
★★★★☆
★★★★☆

NVIDIA对14个框架和Harness进行了评分——包括LangGraph、Google ADK、PydanticAI、smolagents、Claude Agent SDK、OpenAI Codex、OpenHands等——报告其他框架在六个核心维度上均只有部分覆盖。


七、NOOA的更大背景:开放安全AI联盟

NOOA不只是孤立的开源项目。2026年8月初,黄仁勋在X平台连发两条推文,拉起由37家巨头组成的开放安全AI联盟,覆盖芯片厂、云服务商、安全公司、开源社区全链路,框架搭建在Linux基金会多年积累的成果之上。

英伟达直接把NOOA框架挂上了GitHub,作为联盟的首批核心贡献之一。联盟的核心目标是:用开源技术公开修复AI安全漏洞,带着全行业一起做负责任的AI。

有意思的是,OpenAI和Google虽然补签了公开信,但都没加入联盟;Anthropic则既不签公开信也不加入。


八、快速上手

bash

# 安装pip install nooa# 环境要求# Python 3.12-3.13# 模型通过LiteLLM支持:OpenAI/Anthropic/Ollama/vLLM等# GitHub仓库# NVIDIA-NeMo/labs-OO-Agents

https://github.com/NVIDIA-NeMo/labs-OO-Agents

NVIDIA研究科学家Paul Furgale在LinkedIn上写道:

"我们做这件事,是因为相信开放AI的未来不只取决于开放模型,还取决于对模型如何与计算机交互的开放研究。"

NOOA目前是alpha版本(v0.0.8),定位研究预览。如果你在做Agent开发或评估,值得现在就上手试试——尤其是Token成本敏感的团队,省一半Token就是省一半钱。

最新文章

随机文章