【第723期】NOOA:基于面向对象编程的原生Python智能体框架Seventy3

【第723期】NOOA:基于面向对象编程的原生Python智能体框架

21分钟 ·
播放数1
·
评论数0

今天的这篇的主题是: NVIDIA-labs OO Agents Native Python Object-Oriented Agents

Seventy3 是一档借助 NotebookLM 解读前沿论文的播客——不是念摘要,也不是泛泛而谈,而是让 AI 帮你把论文掰开揉碎,说人话。我们蹲在人工智能、大模型、机器人算法、crypto 这几个领域,每期挑一篇值得关注的工作,用对话的方式聊给你听。你可以在通勤路上听,做实验的时候听,也可以当背景音放着,让新知识自然地长进脑子里。

如果你正在做有意思的研究,想让更多人看到——不管你是博士生、独立研究者还是实验室的博士后——把论文发给我们,我们帮你用 AI 做一期深度解读,让你的工作被更多同路人发现。

联系小助手微信:eccstartup(加群/投稿论文)

Summary

传统 Agent 的开发分散于提示词模板(prompt templates)、工具 Schema、回调代码(callback code)以及工作流图(workflow graphs)之中。我们推出了 NVIDIA 面向对象 Agent(NOOA),这是一个用于构建可靠 AI Agent 的通用(model-agnostic)Python 框架。NOOA 采取了一种更为简洁的方法:一个 Agent 就是一个 Python 对象。它的方法即为模型可以采取的动作,属性字段即为其状态,文档字符串(docstrings)即为其提示词,而其类型注解则构成了契约约束。代码体仅由“...”组成的方法会在运行时由 LLM 驱动的 Agent 循环来完成,而包含常规代码体的方法则保持为标准、确定性的 Python 代码。这为开发者和 Agent 提供了相同的接口,使得 Agent 的行为可以像其他软件一样被测试、追踪、重构和改进。

本论文做出了三项主要贡献:

(1) 我们提出了“ Agent 即 Python 对象”(agent-as-a-Python-object)的编程模型及其背后的设计原则。在 Python 已有相应抽象的地方,我们直接沿用它们。Agent 的专属能力——如上下文、事件、状态渲染、长期记忆以及经过验证的 LLM 循环——均通过符合 Python 习惯的简洁 API 暴露出来,从而让开发者和 Agent 共享同一种熟悉的编程模型。

(2) 我们总结了六项面向模型的理念,就我们所知,NOOA 是首个在单一统一接口上将它们融为一体的框架:类型化输入/输出、对活对象的引用传递(pass-by-reference over live objects)、代码即动作(code as action)、可编程循环工程(programmable loop engineering)、显式对象状态,以及面向模型可调用的上下文与事件测试框架(harness)API。我们发现社区已经在向其中多项理念收敛(通常作为实验性或部分特性),在此提出这一对比旨在鼓励这些理念被进一步采用。

(3) 我们在定向能力测试以及诸如 SWE-bench Verified、Terminal-Bench 2.0 和 ARC-AGI-3 等 Agent 化与推理基准测试中证明,当前模型能够有效地使用这一接口。

原文链接:arxiv.org