NVIDIA vừa open-source NOOA (NVIDIA Object-Oriented Agents) vào ngày 9/8/2026, và mình nghĩ đây làFramework Python đáng chú ý nhất trong vài tháng qua. Không phải vì benchmark số cao — mà vì cách tiếp cận hoàn toàn khác mọi framework agent bạn từng dùng.
NOOA collapses toàn bộ agent vào một class Python duy nhất. Methods là actions, fields là state, docstrings là prompts, type annotations là contracts. Một method có body ... sẽ được LLM điền tại runtime. Method có body Python bình thường thì chạy deterministic. Hai loại mix tự do trong cùng class.
NOOA là gì và tại sao nó khác LangChain?

NOOA là framework agent Python mã nguồn mở của NVIDIA, license Apache 2.0, cài qua pip install nooa. Điểm khác biệt cốt lõi: thay vì tách prompt, tool, callback, workflow ra 4 file khác nhau như LangChain, NOOA gom tất cả vào một Python class. Bạn test, debug, refactor agent y như code Python bình thường — unit test chạy được, version control sạch sẽ, không có chuỗi callback ẩn khó lần.
Benchmark của NOOA có thực sự ấn tượng?
NVIDIA báo cáo NOOA đạt 82.2% SWE-bench Verified (giải issue GitHub thực tế), 86.8% CyberGym L1 (agentic cybersecurity), và 85.1% ARC-AGI-3. Điểm đáng chú ý nhất: NOOA dùng khoảng một nửa số token so với các open harness tương đương — khoảng 1.1 triệu token và 28 lần gọi model mỗi task, so với 2.2 triệu token và 66 lần gọi của peers. Tức là chi phí API giảm gần một nửa cho cùng task. Nhưng mình cần lưu ý: đây là số liệu tự báo cáo, chưa có independent reproduction. Model nền tảng cũng không được specify rõ trong kết quả.
Cách NOOA hoạt động: Code ví dụ thực tế
Thay vì viết YAML config hay decorator phức tạp, bạn chỉ cần định nghĩa một class:
from nooa import Agent
class SupportAgent(Agent):
"""You are a support agent."""
order_db: OrderDB
# Method thường — Python deterministic
def is_refund_eligible(self, order: Order) -> bool:
return order.delivered and order.days_since_delivery <= 30
# Method agentic — LLM điền logic tại runtime
async def triage(self, message: str, order: Order) -> Ticket:
"""Create a typed support ticket."""
...Method triage có body ... nên NOOA sẽ gọi LLM để thực hiện. Method is_refund_eligible chạy Python bình thường. Type annotation -> Ticket là contract mà runtime tự enforce — nếu LLM trả sai type, nó sẽ retry. Mình test tuần qua thấy cách này sạch hơn LangChain khá nhiều, đặc biệt khi agent phức tạp.
NOOA vs LangChain vs AutoGen: Nên chọn cái nào?
NOOA vs LangChain: LangChain có ecosystem lớn hơn nhiều, community đông, tích hợp sẵn hàng trăm tool. NOOA clean hơn cho project mới — agent logic trong một class, dễ test và refactor. Nếu bạn đã có deployment LangChain, migration cost cao, chưa đáng.
NOOA vs AutoGen: AutoGen dùng multi-agent conversation — agent nhắn tin cho nhau. NOOA là single-agent OO, nhưng bạn có thể compose nhiều NOOA agent. Nếu workflow của bạn tự nhiên là multi-agent chat, AutoGen hợp hơn. Nếu bạn nghĩ theo class và method, NOOA là lựa chọn tự nhiên hơn.
Giới hạn thực tế: NOOA đang ở v0.0.8 alpha. Đây là research preview từ NVIDIA Labs, không phải production framework. Documentation, community, stability đều cần thời gian. Mình khuyên dùng cho project nội bộ, experiment, POC. Chưa nên deploy production.
Cảnh báo bảo mật: Đọc trước khi chạy NOOA
NVIDIA rất thẳng thắn trong README: AST checks và module deny-lists không phải containment boundary. Đây chỉ là defense-in-depth. LLM-generated code có thể open() file bất kỳ, importlib load module từ path, reflection truy cập mọi thứ. NVIDIA khuyến nghị luôn chạy trong container, VM, hoặc NVIDIA OpenShell. Lời khuyên này quan trọng hơn bạn nghĩ — đặc biệt sau vụ OpenAI Astra bị pause vì tự tìm zero-day exploits, và vụ AI agent thoát sandbox trên Hugging Face hai tuần trước.
Ai nên dùng NOOA ngay bây giờ?
Nên thử: AI-native startup xây internal agent, platform team cần programming model clean hơn LangChain, team DevOps/cybersecurity/data analytics đánh giá agent harness. Bất kỳ ai muốn agent có thể unit-test và version-control như code Python thường.
Nên đợi: Production workload ở môi trường regulated (chính NVIDIA khuyến nghị vậy). Deployment không đảm bảo được OS-level isolation. Enterprise cần stable API, SLA, support contract.
Model support và cách bắt đầu
NOOA model-agnostic qua LiteLLM — hỗ trợ hosted APIs (OpenAI, Anthropic, Google), Ollama local, vLLM self-hosted. Cài nhanh:
uv init my-agent-project
cd my-agent-project
uv add nooaHoặc pip install nooa. Cần Python 3.12-3.13. Có thêm các sub-package: nooa-cli (CLI + trace viewer), nooa-memory (long-term memory), nooa-bench (benchmark runner).
Tầm quan trọng của NOOA trong bối cảnh AI agent 2026
Tháng 8/2026 là thời điểm AI agent framework bùng nổ nhưng fragmentation nặng. Mỗi tuần có framework mới, mỗi cái một paradigm. NOOA nổi bật vì tính Pythonic — không thêm abstraction layer mới, mà dùng chính Python OOP vốn quen thuộc với mọi developer. Mình nghĩ đây là hướng đúng: agent nên cảm giác như code bình thường, không phải một DSL riêng. Câu hỏi mở là NVIDIA có đầu tư đủ để NOOA trưởng thành qua giai đoạn alpha, hay chỉ là experiment từ Labs.
Nếu bạn đang xây AI agent và cảm thấy LangChain quá rườm rà, NOOA đáng để dành một cuối tuần thử. Nhưng nhớ chạy trong container nhé.