NVIDIA OO Agents:面向对象的AI Agent构建框架

仓库:NVIDIA-NeMo/labs-OO-Agents  |  ⭐ 1.5k  |  语言:Python  |  协议:Apache-2.0

项目简介

NVIDIA OO Agents(Object-Oriented Agents)是NVIDIA NeMo实验室出品的面向对象Agent框架。它的核心创新是将AI Agent抽象为Python类和对象——每个Agent是一个类,拥有属性(状态)、方法(能力)和继承关系(Agent层级)。这种设计让开发者能用熟悉的OOP范式构建复杂Agent系统:通过继承复用能力、通过组合实现协作、通过多态实现灵活调度。框架与NVIDIA NeMo生态深度集成,支持本地GPU推理。

对于想了解并行Agent开发的开发者,推荐阅读 Orca并行Agent开发教程 了解另一种多Agent架构模式。

核心功能与架构

概念OO映射Agent场景
Agent类class Agent定义Agent能力和状态
继承class ResearchAgent(BaseAgent)复用通用Agent逻辑
组合self.tools = [SearchTool()]组合工具和其他Agent
多态agent.run() 统一接口不同Agent统一调度
封装私有方法隐藏实现内部状态保护
属性@property memoryAgent状态访问
装饰器@capability声明Agent能力
混入class Agent(RAGMixin)按需组合能力

安装指南

# 安装 NVIDIA OO Agents
pip install nvidia-oo-agents

# 依赖 NVIDIA NeMo(如需本地GPU推理)
pip install nemo-toolkit

# 可选:安装NVIDIA容器运行时
# 需要NVIDIA GPU和驱动
docker pull nvcr.io/nim/nvidia/llama-3.1-nemotron-70b:latest

# 验证安装
python -c "from nvidia.oo_agents import Agent; print('OK')"

# 查看可用模型
python -c "from nvidia.oo_agents import list_models; print(list_models())"

使用示例

以下展示如何用面向对象方式构建一个研究+写作的Agent系统:

from nvidia.oo_agents import Agent, BaseAgent
from nvidia.oo_agents.capabilities import capability
from nvidia.oo_agents.mixins import RAGMixin, ToolMixin
from nvidia.oo_agents.tools import WebSearch, CodeExecutor

# 基础Agent类
class BaseResearchAgent(BaseAgent, RAGMixin, ToolMixin):
    """研究Agent基类,混入RAG和工具能力"""
    model = "nvidia/llama-3.1-nemotron-70b"
    temperature = 0.3

    def __init__(self, knowledge_base):
        self.init_rag(knowledge_base)
        self.init_tools([WebSearch(), CodeExec()])

    @capability("research")
    def research(self, topic: str) -> str:
        """研究能力:检索+网络搜索"""
        rag_results = self.rag_search(topic, top_k=5)
        web_results = self.use_tool("web_search", query=topic)
        return self.synthesize(rag_results, web_results)

# 研究Agent子类
class TechResearchAgent(BaseResearchAgent):
    """技术研究方向,继承通用研究能力"""
    focus = "technology"
    system_prompt = "你是技术研究员,擅长分析技术趋势"

    @capability("tech_analysis")
    def analyze_trends(self, topic: str) -> dict:
        research = self.research(topic)
        return {"topic": topic, "findings": research}

# 写作Agent(组合模式)
class ContentWriterAgent(BaseAgent, ToolMixin):
    """写作Agent,通过组合集成工具"""
    model = "nvidia/llama-3.1-nemotron-70b"
    system_prompt = "你是专业写手"

    def __init__(self):
        self.init_tools([CodeExec()])

    @capability("write")
    def write_article(self, research_data: dict) -> str:
        prompt = f"基于以下研究写文章:{research_data}"
        return self.generate(prompt)

# 编排Agent(多态调度)
class OrchestratorAgent(BaseAgent):
    """编排多个Agent协作"""
    def __init__(self):
        self.researcher = TechResearchAgent(kb="docs/")
        self.writer = ContentWriterAgent()

    def run(self, topic: str) -> str:
        research = self.researcher.analyze_trends(topic)
        article = self.writer.write_article(research)
        return article

# 执行
pipeline = OrchestratorAgent()
result = pipeline.run("2026年AI Agent框架趋势")
print(result)

与其他Agent框架对比

特性NVIDIA OO AgentsMastraOpenAgents
范式OOP(类/继承)函数式OS式
语言PythonTypeScriptTypeScript
GPU推理✅ NeMo原生不支持不支持
继承复用✅ 原生组合模式组合模式
混入能力✅ Mixin类插件工具注册
适用场景研究/企业全栈应用协作系统

📚 常见问题

NVIDIA OO Agents是什么?

NVIDIA OO Agents(Object-Oriented Agents)是NVIDIA NeMo实验室出品的面向对象Agent框架。它的核心创新是将AI Agent抽象为Python类和对象——每个Agent是一个类,拥有属性(状态)、方法(能力)和继承关系(Agent层级)。这种设计让开发者能用熟悉的OOP范