用途:context 是 MooLLM 中传给每个已编译闭包的运行时上下文对象,命名为 world,表示“从闭包内部看到的世界”。它用于在冒险模拟中让闭包读取和修改世界状态。
主要能力:标准键始终存在,包括 world.turn、world.timestamp、world.adventure(含 name、flags、world_state)、world.player(id、name、location、inventory、buffs)、world.room(id、name、path、exits、objects、is_dark、is_dangerous)和 world.party(members、leader)。扩展键在相关时出现:world.object(对象模拟时,含 id、state,方法被绑定)、world.target(动作目标,含 id、type)、world.npc(NPC 模拟时,含 id、goals、state)。技能状态注册在 world.skills.<skill_name> 下,技能名中的连字符需换成下划线,如 pie-menu 对应 world.skills.pie_menu。工具函数包括 world.emit、world.narrate、world.trigger_event、world.has、world.give、world.take、world.flag、world.set_flag、world.get、world.set、world.go、world.can_go、world.add_buff、world.remove_buff、world.has_buff、world.log。
使用方式:闭包接收 world 参数,例如 guard_js: (world) => world.has("brass-key") && !world.room.is_dark。对象方法在运行时绑定到 world 上,可直接调用如 world.consume_fuel(1)。编译表达式时同时生成 _js 与 _py 两个版本,例如 guard_py: lambda world: world.has("brass-key") and not world.room.is_dark。
适用场景:服务端模拟、测试、LLM 绑定使用 Python;浏览器运行时、独立游玩使用 JavaScript。两者语义、world 结构和工具函数保持一致。
限制:资料未提供安装命令、收费、价格或平台信息。技能状态必须使用下划线命名空间以避免冲突;world 不是任意键值包,具有固定结构。