尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

NVIDIA 把 Agent 写成一个类

NVIDIA 把 Agent 写成一个类 摘要NVIDIA 开源 NOOA把 Agent 折叠成一个 Python 类方法动作、字段状态、docstring提示词、类型注解运行时强制契约方法体写...就交给模型写普通代码就确定性执行。82.2% 等基准是厂商自报、未经独立复现AST 检查不等于沙箱跑生成代码必须容器隔离。从一个具体问题开始写一个 Agent你要同时维护四样东西prompt 文件一坨字符串告诉模型你是谁、该怎么说话工具 schema一段 JSON描述模型能调用什么、参数长什么样回调注册模型调完工具结果回给谁、谁来接workflow 图节点和边定义整个流程怎么走这四样散落在不同文件里有时还在不同抽象层。想改一个行为你得先回答四个问题prompt 在哪个文件schema 在哪个目录回调在哪注册图在哪个配置里改完 prompt 忘了同步 schemaAgent 就悄悄坏掉你还要花半天排查明明提示词是对的。这是编排的问题不是模型的问题——这句话先记住后面是全文的钥匙。7 月 30 日NVIDIA 开源了一个叫 NOOA 的东西想法简单到近乎粗暴这些都不用分开写一个 Python 类就够了。NOOA 全称 NVIDIA Object-Oriented AgentsApache 2.0pip install nooav0.0.8 alpha要求 Python 3.12–3.13来源NOOA GitHub 仓库。它的核心观点一句话说死Agent 开发不需要新范式它需要的是用了 40 年的面向对象纪律。方法就是动作字段就是状态docstring 就是提示词类型注解就是运行时强制执行的契约。方法体写...省略号的部分由 LLM 运行时补全写普通代码的部分就按确定性 Python 执行。两者在同一个类里自由混合。拿官方 TriageBot 示例改一下改编自 NOOA 官方 READMEApache 2.0agentclassTriageBot:Triages incoming bug reports for a Python web service.open_issues:list[str][]llmdefclassify(self,report:str)-str:Return exactly one of: crash, perf, ux, security....defrecord(self,report:str)-None:self.open_issues.append(report)# 普通 Python确定性执行defhandle(self,report:str)-str:categoryself.classify(report)# 模型self.record(report)# 代码returnself.draft_reply(report,category)# 模型三个细节每一个都在改命。第一- str是强制契约不是提示。模型输出一个带解释的 dict运行时直接拦下重试输出通过校验才交给下游。第二docstring 就是提示词但它不漂移到单独文件而是跟在它管辖的方法签名旁边。改行为就是改代码git diff 一眼看得见。第三record是普通 Python每次精确执行。它不经过模型不存在这次记了下次没记的随机性。这就是 NOOA 的设计主线把确定性路径做成默认把模型路径做成显式 opt-in。减法设计四件套怎么折叠成一个类现在市面上的 Agent 框架大多是四件套拼装prompt、工具 schema、回调、workflow 图由框架内部约定勉强捏在一起。维护过的人都有同感——你永远说不清某个行为到底写在哪。NOOA 做的减法是把这四件套折叠进 Python 自带的语言机制Agent 概念NOOA 里的载体动作工具类的方法状态类的字段提示词docstring运行时契约类型注解交给模型的步骤方法体...确定性步骤普通方法体折叠之后Agent 行为就变成了普通软件能 diff、能 code review、能单测、能重构人类和 AI 编程工具用同一套工具链操作它来源NOOA 官方技术博客。论文把这套接口归纳为六种能力类型化输入输出、引用传递、代码即动作、可编程循环、显式对象状态、模型可调用的 harness API来源NOOA 论文 arXiv 2607.20709。这个观点最锋利的地方在确定性默认。大多数 Agent bug 不是模型失败是编排失败——本应确定性的逻辑被路由给了模型。比如把这条记录追加到列表这件事不需要任何智能但很多框架把它交给模型决定于是出现这次记了下次没记的玄学。NOOA 让普通方法永远精确执行只有...方法才交给模型。边界在语法层面可见这就是可审计性。代价也要说清楚类即 Agent 把结构做到了极致简单但复杂多分支的编排不如 LangGraph 那种可视化图直观——这是它刻意放弃的那一极。而且 NOOA 还是 alphaAPI 随时可能变。省 token 的工程思路NOOA 在省 token 上有两个设计都冲着上下文膨胀去的。一个是pass-by-reference 活对象。别的框架把状态序列化成 JSON 塞进上下文模型读到的是一坨静态快照NOOA 传的是活对象引用模型操作的是真实的 Python 对象来源NOOA 官方技术博客。另一个是有界预览。一个 100 元素的列表上下文里只渲染约 30 token 的头部尾部样本完整对象留在 REPL 里模型要用时再取。官方自报的数据SWE-bench 上每个任务约 1.1M token、28 次模型调用对比方案约 2.2M token、66 次调用来源NOOA 官方技术博客。注意这句话的限定词厂商自报未经独立复现。所以 1.1M 对 2.2M 的省一半当成可参考的数量级看别当成精确结论——这是省 token 的代价。记忆也走同一条路。NOOA 带一个可选的长记忆子系统记录落在 SQLite 文件里由模型通过可调用的工具自己写、自己查、自己改人可读、可审查来源NOOA 官方技术博客。记忆和状态都放在可审计的地方而不是埋在对话历史里——这是类即 Agent思路的延伸不仅行为可审计连它记得什么也可审计。对要做 Agent 落地的团队这比记忆很强更值钱——你可以直接查数据库确认它记住了什么而不是靠追问模型你还记得吗。82.2%先给基准加个星号NVIDIA 在基准上给出了不少数字先列全以下均为厂商自报未经独立实验室复现SWE-bench Verified500 任务GPT-5.5 xhighNOOA 82.2%同模型同档位只换 harness 的 OpenCode 78.6%、PI 78.2%。也就是说光换 harness 就值 3.6 个点换 Claude Opus 4.679.8%Terminal-Bench 2.089 任务PI 75.3% NOOA 73.0% OpenCode 60.7%——注意这个榜 NOOA 没赢CyberGym L186.8%ARC-AGI-3 mean RHAE85.1%GPT-5.6-sol一个 253 行代码构建的 Agent 拿到 82.2%这里有几点要克制着看。harness 值 3.6 分只在同模型、同推理档位的对比下成立不是换 NOOA 就涨 3.6 分的普适结论。NVIDIA 把自己输的榜也发了。大多数 harness 论文只挑赢的放它把 Terminal-Bench 2.0 上 PI 领先的结果原样公开这比多数框架诚实。但诚实归诚实82.2% 仍是自报、无独立实验室复现也没有和 LangGraph/CrewAI 做同模型 head-to-head——别写成定论。模型无关是加分项。NOOA 通过 LiteLLM 接入hosted API、本地 Ollama、vLLM 都行不锁 NVIDIA 自己的模型。这意味着想用 Qwen、Kimi、豆包跑它理论上可以直接接——这是对国内开发者最实在的一点。AST 检查不是沙箱这篇最值得读的其实是安全部分。NVIDIA 的 README 把丑话说在了前面原文“NOOA validates generated code (AST checks) and applies module deny-lists before execution. These are defense-in-depth guardrails, not a containment boundary.”翻译过来AST 检查和模块黑名单只是纵深防御不是安全边界。它们的存在是为了防止生成代码冻结事件循环、抓住常见错误不是为了拦住一门心思要逃逸的代码。README 接着列了风险清单数据泄漏、文件删除、环境修改——这不是边缘情况是官方明说的三件事。更关键的一段推理静态检查器无法给出保证——open()能给任意文件访问importlib能按路径加载模块反射能摸到其余部分。所以真正的边界是 OS 级隔离容器、VM或者 NVIDIA 自己的 OpenShell来源NOOA GitHub README。这个警告放在当下格外应景。时间线是这样的7 月 21 日一个 OpenAI 的自主 Agent 逃逸在 Hugging Face 上造成入侵FBI 介入——受害者 Hugging Face 后来正是联盟创始成员7 月 24 日NVIDIA 签了开源权重信7 月 27 日三十多家公司官宣成立 Open Secure AI AllianceAdobe、CrowdStrike、Hugging Face、Dell、微软、Meta、Cloudflare 都在列7 月 30 日NOOA 开源NOOA 是带着代码来的联盟——不是发个宣言是直接交付一个可复现的开源实现。但这也意味着跑 NOOA必须容器/VM别裸奔。尤其你的 Agent 要处理不可信输入时AST 检查那层皮挡不住真正想动手的代码。图也可以不要我 8 月 7 日写过一篇《Loop 才火六周Graph 就来了》讲编排从手写循环进化到图。NOOA 站在相反的那一极图也可以不要一个类就是 Agent。两篇合起来看Agent 编排的钟摆在两个方向之间晃一边是图把每个步骤显式画出来适合复杂、多分支、需要可视化审计的流程一边是类把 Agent 折叠成一段可读、可测、可 review 的代码适合边界清晰、结构简单的场景。没有哪一边是唯一解——NOOA 论文自己也说它只是把六种 harness 能力第一次整合在同一套接口上而不是发明了六种新东西。Java 开发者看这个设计会有特别的亲切感。模型决定 vs 代码决定的边界在源码里一眼可见——方法体是...还是普通代码决定了这段逻辑交给谁。这正是安全审查最想要的东西责任边界在代码里不在文档里。Java 侧的 Spring AI、LangChain4j 也在往Agent 抽象方向走但大多还是对话 工具注册的组合NOOA 把整层折叠进语言本体的做法更激进。国内对照一句话带过DeepSeek Harness 8 月 13 日也开源了那篇另写过走的是一切皆插件的路子NOOA 走的是一切皆类。国产的 CodeBuddy、WorkBuddy 这类编程工具也在把 Agent 能力拆成可审查、可配置的工程件——方向上和 NOOA 殊途同归。两条路都指向同一个判断Agent 的工程化正在从框架给你一堆抽象回归到语言本身。周末可以试别急着迁移最后说结论。NOOA 现在是 v0.0.8 alphaPyPI 上明晃晃标着 alpha没有任何生产环境的大规模实践证明。适合先试的人群AI 原生初创、平台团队、企业 AI 研究以及 issue 分类、终端自动化、漏洞验证、批量数据提取这些边界清楚的场景。受监管的生产负载先等稳定版。给你两条落地建议第一周末用一个小任务比如把工单分类的脚本改成 TriageBot跑一遍感受类即 Agent到底是不是你想要的结构第二凡是涉及执行生成代码的一律丢进容器里再谈别拿裸进程赌。一个类装下整个 Agent听起来很美。但它值不值得等独立复现、生产实践还有时间给出答案。延伸阅读NOOA GitHub 仓库NVIDIA-NeMo/labs-OO-AgentsREADME 里有安全边界原话与安装说明NOOA 论文arXiv 2607.20709六种 harness 能力的完整论证与评测方法NVIDIA 官方技术博客Six Agent Harness Capabilities for Higher Model PerformanceNOOA 的设计思路与基准数据出处参考资料NOOA GitHub 仓库与 README2026 年 7 月。安装要求、Apache 2.0、v0.0.8 alpha、AST 检查安全边界原话、风险清单。NVIDIA 官方技术博客 “Six Agent Harness Capabilities for Higher Model Performance”2026 年 7 月。一个类即 Agent、pass-by-reference、有界预览、六种能力。NOOA 论文 arXiv 2607.20709Paul Furgale 领衔15 作者2026 年 7 月提交。评测方法与六种 harness 能力。事件时间线2026 年 7 月OpenAI 自主 Agent 逃逸与 Hugging Face 入侵、NVIDIA 签署开源权重信、Open Secure AI Alliance 成立、NOOA 开源综合多方媒体报道。作者唐悦玮 | 从后端出发用 AI 拓展到全栈的工程师。
返回列表