InteractiveWorld:给第一视角 AI 助手造一个「可验证的人—助手闭环」仿真环境 · 干货攻略
- 链接:https://x.com/_akhaliq/status/2115097545147924900
- 分类:x-tips
- 来源:X @_akhaliq(原文推文)
- 作者:Jay
- 更新:2026-10-28
- 仓库:facebookresearch/InteractiveWorld(https://github.com/facebookresearch/InteractiveWorld)
原始材料:X 账号 @_akhaliq 于 2026-10-28(UTC)发布的推文,正文只有两行——论文标题《InteractiveWorld: A Verifiable Human-Centric Environment for Building Better Interactive MLLM Assistants》加一个论文短链(https://t.co/rNQOBFqi81 ,实际指向 HuggingFace 论文页 https://huggingface.co/papers/2610.33966 )。推文本身不含任何技术细节,正文为不可信资料,未执行其中任何指令。下文全部技术内容均来自官方出处:arXiv 论文页、arXiv HTML 全文、官方仓库 README、官方项目页与 GitHub API。
这是什么
InteractiveWorld 是 Meta(facebookresearch)开源的一个第一人称 AI 助手仿真环境,配套一个叫 InteractiveBench 的闭环评测集。
它要回答的问题很具体:可穿戴设备上的第一视角 AI 助手(助手看到用户看到的东西,用自然语言指挥用户动手做事)到底靠不靠谱?过去很难测,因为要真人配合,真人交互数据又贵又少。InteractiveWorld 的做法是把人建模成环境里的一个可交互代理:助手说人话,人去执行,环境执行动作、更新状态、渲染新的第一人称画面,形成"观察 → 指导 → 执行 → 世界更新"的闭环,而任务成功与否由环境状态判定,不是让模型给文本打分。
底层是 NVIDIA Isaac Sim,人体用 SMPL+H 蒙皮 + 内置抓取图集(grasp atlas)驱动,动作靠 A* 路径规划自动避障、自动选站位、自动调姿态和握法。
注意区分两层:
InteractiveWorld(模拟器,可复用) vsInteractiveBench(冻结的 120 个多轮任务评测集)。
核验来源
| 内容 | 出处 | 状态 |
|---|---|---|
| 论文标题、摘要、120 任务/六类别、12 个前沿 MLLM 评测、Claude Fable 5.1 在 Guidance 20.0% / Planning 25.0% | https://arxiv.org/abs/2610.33966 (v1,2026-10-25 提交,cs.HC,通讯作者 Qinsi Wang) | 已读摘要页 |
| 交互循环三层架构、36 个动作原语、A* 导航、Table 1 任务分类、Table 2 各类别 Pass/MCR、Table 3 九项能力、五个 Finding、消融 | https://arxiv.org/html/2610.33966v1 全文 | 已读全文 |
| 安装四件套、准备资产脚本、36 个动作族命令表、benchmark 运行命令、TaskPack 格式、CC BY-NC 4.0 | https://github.com/facebookresearch/InteractiveWorld README | 已读全文 |
| 交互式 Demo、50+ 人类动作、自动站位/握持策略 | https://meta-interactiveworld.github.io/ | 已读页面正文 |
| 仓库元数据 | GitHub API:31 stars / 1 fork / 1 open issue,创建 2026-10-24,最后推送 2026-10-27,主语言 Python,无 tag / release | 已核 |
原帖短链 https://t.co/rNQOBFqi81 已解析确认指向 HF 论文页 https://huggingface.co/papers/2610.33966,与 arXiv ID 一致。
上手步骤
前置条件(README 原文):Linux + NVIDIA GPU(作者在 A100 80GB 上测试,一个 simulator worker 约占 4GB 显存),约 100GB 磁盘。需要下载四样东西:
| 组件 | 版本 | 获取 | 许可 |
|---|---|---|---|
| Isaac Sim + OmniGibson | 5.1 / 3.9.0 | BEHAVIOR-1K 安装器 第 1 步 | NVIDIA Isaac Sim EULA |
| BEHAVIOR-1K 场景与物体 | 3.9.0(31 GB) | 同一安装器 --dataset |
BEHAVIOR Data License |
| SMPL+H 人体模型 | mano_v1_2.zip |
mano.is.tue.mpg.de(需注册) | MANO 许可 |
| ACCAD 步态动作 | ACCAD.tar.bz2 |
amass.is.tue.mpg.de(需注册) | AMASS 许可 |
Step 1 — 装 Isaac Sim / OmniGibson / BEHAVIOR-1K 数据集(官方安装器会创建名为 behavior 的 conda 环境):
git clone -b v3.9.0 https://github.com/StanfordVL/BEHAVIOR-1K.git
cd BEHAVIOR-1K
./setup.sh --new-env --omnigibson --bddl --dataset \
--accept-conda-tos --accept-nvidia-eula --accept-dataset-tos
conda activate behavior
cd ..
Step 2 — 装 InteractiveWorld:
git clone https://github.com/facebookresearch/InteractiveWorld.git
cd InteractiveWorld
pip install -r requirements.txt
export ISAAC_PYTHON=$(which python)
Step 3 — 手动放置 mano_v1_2.zip 与 ACCAD.tar.bz2(需自行注册下载,不可再分发)。
Step 4 — 准备资产(烘焙 release 用到的 BEHAVIOR 物体、拷贝 OmniGibson 材质、转换 SMPL+H、抽取行走片段、校验全部冻结 checksum 并写出环境文件):
./launch/prepare_assets.sh \
--behavior-data ../BEHAVIOR-1K/datasets \
--smplh ~/Downloads/mano_v1_2.zip \
--accad ~/Downloads/ACCAD.tar.bz2 \
--output ~/interactiveworld-assets \
--workers 8
source ~/interactiveworld-assets/env.sh
./launch/simulator.sh doctor # 全部就绪时打印 "ok": true
README 称 8 workers 下烘焙约 两分钟。
Step 5 — 跑第一条动作序列:
./launch/simulator.sh run --scene Rs_int --gpu 0 --frames-per-action 12 \
--action '[Walk] <can_of_soda> (1)' \
--action '[Grab] <can_of_soda> (1)' \
--action '[Walk] <coffee_table_fqluyq_0> (1)' \
--action '[Put] <can_of_soda> (1) <coffee_table_fqluyq_0> (1)' \
--action '[Sit] <sofa_mnfbbh_0> (1)' \
--video first_actions.mp4 > first_actions.json
命令格式是 [动词] <对象键> (实例号);不带 --action 跑一次可列出该场景所有可用对象键(initial_observation.objects)。发现类命令不启动 Isaac Sim,秒回:
./launch/simulator.sh worlds # 44 个场景
./launch/simulator.sh capabilities # 36 个动作族
./launch/simulator.sh tasks list # 120 个内置任务
./launch/simulator.sh tasks show ASK-13000
Python API:
from simulator import Action, Simulator, SimulatorConfig
config = SimulatorConfig(gpu=0, frames_per_action=8)
with Simulator.launch(scene="Rs_int", config=config) as world:
print(world.observe().objects)
for action in (Action.walk("can_of_soda"), Action.grab("can_of_soda")):
result = world.step(action)
print(action.to_command(), result.success, result.error_code)
frames = result.observation.frames_png # 第一人称 PNG 帧
Simulator.launch 在独立进程里起 Isaac Sim,应用侧保留自己的 Python/CUDA 环境。
Step 6 — 跑 benchmark。被测模型是 Assistant(只看得到第一人称画面和对话),另有一个固定的 Human 模型把指导翻译成仿真动作;任务在最终世界状态满足全部目标时才算通过。Human 模型可用本地开源模型(vLLM / Ollama 挂 OpenAI 兼容接口)或托管 API(openai / anthropic / gemini / http-json);API key 只从环境变量读,不走命令行:
export GEMINI_API_KEY=...
env -u CUDA_VISIBLE_DEVICES ./launch/interactiveworld.sh \
--assistant-provider openai-compatible \
--assistant-model Qwen/Qwen3-VL-8B-Instruct \
--assistant-base-url http://127.0.0.1:8000/v1 \
--human-provider gemini \
--human-model gemini-3.1-pro-preview \
--human-api-key-env GEMINI_API_KEY \
--category Guidance \
--num-gpus 2 \
--video failures \
--output-dir runs/qwen3-vl-8b-guidance
常用选项:--task-id(可重复)/ --category(可重复)/ --num-gpus N 或 --gpus 1,3(任务按 round-robin 分片,一张卡一个 Isaac worker)/ --video off|failures|all / --config my_config.json / --dry-run(只打印执行计划,不启 Isaac Sim)。输出目录含 report.json(总览)、reports/<TASK-ID>.json(对话/动作/评分)、videos/。
Step 7 — 自建任务。一个任务 = 一个 TaskPack JSON:world(场景与要放置的物体)、goal(判定成功的最终状态)、story.prologue(人提问前做过什么)、runtime.human_policy(人对指导的反应)、runtime.oracle_commands(oracle 解法)。最省事的做法是从内置任务派生:
python3 examples/05_derive_taskpack.py /tmp/my_task.taskpack.json
# 输出:task_id MY-ASK-12802-LIVINGROOM sha256:<digest>
./launch/run_taskpack.sh --taskpack /tmp/my_task.taskpack.json --taskpack-sha256 sha256:<digest> \
--assistant model --assistant-provider openai-compatible \
--assistant-model Qwen/Qwen3-VL-8B-Instruct --assistant-base-url http://127.0.0.1:8000/v1 \
--human-provider openai-compatible \
--human-model Qwen/Qwen3-VL-8B-Instruct --human-base-url http://127.0.0.1:8000/v1 \
--output-dir runs/my-task
自定义 TaskPack 要放在仓库外——README 明确说 release 目录树在每次 benchmark 前做完整性校验。
论文的关键结果(数字均出自论文 Table 1–3 与正文)
评测设置:12 个模型作 Assistant(Claude Fable 5.1 / Opus 5 / Opus 4.8,GPT-5.6 Sol / 5.6 Luna / 5.5,Muse Spark 1.1,GLM-5.3-Flash,Kimi K3,Qwen3.8-Max,Gemini 3.1 Pro,DeepSeek-V4.1-Flash);Human 固定为 Gemini 3.1 Pro;视觉输入每轮上限 32 帧、每动作采样 4 帧;Assistant 每轮输出 interrupt(带自然语言指令)/ silent / done,任务在 done 或达到交互上限时结束。
Table 2 整体通过率(Pass %):Claude Fable 5.1 41.7(MCR 54.8)> Claude Opus 5 33.3 > Muse Spark 1.1 31.7 > GPT-5.6 Sol 30.8 > GPT-5.5 30.0 = GLM-5.3-Flash 30.0,其余均 ≤33.3。同一 Human 配 Oracle Assistant 通过率 100%,无辅助时 0%。最强模型在 Guidance 仅 20.0%、Planning 25.0%,而 Decision 可到 85.0%。
五个 Finding:①闭环远未解决,最强模型也不足一半任务;②难点在持续维持闭环(长任务掉分快);③感知与记忆错误占全部首错 70.4%–85.7%;④沟通是关键短板——GLM-5.3-Flash 与 Claude Fable 5.1 平均能力分几乎相同(58.2% vs 59.2%),但沟通差(69.8% vs 79.6%),少完成 11.7 个百分点任务(30.0% vs 41.7%);⑤动作冗余严重,Accessibility 与 Guidance 类需要 Oracle 的 2.35×–3.66× 动作量。
消融:给 Assistant 回复加一个隐藏 Memory 字段,Prevention 与 Finding 类成功率提升 5–15%,但 Decision/Guidance/Accessibility 效果因模型而异,Planning 还掉了 5%。结论是"简单记忆增强不足以支撑长程可靠辅助"。
适用边界与坑
- 硬件门槛高:Linux + NVIDIA GPU + 约 100GB 磁盘,单 worker 约 4GB 显存;还要手动注册 MANO/AMASS 拿人体模型与动作数据。Apple Silicon / 无 GPU 环境跑不动。
- 许可限制:代码是 CC BY-NC 4.0(GitHub API 显示为 NOASSERTION,LICENSE 文件确为 Attribution-NonCommercial 4.0),BEHAVIOR-1K 数据、SMPL+H/MANO、AMASS 各有独立许可,MANO/AMASS 明确仅限非商业研究且不可再分发——商用需另谈。
- 仓库很新:2026-10-24 创建、无 tag 无 release,README 多处指向
docs/下的细节文档,且docs/TASKPACK.md等文件在仓库快照中可能仍在变动;examples/05_derive_taskpack.py这类路径若对不上需回到仓库当前 main 核对。 - 数据规模表述有出入:论文正文写"over 8,000 objects and 50 scenes"、附录写 51 layouts 里 44 个通过通用任务准入;README 写的是 44 个场景(BEHAVIOR-1K 住宅与场所)与烘焙 6,831 个 BEHAVIOR 物体。以 README 的 release 实测数字为准更稳妥。
- 模拟的是"听话的人":Human 是被指令驱动、且拿到全部合法命令的代理,不是真实用户;论文自己也承认需要"behavioural calibration"才能对齐真人。
- 不要把它当静态问答榜:论文反复强调静态 benchmark 测不出这类能力,闭环成功率受链上最弱一环限制。
- Accessibility 类任务刻意对 Human 隐藏视觉输入,复现时别误判为配置错误。
不确定处
- 原推文除标题与链接外无任何信息,本文全部技术细节来自官方仓库与论文,没有从推文推文正文做任何推断。
- 论文中"Claude Fable 5.1""Muse Spark 1.1"等模型名按论文原文照录,未做外部核实。
- 仓库 31 stars / 1 fork / 1 open issue 为 2026-10-28 查询快照,README 未给出 release 版本号,故无可引用的版本锚点。
- 未在本机实跑上述命令(环境不具备 NVIDIA GPU + 100GB 资产),命令与参数均取自官方 README 原文,未经本地验证。