NVIDIA-NeMo/labs-OO-Agents(NOOA)是 NVIDIA Labs 发布的 Python AI Agent 研究框架,核心理念是用面向对象方式构建智能体:Agent 是普通 Python 类,字段表示状态,方法表示能力,docstring 作为提示词,类型注解作为输入输出契约,方法体为 `...` 时由 LLM 在运行时驱动执行。它支持 LiteLLM 兼容模型,包括 OpenAI、Anthropic、Ollama、vLLM 等,并提供 tracing、CLI、长期记忆、评测流水线等可选组件。项目强调 Pythonic 开发体验,适合研究、原型验证和探索复杂 Agent 编排,但 README 明确提示其为 research software,不建议直接用于生产环境。
适用领域
AI Agent 框架 / 大语言模型应用开发 / 面向对象编程 / LLM 工具调用 / Agent 评测与追踪 / 自动化工作流 / 研究型 AI 基础设施
配置难度
中高。会写 Python 类和 async 方法即可完成基础示例,但要安全、可靠地使用该框架,需要理解 LLM 工具调用、代码执行沙箱、类型化接口、trace 调试、模型配置和 Agent 行为评估。适合有一定 Python 与 LLM 应用开发经验的开发者。
商业价值
该项目的商业价值主要体现在 Agent 原型研发和技术验证上。它能让团队用熟悉的 Python 面向对象方式快速表达复杂 Agent 的状态、工具和工作流,降低 tool schema、prompt、callback 分散管理的复杂度,并提供 tracing 和评测能力帮助调试。对于中国开发团队,可用于内部 AI 助手、客服工单分析、自动化运维、代码任务执行、数据分析 Agent 等场景的 PoC。不过由于项目明确定位为研究软件且涉及 LLM 生成代码执行,短期更适合实验室、创新团队和非生产环境验证;若要落地生产,需要额外建设沙箱、权限控制、审计、错误恢复、模型成本控制和安全合规机制。
01
技术亮点
- 面向对象 Agent 设计:用一个 Python 类统一表达状态、能力、提示词和类型契约
- 开发体验接近普通 Python:字段、方法、docstring、类型注解均直接参与 Agent 定义
- `...` 方法体表示由 LLM 实现的 generation method,普通方法则保持确定性 Python 执行
- 支持模型无关接入,通过 LiteLLM 可使用 OpenAI、Anthropic、本地 Ollama、vLLM 等模型
- LLM 可通过 Jupyter 风格 REPL 编写 Python 代码并调用 `self` 上的方法和状态
- 类型化输入输出和自动重试机制有助于提升结构化调用可靠性
- 默认支持 tracing,可记录 LLM 调用、代码执行、方法调用及父子 span 关系
- 提供渐进式教程和示例,覆盖结构化输出、tools、strategies、context blocks、MCP、sandbox 等内容
- 可选 CLI、长期记忆模块和评测流水线,适合做 Agent 工程化实验
- 由 NVIDIA Labs 背书,具备较高研究参考价值
02
目标用户
- 希望用 Python 类和类型系统构建 Agent 的开发者
- 研究 LLM Agent 架构、工具调用和代码执行范式的科研人员
- 正在评估多模型 Agent 框架的 AI 工程团队
- 需要构建可测试、可追踪 Agent 原型的应用开发者
- 使用 OpenAI、Anthropic、Ollama、vLLM 或其他 LiteLLM 兼容模型的团队
- 对 NVIDIA AI 工具链和 NeMo 生态感兴趣的开发者
03
配置要求
- Python 项目环境,推荐使用 uv 管理依赖
- 需要可用的大语言模型后端,支持 LiteLLM 兼容模型
- 使用 Anthropic 时需要配置 `ANTHROPIC_API_KEY`
- 使用 OpenAI 时需要配置 `OPENAI_API_KEY`
- 使用 Ollama 时需要本地启动 Ollama 服务,例如 `api_base="http://localhost:11434"`
- 使用 vLLM 时需要部署 OpenAI-compatible API 服务,例如 `api_base="http://localhost:8000/v1"`
- 如使用 trace viewer,需要安装 `nooa-cli` 及 viewer 相关依赖
- 如启用 LLM 生成代码执行能力,强烈建议在沙箱或隔离环境运行,例如 NVIDIA OpenShell、容器、虚拟机或受限文件系统
- 生产集成前需要自行评估安全、权限、网络访问、数据泄露、日志保留和模型合规要求
04
适用场景
- 快速构建客服、反馈分析、数据处理等业务 Agent 原型
- 将 Python 类方法直接暴露为 Agent 可调用能力,减少单独定义 tool schema 的工作量
- 使用类型注解约束 Agent 的输入输出,并结合自动重试提升结构化结果可靠性
- 研究 LLM 通过 Python REPL 编写和执行代码完成任务的 Agent 模式
- 为 Agent 方法调用、LLM 调用、代码执行过程生成 trace,便于调试和评估
- 结合本地模型如 Ollama、vLLM 搭建可控的 Agent 实验环境
- 在 SWE-bench、Terminal-Bench 或内部任务集上进行 Agent 能力评测
- 探索 Agent 的长期记忆、上下文块、MCP、skills、sandbox 等高级能力
05
部署与配置
- 安装 uv:参考 https://docs.astral.sh/uv/getting-started/installation/
- 初始化项目:`uv init my-agent-project`
- 进入项目目录:`cd my-agent-project`
- 安装核心框架:`uv add "nooa @ git+https://github.com/NVIDIA-NeMo/labs-OO-Agents.git@main"`
- 根据需要安装 CLI:`uv add "nooa-cli @ git+https://github.com/NVIDIA-NeMo/labs-OO-Agents.git@main#subdirectory=packages/nooa-cli"`
- 根据需要安装长期记忆模块:`uv add "nooa-memory @ git+https://github.com/NVIDIA-NeMo/labs-OO-Agents.git@main#subdirectory=packages/nooa-memory"`
- 根据需要安装评测流水线:`uv add "eval_pipeline @ git+https://github.com/NVIDIA-NeMo/labs-OO-Agents.git@main#subdirectory=util/eval_pipeline"`
- 选择并配置模型,例如 OpenAI、Anthropic、Ollama 或 vLLM
- 运行示例:`uv run python examples/quickstart/01_first_generation_method.py`
- 如需 trace viewer,安装 CLI 后运行:`uv run nooa start-dev`,默认访问 http://localhost:5001
- 本地开发可 clone 仓库后执行:`uv sync --group dev`,再运行 `uv run pytest`、`uv run ruff check`、`uv run pyright`
06
风险与注意事项
- README 明确声明这是 research software,不是生产级框架,可能存在 API 变化、稳定性不足和文档不完整问题
- 框架可配置为执行 LLM 生成代码,存在删除文件、泄露私密数据、修改环境、发起非预期网络请求等高风险
- 必须在沙箱环境运行,否则对本机文件系统和内部网络有潜在安全威胁
- Agent 行为受模型质量、提示词、上下文和代码执行策略影响,结果可能不稳定或不可复现
- LLM 生成 Python 代码的方式虽然灵活,但调试、安全审计和权限控制复杂度较高
- 仓库元数据中 license 显示 NOASSERTION,但 README 标注 Apache 2.0;企业使用前应以仓库 LICENSE 文件为准并进行合规审查
- 项目 star 数约 258、fork 数约 27,生态仍处于早期阶段,社区成熟度和第三方插件数量有限
- 如果接入商业模型 API,可能产生较高调用成本,并涉及数据出境和隐私合规问题
- 对 Python 类型、异步编程、LLM 调试和运行时安全有一定要求,新手上手可能存在门槛
2026-07-27
第28名
新收录 · github_search