NVIDIA 用 DGX Spark 与 Reachy Mini 搭建桌面智能体教程
NVIDIA brings agents to life with DGX Spark and Reachy Mini
NVIDIA 在 CES 2026 展示了用 DGX Spark 驱动 Reachy Mini 桌面机器人搭建个人智能体的方案,并发布逐步复现教程。
原文给出从推理模型到机器人动作的完整可复现步骤,可迁移到自建私有语音与视觉智能体。
今天在 CES 2026 上,NVIDIA 发布了一系列全新的开放模型,旨在赋能线上和现实世界中智能体的未来。从最近发布的 NVIDIA Nemotron 推理 LLM,到全新的 NVIDIA Isaac GR00T N1.6 开放推理 VLA 以及 NVIDIA Cosmos 世界基础模型,如今 AI 构建者所需的所有构建模块都已齐备,可以用来打造自己的智能体。
但如果你能把自己的智能体带到现实中,就在你的桌面上呢?一个对你有用、并能私密处理你数据的 AI 伙伴?
在今天的 CES 主题演讲中,Jensen Huang 向我们展示了如何做到这一点——利用 NVIDIA DGX Spark 的处理能力,配合 Reachy Mini,打造你自己的小型办公室 R2D2,你可以与它交谈并协作。
本博文提供了逐步指南,教你如何在家中用 DGX Spark 和 Reachy Mini 复刻这一惊艳体验。
让我们开始吧!
所需材料
如果你想立刻动手,这里是演示的源代码。
我们将使用以下内容:
- 推理模型:演示使用 NVIDIA Nemotron 3 Nano
- 视觉模型:演示使用 NVIDIA Nemotron Nano 2 VL
- 文本转语音模型:演示使用 ElevenLabs
- Reachy Mini(或 Reachy Mini 仿真)
- Python v3.10+ 环境,配合 uv
你可以随意调整这个方案,打造属于自己的版本——将模型集成到应用中有多种方式:
- 本地部署——在你自己的硬件上运行(DGX Spark 或具有足够显存的 GPU)。我们的实现需要推理模型约 65GB 磁盘空间,视觉模型约 28GB。
- 云端部署——在云 GPU 上部署模型,例如通过 NVIDIA Brev 或 HF Mirror 推理端点。
- 无服务器模型端点——向 NVIDIA 或 HF Mirror 推理提供商发送请求。
赋予 Reachy 智能体能力
将 AI 智能体从简单的聊天界面转变为可以自然交互的存在,会让对话感觉更真实。当 AI 智能体能够通过摄像头观察、大声说话并执行动作时,体验会变得更加引人入胜。这正是 Reachy Mini 所能实现的。
Reachy Mini 的设计理念就是可定制。借助对传感器、执行器和 API 的访问,你可以通过仿真或由 Python 直接控制的真实硬件,轻松将其接入你现有的智能体技术栈。
本文侧重于组合现有的构建模块,而非重新发明它们。我们结合了用于推理和视觉的开放模型、用于编排的智能体框架,以及用于执行动作的工具处理器。每个组件都是松耦合的,便于替换模型、更改路由逻辑或添加新行为。
与封闭式个人助理不同,这套方案完全开放。你掌控模型、提示词、工具以及机器人的动作。Reachy Mini 只是成为你智能体的物理端点,让感知、推理和行动在此汇聚。
构建智能体
在这个示例中,我们使用 NVIDIA NeMo Agent Toolkit,这是一个灵活、轻量、框架无关的开源库,用于将智能体的所有组件连接在一起。它可以与其他智能体框架(如 LangChain、LangGraph、CrewAI)无缝协作,处理模型如何交互、在它们之间路由输入和输出,并让你轻松试验不同的配置或添加新功能,而无需重写核心逻辑。该工具包还提供内置的性能分析和优化功能,让你可以跟踪跨工具和智能体的 token 使用效率与延迟,识别瓶颈,并自动调整超参数,以在降低成本和延迟的同时最大化准确率。
步骤 0:设置并获取对模型和服务的访问权限
首先,克隆包含你后续所需全部代码的仓库:
git clone [email protected]/brevdev/reachy-personal-assistant
cd reachy-personal-assistant
要访问由 NVIDIA Nemotron 模型驱动的智能层,你可以使用 NVIDIA NIM 或 vLLM 部署它们,也可以通过 build.nvidia.com 上提供的远程端点连接它们。
以下说明假设你通过端点访问 Nemotron 模型。在主目录中创建一个 .env 文件,并填入你的 API 密钥。对于本地部署,你无需指定 API 密钥,可以跳过此步骤。
NVIDIA_API_KEY=your_nvidia_api_key_here
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here
步骤 1:构建聊天界面
首先,通过 NeMo Agent Toolkit 的 API 服务器让一个基本的 LLM 聊天工作流运行起来。NeMo Agent Toolkit 支持通过 `nat serve` 并提供配置文件来运行工作流。这里传入的配置文件包含智能体所需的所有设置信息,其中包括用于聊天、图像理解的模型,以及智能体使用的路由器模型。NeMo Agent Toolkit UI 可以通过 HTTP/WebSocket 连接,因此你可以像使用标准聊天产品一样与你的工作流聊天。在此实现中,NeMo Agent Toolkit 服务器在端口 8001 上启动(这样你的机器人可以调用它,UI 也可以):
cd nat
uv venv
uv sync
uv run --env-file ../.env nat serve --config_file src/ces_tutorial/config.yml --port 8001
接下来,验证你是否可以通过单独的终端发送纯文本提示,以确保一切设置正确:
curl -s http://localhost:8001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "test", "messages": [{"role": "user", "content": "What is the capital of France?"}]}'
查看智能体配置,你会发现它定义的能力远不止简单的聊天补全。接下来的步骤将详细介绍这些细节。
步骤 2:添加 NeMo Agent Toolkit 内置的 ReAct 智能体以实现工具调用
工具调用是 AI 智能体的重要组成部分。NeMo Agent Toolkit 包含一个内置的 ReAct 智能体,它可以在工具调用之间进行推理,并在作答前使用多个工具。我们将“动作请求”路由到一个允许调用工具的 ReAct 智能体(例如,触发机器人行为或获取当前机器人状态的工具)。
一些需要牢记的实用注意事项:
- 保持工具 schema 紧凑(清晰的名称/描述/参数),因为智能体正是据此决定调用什么。
- 对步骤设置硬性上限(max_tool_calls),这样智能体就不会失控。
- 如果使用物理机器人,考虑对物理动作采用“执行前确认”模式,以确保移动安全。
看一下配置的这一部分,它定义了工具(如 Wikipedia 搜索),并指定了用于管理它们的 ReAct 智能体模式。
functions:
wikipedia_search:
_type: wiki_search
max_results: 2
..
react_agent:
_type: react_agent
llm_name: agent_llm
verbose: true
parse_agent_response_max_retries: 3
tool_names: [wikipedia_search]
workflow:
_type: ces_tutorial_router_agent
agent: react_agent
步骤 3:添加路由器以将查询导向不同的模型
关键思路:不要用一个模型处理所有事情。相反,根据意图进行路由:
- 文本查询可以使用快速的文本模型
- 视觉查询必须通过 VLM 运行
- 动作/工具请求被路由到 ReAct 智能体 + 工具
你可以通过几种方式实现路由(启发式方法、轻量级分类器或专用路由服务)。如果你想要这个想法的“生产”版本,NVIDIA LLM Router 开发者示例 是完整的参考实现,并包含评估和监控模式。
基本的路由策略可能如下所示:
- 如果用户正在询问关于其环境的问题,则将请求连同从摄像头(或 Reachy)捕获的图像一起发送给 VLM。
- 如果用户提出的问题需要实时信息,则将输入发送给 ReACT 智能体,以通过工具调用执行网络搜索。
- 如果用户提出的是简单问题,则将请求发送给一个针对闲聊优化的小型快速模型。
配置中的这些部分定义了路由拓扑并指定了路由器模型。
functions:
..
router:
_type: router
route_config:
- name: other
description: Any question that requires careful thought, outside information, image understanding, or tool calling to take actions.
- name: chit_chat
description: Any simple chit chat, small talk, or casual conversation.
- name: image_understanding
description: A question that requires the assistant to see the user eg a question about their appearance, environment, scene or surroundings. Examples what am I holding, what am I wearing, what do I look like, what is in my surroundings, what does it say on the whiteboard. Questions about attire eg what color is my shirt/hat/jacket/etc
llm_name: routing_llm
llms:
..
routing_llm:
_type: nim
model_name: microsoft/phi-3-mini-128k-instruct
temperature: 0.0
注意:如果你想降低延迟/成本或离线运行,你可以自托管某个被路由的模型(通常是“快速文本”模型),并将 VLM 保留在远程。一种常见方法是通过 NVIDIA NIM 或 vLLM 提供服务,并将 NeMo Agent Toolkit 指向一个与 OpenAI 兼容的端点。
步骤 4:为实时语音 + 视觉添加 Pipecat 机器人
现在我们进入实时环节。Pipecat 是一个专为低延迟语音/多模态智能体设计的框架:它编排音频/视频流、AI 服务和传输,以便你可以构建自然对话。在这个仓库中,机器人服务负责:
- 捕获视觉(机器人摄像头)
- 语音识别 + 文本转语音
- 协调机器人移动和表达行为
你可以在 `reachy-personal-assistant/bot` 文件夹中找到所有 pipecat 机器人代码。
步骤 5:将所有内容连接到 Reachy(硬件或仿真)
Reachy Mini 暴露了一个守护进程,系统的其余部分会连接到它。该仓库默认以仿真模式运行守护进程(--sim)。如果你可以使用真实的 Reachy,你可以移除该标志,相同的代码将控制你的机器人。
运行完整系统
运行整个系统需要三个终端:
终端 1:Reachy 守护进程
cd bot
# macOS:
uv run mjpython -m reachy_mini.daemon.app.main --sim --no-localhost-only
# Linux:
uv run -m reachy_mini.daemon.app.main --sim --no-localhost-only
如果你使用的是物理硬件,请记得从命令中省略 --sim 标志。
终端 2:机器人服务
cd bot
uv venv
uv sync
uv run --env-file ../.env python main.py
终端 3:NeMo Agent Toolkit 服务
如果 NeMo Agent Toolkit 服务尚未从步骤 1 启动,请在终端 3 中立即启动它。
cd nat
uv venv
uv sync
uv run --env-file ../.env nat serve --config_file src/ces_tutorial/config.yml --port 8001
所有终端设置完成后,有两个主窗口需要留意:
Reachy Sim – 当你在终端 1 中启动模拟器守护进程时,此窗口会自动出现。如果你运行 Reachy mini 仿真来代替物理设备,这适用。
Pipecat Playground – 这是客户端 UI,你可以在这里连接到智能体、启用麦克风和摄像头输入,并查看实时转录。在终端 2 中,打开机器人服务暴露的 URL:http://localhost:7860/。在浏览器中点击“CONNECT”。初始化可能需要几秒钟,并且你会被提示授予麦克风(以及可选的摄像头)访问权限。
当两个窗口都启动并运行后:
- 客户端和智能体 STATUS 指示器应显示 READY
- 机器人会用欢迎消息问候你:“Hello, how may I assist you today?”
此时,你可以开始与你的智能体互动了!
试试这些示例提示
这里有几个简单的提示,帮助你测试你的个人助理。你可以从这些开始,然后尝试添加自己的提示,看看智能体如何响应!
纯文本提示(路由至快速文本模型)
- “用一句话解释你能做什么。”
- “总结我最后说的话。”
视觉提示(路由至 VLM)
- “我举到摄像头前的是什么?”
- “阅读此页面上的文字并总结。”
下一步去哪里
这不是一个“黑盒”助理,而是为一个私密、可修改的系统奠定基础,让你可以同时控制智能和硬件。你可以在本地检查、扩展和运行它,完全了解数据流、工具权限以及机器人如何感知和行动。
根据你的目标,以下是一些可以进一步探索的方向:
- 性能优化:使用 LLM Router 开发者示例,通过在不同模型之间智能地分配查询,来平衡成本、延迟和质量。
- 查看使用 Nemotron 开放模型构建带有护栏的语音驱动 RAG 代理的教程。
- 掌握硬件:探索 Reachy Mini SDK 和仿真文档,在部署到你的物理系统之前设计和测试高级机器人行为。
- 探索并为社区为 Reachy 构建的 apps 做出贡献。
想立即尝试?部署 完整环境在这里。一键即可运行。
来源:Hugging Face Blog · hf-mirror.com
