
构建出色的 AI 智能体不仅仅只是选择合适的模型。Harness 是围绕模型的架构。渲染上下文、执行动作、管理状态以及决定任务何时完成,所塑造的结果与模型本身一样重要。即使使用相同的底层模型,光是 Harness 设计就能导致基准测试结果有两位数的波动以及在 Token 成本上有着显著差异。
NVIDIA Labs Object-Oriented Agents (NOOA) 是基于此见解构建的开源研究预览。它具有 Python 框架、内存系统、能力测试和基准测试智能体,并已发布代码、数据和评估,因此社区可以复制、挑战和构建这些结果。
智能体是 Python 对象
智能体开发涉及协调提示模板、工具模式、回调代码和工作流程图等多个移动部分。NOOA 则采用了一种更简单的方法:一个智能体就是一个 Python 类。它的方法就是它的能力;它的字段就是它的状态;它的文档字符串就是提示词,其类型标注是可执行的合同。其主体为省略号 (…) 的标准 Python 方法在运行时由 LLM 驱动的循环完成。具有常规主体的方法以普通的确定性 Python 运行。
class SupportAgent(Agent):"""You are a support agent for a customer service system."""order_db: OrderDB # object state: model-visible, passed by referencedef is_refund_eligible(self, order: Order) -> bool:"""Return whether an order is eligible for a refund."""return order.delivered and order.days_since_delivery <= 30@strategy(PredictStrategy())async def classify(self, message: str) -> TicketKind:"""Classify the customer message into the best ticket kind."""...async def triage(self, message: str, photo: Image | None,order: Order | None) -> Ticket:"""Triage a customer message and create a support ticket."""...
这样做的好处是,智能体开发成为了传统软件开发。人类和 AI 编码智能体可以使用已用于所有其他代码库的相同工具,对智能体进行差异化、代码审核、单元测试、追踪、版本管理和重构。
六种理念,统一界面
NOOA 架构确定了六种面向模型的界面理念,可提升智能体性能:
-
类型化输入/输出 (Typed input/output)
智能体调用具有类型化参数和经过验证的返回值,而非自由文本。
-
引用传递 (Pass by reference)
模型在实时 Python 对象上运行,可以看到有边界的预览,而不是序列化的转储文件。 -
代码即行动 (Code as action)
模型通过编写 Python 来行动,并使用控制流和内联方法调用。
-
可编程循环工程 (Programmable loop engineering)
编排循环是普通的 Python,可由开发者和模型本身编写。
-
显式对象状态 (Explicit object state)
持久的类型化状态存在于智能体对象上,而不仅仅存在于对话历史记录中。
-
可调用模型的 Harness API (Model-callable harness APIs)
上下文块和事件历史记录是模型可以检查和管理的 API。
以上为摘要内容,请点击“阅读原文”或扫描下方二维码阅读完整内容:





