在 Roblox 中探索自主 Agent
文章目录
前言
详细的中央规划是不可能的,甚至都不要去尝试。 – 《栖息地: 来自一个在线社区的报告》
近期, 我们(DynaLab)在 Roblox 中探索自主 Agent。
我们想把自主 Agent 引入像 Habitat(栖息地) 这样的虚拟世界, 让自主 Agent 与人类玩家一同生活,彼此影响。
LLM 提供了一个构建自主 Agent 有前途的方向。
以 LLM(大型语言模型)为核心控制器构建 Agent 是一个很酷的概念。AutoGPT、GPT-Engineer 和 BabyAGI 等概念验证演示,都是鼓舞人心的例子。LLM 的潜力不仅限于生成流畅的文本、故事、论文和程序;它也可以被视为一个强大的通用问题解决器。 –LLM 驱动的自主 Agent
Agent 是什么
在计算机科学领域,“Agent”(代理、智能体)通常指一种具有自主行为和决策能力的实体,能够感知环境并采取行动来实现其预定的目标。 – ChatGPT: Agent in Computer Science
在人工智能(AI)中,智能 Agent(IA) 是以智能方式行事的 Agent;它感知环境,自主采取行动以实现目标,并可以通过学习或获取知识来提高其能力。 –wikipedia: Intelligent agent
AI 社区对 Agent 有着长期兴趣(Intelligent agent)。
我们对马文·明斯基(Marvin Minsky)在《心智社会(Society of Mind)》一书中提到的架构尤为感兴趣: 智能从这些彼此独立,相互协作的 Agent 构成的 “心智社会” 中涌现出来。
Agent 是思维中的任一组件或程序,它自身非常简单,容易理解, – 马文·明斯基 《心智社会》
斯坦福小镇(Generative Agents) 与 批处理风格
在我们开始的时候, 斯坦福小镇(Generative Agents)论文 刚发布不久, 它立刻引起了 AI 社区和大众媒体的广泛讨论。
25 个生成式 Agents 共同生活在一个小镇上。 它们清晨醒来、享受早餐然后进行工作: 画家画画、作家写作…它们独立思考、相互观察、彼此交流, 它们善于反思…
这些生成式 Agent 不仅有可信的个人行为,还涌现出一定的社会行为:比如,最开始用户只是为其中一个智能体指定了举办情人节派对的概念,但是它在接下来两天内自动发出了派对邀请、结识新朋友、相互邀约并协商在合适的时机一起出现在派对上。
这篇论文发布时,源代码并未立即公开(目前已经开源)。当时社区里不少人试图复现它,如Generative Agents in LangChain。
起初, 我们也想复现它, 经过几次讨论,我们发现论文中的场景,实质上是一种“批处理风格”(我们也称其为"录制"风格): 完成"初始设置"之后, 游戏就一帧一帧生成,最后输出一部可供观赏的电影。
这样做的好处是明显的: LLM(大语言模型)实时性不好,且有访问速率限制。批处理风格可以做到逐帧生成游戏画面,不论每一帧实际花费了多少时间。即使中间发生意外,也可以修复后再发布。假设同一帧里有 10 个人,他们按顺序调用 LLM ,一共花了 1 分钟。采用批处理风格,可以把这 1 分钟里发生的 LLM 调用,收集起来,放到游戏的同一帧里。批处理的过程用户看不到,用户看到的是最终的漂亮作品。
我们不想要这种"批处理风格",而想要"实时行动和交互式的 Agent"。 类似于恩格尔巴特发明的"交互式图形界面"那样的东西。
于是我们放弃了复现 “斯坦福小镇”, 但这篇文章依然给了我们深刻的印象(观察、规划和反思)。

冒险之旅
你期待结束旅程的你,不再是出发时的自己
游戏环境
“斯坦福小镇” 论文 中游戏环境使用 phaser 构建。 这是一个 2D 游戏框架,运行在浏览器里。
由于我们之前在 Croquet 上工作,我们渴望在 3D 环境里构建虚拟世界。
Minecraft 和 Roblox 成为两个备选项。为了获得更高的自由度,我们决定采用 Roblox。
智能的幻觉
我们实际上必须认为思维所做的所有事都是无意识的。 – 马文·明斯基《心智社会》
Alan Kay 在 计算机软件 中提到, “图形用户界面(GUI)” 是一种幻觉。 对于用户而言,呈现在他们感官上的东西就是他们的计算机。这种幻觉可以帮助用户理解和猜测系统的行动和接下来应该做什么。
我们想在 Roblox 中构建自主 Agent 的幻觉: 它以游戏角色的形象出现在 Roblox 游戏场景中,拥有记忆、感知和决策能力。以一个整体的形象出现在用户面前: 一个拥有自主行动能力的游戏角色。
Roblox 是我们临时的计算环境,长期来看,我们想要将自主 Agnet 集成到个人计算环境中,这便是我们构建智能幻觉的原因: 我们希望将它用作一种交互界面,用于增强用户的心智力量。
让简单的事情保持简单,让困难的事情变得可能 – Alan Kay
狼来了
“自主 Agent +游戏” 这个方向有不少探索者:
- Inworld: Bring games to life with AI NPCs
- NVIDIA ACE for Games
- Central Casting AI: Cast your next game with Central Casting AI
- Unity AI
- Lumari
- MineDojo: building Open-Ended Embodied Agents with Internet-Scale Knowledge
- …
我们最初不知如何切入这个方向, “在 Roblox 中探索自主 Agent”, 听起来是一个定义相当模糊的目标。
由于缺少在游戏领域的工作经验,我们打算以一个简单的场景开始: 狼来了
《狼来了》是《伊索寓言》中的一则故事:
故事发生在一个小镇,一天,父亲让小男孩去放羊。他感到无聊,便以撒谎取乐。经常喊叫“狼来了”,引起村民们的注意。看着村民们因虚假的警报奔跑而来,他自己则在笑声中躲藏起来。
由于他频繁撒谎,村民们不再相信他的话。有一天,狼真的来了,袭击羊群。男孩大呼 “狼来了”,但这一次,没人相信他…
我们希望 AI 驱动的角色们,能够协同表演这个故事场景。
可是我们发现故事性和自主性似乎会导致冲突,当我们渴望角色按照剧本演戏的时候,它的自主性就不强。当我们希望它自主性强的时候,它就不一定会遵从剧本。
我们没有解决这个问题,而是消除了这个问题: 我们意识到,故事主要作为一种脚手架,帮助我们起步,给予我们可供讨论的角色,告诉我们游戏场景大致如何… 有了这些基本设定,就可以开展工作了。 一旦起步之后,故事就不再重要。 我们希望,随着事情的进行,会出现一些意料之外的行为(但要可信),而不是束缚于原本的剧情。
和"斯坦福小镇"一样,狼来了的故事也发生在一个小镇。
小镇
我找来老家小镇的的地形图:
@David 据此构建了最初的游戏世界:
不久他又往里添加了游戏角色、屋舍、动物、昼夜生长的农作物、随风飘舞的花草…
Roblox 开箱可用性非常棒. 不到一周时间,我们就有一个体面可用 3D 游戏环境了!团队成员可以通过化身(Avatar)一同进入这个虚拟世界,在田间山头展开讨论,规划门要如何摆放,树要种在哪里,河的上游有座桥坏了得修一下…
bootstrapping 研究方式
这种走到游戏中去规划游戏世界的体验,我们非常熟悉,它很像个人计算环境(Scratch、MicroBlocks、Squeak、Etoys、Lively…)。我们想到个人计算社区偏好的 bootstrapping 研究方式: 生活在自己构建的系统里,持续改进它。Smalltalk 背后的设计原则对此有更好的表述:
- 在当前系统内构建一个应用程序(进行观察)
- 根据经验,重新设计语言(形成一种理论)
- 基于新设计构建新系统(做出可测试的预测)
这是恩格尔巴特发明交互式图形界面的方式; Alan Kay 团队在施乐实验室,构建 Smalltalk 的方式; 也是 Bret Victor 在 Dynamicland 里构建 Realtalk 的方式。bootstrapping 研究方式在计算机历史上产生了许多有趣成果。
我们之前在 CodeLab 也学习这种工作方式: 生活在自己构造的系统里。通过这种方式,我们构建了 CodeLab Adapter 和 Neverland。
由于过去在个人计算领域的工作经验,我们渴望在一个高度灵活可塑的计算环境里工作。我们打算先建造一些基础设施来支持我们更好的做事。
基础设施
我们需要先造出一个合适的筏子,这样我们就可以一边学习航海,一边设计一艘船。我们将设计出正确的船,因为它是我们将要居住的船 … 创造工具,以便于创造更好的工具 – David Smith AR/VR 为何将获胜?它将如何获胜为何重要?
很快我们的愿望清单上就出现了两个基础设施:
- DynaBrain
- DynaTalk
起初我们打算以 DynaBrain(“大脑”) 为中心,大脑以 LLM(大型语言模型)为核心控制器。Roblox 中的角色像是一个木偶,每个角色都有对应的大脑在幕后提着线操控它。架构上,我们把 Roblox 看作视觉表现层。为这个木偶赋予灵魂的则是 DynaBrain。
起初的架构图是这样的:
更精细的版本:
“起初的架构图” 和 ReAct 论文 展示的架构很相似。
很自然地,我们打算采用 LangChain 作为 DynaBrain 的核心。 LangChain 作者好像提过, LangChain 项目最初是为了复现 ReAct 论文的想法。
在思考 DynaBrain 如何设计的同时,我们也在考虑架构的其他部分。我们需要回答的一个关键问题是: 系统的不同部分如何协同工作?
构建优秀且可扩展的系统的关键更多的是设计模块之间如何通信,而不仅仅是设计其内部属性和行为。 – Alan Kay
如何让 LLM 驱动的 “大脑” 与 Roblox 环境中的角色 “身体” 协调起来? 我们最初想在身体里安装一个通信组件,临时叫做 dynabrain adapter
。 这个名字反映了我们以大脑为中心的想法。
我们不想在 Roblox 中构建大脑(理论上行得通),而把 Roblox 当作临时计算环境,未必是最终的计算环境。我们希望从探索中得到一些通用的架构组件,未来可以在各种地方使用它(我们最终得到了!)。
即便我们弱化了 Roblox 计算环境的职责,它依然有一些不令我们满意的地方,其中最重要的一点是: Roblox 不容易与其他系统进行双向通信,Roblox 社区里没有令我们满意的解决方案。我们最终动手打造了自己的方案。这个话题,会在另一篇文章里单独讨论,我们相信它对 Roblox 社区有独特的价值。
有一天,@hidaris 在工作小组提议说:
我比较期待 dynabrain adapter 能够被设计成一个基于消息的行为协调组件,它本身不关心两边是 Roblox,还是 Langchain。
它能够像 realtalk 那样, 即使后面技术或者产品形态有一些调整,也可以持续作为项目的基石? 或者说我们有没有必要在这里设计一个 dynatalk 这样的东西?
DynaTalk
- 一切都是对象
- 对象通过消息进行沟通
- 对象解释它所理解的消息
我们对 Agent 协同工作的"心智社会"感兴趣。希望 Agent 之间的耦合足够低,Agent 们能够自由加入和退出系统,它们能够发现彼此并协同工作,这个系统要足够灵活和健壮,而且是动态生长的,最好像互联网一样…
这些愿望把我们带向了消息传递(Message passing)架构。
我们关心的是在对象之间发送消息(通信行为而非表现)的协议 – 《栖息地: 来自一个在线社区的报告》
差不多就在这时,我们在 Github 上发现了 agency, 它刚起步,足够小巧,以至于可以将它捏造成任何我们想要的形状; 它又足够完整,具备了大多数我们想要的特性。
我们喜欢这个采用 Actor 模型 的 Agent 框架。打算基于它来构建 DynaTalk。很快我们就开始在开源社区为它贡献代码,成为这个项目的主要贡献者之一,并与作者围绕消息结构等关键问题展开讨论。
Actor 模型
Agent 的概念可以追溯到 Hewitt 的 Actor 模型(Hewitt,1977)—— “一个独立的、交互式的、并发执行的对象,拥有内部状态和通信能力”。 –Software agent
引自维基百科的这段话,很好说明了为何我们想要基于 Actor 模型的 Agent。
我们希望 Agent 拥有这些特性:
- 能够接收外部信息(事件)
- 能够与其他 Agent 通信
- 拥有独立的生命进程
这样的系统不可能是集中式的,得是分布式的。Actor 模型正是我们需要的。 一个 Actor 可以:
- 响应收到的消息
- 发送消息
- 创建更多 Actor
如此简单、干净、正交 !
OOP(面向对象) 对我来说仅意味着消息传递、局部保留、状态过程的保护和隐藏,以及所有事物的极端晚绑定(late-binding) – Alan Kay
Actor 模型 与 Alan Kay 对 OOP(面向对象)的看法非常相似。 他对 Actor 模型的最著名实现–Erlang 语言表示赞赏,Alan Kay 曾与 Erlang 作者 Joe Armstrong 有过一段对话 Joe Armstrong & Alan Kay。
马文·明斯基构想 Agent 组成的"心智社会", Alan Kay 构想对象构成的可生长系统,Joe Armstrong 构想能够对抗失败的编程语言… 他们有许多共同的上下文,以至于 Agent、Object、Actor 看起来像同一个东西的不同侧面。
我们认为 Actor 模型是构建 Agent 的正确计算模型。
于是,我们得到 Actor 风格的架构设计:
消息传递架构的回报
基于消息传递的新架构,很快让我们尝到了甜头.
有了新的架构,我们开始对整个系统进行重构,之前想不明白的许多问题,现在变得容易了,这得益于消息传递机制的灵活性。基于 Actor 的 Agent, 和 Alan Kay 的对象一样, 它是"递归的计算机",局部拥有整体的所有能力。许多问题,我们不再需要一开始想明白,可以推迟机制方面的决策(晚绑定), 这让我们得以在不确定中前进。
我们之前难以解决的问题有两个,其一是 DynaBrain 的"生命周期问题"; 其二是与 Roblox(Studio) 的双向通信问题。在新的架构下,它们都变得没那么困难。
有一个周末,为了实现第二个里程碑,@hidaris 基于 DynaTalk 的消息架构重构 DynaBrain。我当时想要一些基础设施来提高开发效率。于是花了半个上午的时间,完成了 Roblox 模拟器、Roblox 双向消息转发器。 模拟器和双向消息转发器让我们看到消息传递的强大能力: 我们可以在集成调试中,随时停下来查看消息,拦截它,再播放它,这仿佛我们可以操控系统逻辑时间(进程在逻辑时间中演进)。我们可以在系统层面上打断点,所需的一切工作都只是摆弄消息!
之后 @hidaris 与我讨论 DynaBrain 基于消息传递的设计时,我提到模拟器和转发器,他说这正是他想让我做的,结果我已经做出来了!
基于消息传递的架构,也让我们很快得到期待很久的另一个基础设施: 事件观测器。
对于一个复杂系统来说,可理解性和可观测性是很重要的,否则,随着系统成长和变得复杂,很快我们就无法理解系统里边发生了什么。
我们几乎不费力就得到了 “事件观测器”, 可以随时往系统里插入探针,实时看到任何 Agent 之间的"交谈"。这对于理解和调试系统非常有帮助。随着系统变得复杂,它会更加重要。
困难不在于如何构建它,而是如何理解它 – Bret Victor
DynaTalk 的特性
并发运行
多个 Agent 是并发运行的,它们可以分布在不同机器上。
异步消息
Agent 发出消息(诸如请求)后,不需要等待接收方立即响应,而是可以继续执行其他任务。接收方在适当的时候处理消息或请求,并在处理完成后进行响应。
异步消息通信模式在许多场景下非常有用,特别是在处理复杂或耗时的操作时。它也非常适合用于构建事件驱动的系统。
在异步消息之上,要构建经典同步机制(类似 LangChain 的大多数案例)是很容易的: 建立在异步消息之上的同步指令, 我们已经在异步消息的基础上,构建了拥有同步语义的 Agent。
以下是一个探索 Agent 视觉能力的原型实验,我们希望 AI 能够观察环境里的东西, “观察环境” 是一个"语义同步"的行为。
可理解性与可观测性
前头提到:
可以随时往系统里插入探针,看到任何 Agent 之间的"交谈"。
这为我们提供了 Agent 之间的协作视图。有了这个视图,我们就能够在"社会"层面弄清楚 Agent 之间是如何协作的。出了问题时,我们也能够弄清楚,是消息传递的哪个环节出了问题,是因为某个 Agent 没收到预期的消息,还是因为它收到了某个消息,却没有完成后续的工作,导致了智能链条在它这一环断开了 …
多处运行
前头提到,Roblox 只是我们临时的计算环境,我们希望架构是通用的。
我们可以在各种计算环境中构建 Agent, 这些不同计算环境的 Agent 可以协同工作。
- Python
- Roblox(Lua)
- MicroPython
- Snap!
- JavaScript (正在构建中…)
- …
目前,我们主要在 Python 和 Roblox 中构建 Agent。我们也在探索在 JavaScript 环境中构建 Agent(MQTT over websocket),以下是我们在 Snap!(Javascript) 中构建的 Agent:
DynaTalk 主要支持两种消息协议: AMQP 和 MQTT。对可靠性和安全性有很高要求的 Agent,建议使用 AMQP。而对于具身智能(Embodied AI)的研究, 尤其是有硬件身体的 Agent, 推荐 MQTT,因为大量 硬件系统/Iot 都支持 MQTT 协议。
通过 MQTT over websocket,支持在 JavaScript 环境中构建 Agent,浏览器是新的操作系统,以及最强大的软件分发平台,@David 提议探索这个方向,将 AI Agent 与浏览器中的个人计算环境结合。希望帮助终端用户按需构建软件。关于这方面,我们受到软件 2.0(Andrej Karpathy) 和 大语言模型时代的可塑软件(Geoffrey Litt) 的影响。
我们甚至可以基于消息传递机制,将图形化编程环境用作 Roblox 游戏的控制器(或解释器),这让我们很容易实现 teamlab 的这个场景
人机共生
人类用户、计算环境、智能 Agent 能够协同工作。在系统层面,他们都只是对外收发消息。这里边有很大的设计空间,我们对此还不怎么理解,目前处于早期探索阶段。
我们倾向于对系统中不同的角色(无论是人类还是 AI)持不可知论,以此来提高系统的一致性,AI、人类、计算环境,可以以任何方式在系统中交互,甚至彼此欺骗(安全性可以通过一个独立的层添加进去, Capability-based security可能是个好想法)。这种不可知论的另一个益处是增加系统的动态性,以便于环境和 Agent 都可以动态生长。我们希望保持消息网络的愚蠢,采用端到端原则, 互联网的成功很大程度受益于端到端原则。
端到端原则(End-to-End Principle)是一种设计思想,强调在网络中,核心部分应该保持简单,而复杂性应该移动到网络的边缘,即端点(endpoints)。该原则强调网络的核心部分不应该过于依赖于具体应用程序,而应该专注于提供基本的传输功能,而将更高级的功能留给端点进行处理。 –ChatGPT
我们希望通过 DynaTalk(以及 DynaBrain),终端用户可以轻松与 AI 以及计算环境协同工作。
性能
Dynatalk 在很多方面和 CodeLab Adapter 相似,但更加健壮和工业化。我们相信,它可以服务于许多企业级场景。
在普通笔记本电脑上,Dynatalk 每秒处理数以万计的消息,如有需要,很容易进行横向扩展。
困惑与未来
大多数想法来自过去的旧想法。 – Alan Kay 《The Early History Of Smalltalk》
Agent 之间如何对话的问题,进一步说是如何协作的问题,给我们造成困扰。 @David 对这个问题进行了梳理: 沟通、互动和协作问题。 @hidaris 与 ChatGPT 围绕互动性规划有一段精彩的讨论 。 团队目前在工作上大量使用 ChatGPT 和 Claude,这或许也可以视为 bootstrapping 研究方式的一种体现: 借助 AI 来探索 AI。
我们近期视图弄清楚 Agent 之间如何交流,需要建立哪些规范。打算最终将这些想法实现在消息结构和消息解释器(实现在 Agent 的结构中)里。关于 Agent 的协作方面,@neolay 为团队找到了许多有价值的方向。我们目前对 FIPA 很感兴趣。
FIPA 成立于 1996 年,是一家瑞士非营利组织,其雄心勃勃的目标是为 Agent 可以执行的实施系统(Agent 平台)定义一整套标准,并指定 Agent 本身应如何在标准中进行通信和互操作方式 –Foundation for Intelligent Physical Agents
LLM(大语言模型)像是 Agent 的大脑皮质(功能上最为高阶的一部分), 它功能强大,但是反应慢。 我们想要赋予 Agent 像本能一样的原始机制(基本的生理需求,安全需求…)。这些机制简单而迅速。
最生动的思维也比不上最迟钝的感觉。 – 大卫·休谟
@David 向团队介绍了 BDI(Belief–desire–intention software model) ,它可能可以为 Agent 提供类似本能的内在内驱力。并分享了一个相当有趣的视频 展示了类似 BDI 的简单机制如何赋予模拟人生的游戏角色强大生命力。Dynatalk 的架构设计,似乎非常适合实现视频里提到的游戏机制: “可交互对象在环境中主动广播”。
如果想要系统能够发展,那么随着时间的推移添加新的对象类型的能力至关重要。 –《栖息地:来自一个在线社区的报告》
@neolay 进一步整理了 BDI 相关的资料
我们在最近的里程碑-2 中也视图弄清 Agent 如何与环境中的物体进行互动,@neolay 也为此找到了一些看起来有前途的方向:
这方面还处于探索阶段。
DynaBrain
记忆器(memorizer)是一个智能体,它可以重置一个智能组,让它回到某种以前的有用状态。– 《心智社会》
LLM 驱动的自主 Agent 提到:
在一个由 LLM 驱动的自主 Agent 系统中,LLM 充当 Agent 的大脑,辅以几个关键组件:
- 计划
- 记忆
- 工具使用

在我们几次讨论 Agent"生命周期问题"(计算模型)之后,我们意识到最初以大脑为中心的设计不令人满意。
将 LLM 驱动的大脑作为中央调度器,会出现很多问题,尽管它也可以制作许多有趣的用例,但我们很难获得"真正交互式/可生长的 Agent"。
随后,我们发现 Actor 计算模型是正确的方向。这极大影响了 DynaBrain 的设计。
我们最初也采用上图中集中式的设计。后来,我们放弃了这个方向,正在以消息传递为核心重构大脑。并不存在一个"中央大脑", “大脑"的能力,分散在不同的 Agent 之中,这些分散而简单的 Agent,共同构成"心智社会”,整个"心智社会"共同承担"大脑"的功能。
以下是我们(@hidaris)对 DynaBrain 设计和期待:
我们关注机器智能与人类智能的交叉研究,最早可以追溯到 20 世纪 40 年代的控制论之父维纳。他将控制和反馈回路的理念应用于生物系统的神经肌肉反馈,并引领沃伦·麦卡洛克和沃尔特·皮茨加入麻省理工学院,开展了世界上第一个人工神经网络的研究。我们深受马文·闵斯基关于心智社会的启示,他主张心智是由无意识的简单“智能体”相互作用而成。David Eagleman 对人类大脑功能的解读也给我们带来了很多灵感。当看到斯坦福的 generative agents 和像 babyagi 这样的项目出现时,我们意识到,构建类人智能的时刻已经来临。
过去在个人计算领域的研究使我们团队达成一项共识:应该构建一个由简单多 agent 组成的类人智能的心智社会,而其基础应该是基于消息的系统架构。我们意识到,在现有的 LLM 上构建类人智能,首先需要为其构建观察机制,使其能观察世界的物体和事件。我们采用了 David Eagleman 的感官替代理论(在多模态之前,LLM 相当于盲人)。构建观察机制后,还需引入基于时间衰退因子的长期记忆模块来储存记忆,使类人智能在新观察到达时能根据长期记忆中的相关信息做出反应。反应产生后,类人智能需判断是否需进行短期规划,若是,则进入反馈循环(采纳维纳的观点,即世界应通过信息来理解,复杂系统由相互关联的反馈回路组成,导致复杂而稳定的行为)。
在反馈循环中,类人智能会根据环境的反馈调整短期规划,逐步实现最终目标。同时,类人智能还需能做长期规划,这些规划在整个生命周期中由新的观察、互动和反思更新。除了个体的感知-行动,我们还在探索多个类人智能的协同问题。狭义上,我们研究他们如何协作完成任务、对齐目标、分享经验;广义上,我们试图探究他们能否完成创造性任务,能否进行新颖性探索,为其他类人智能的长期目标创造足够多的“踏脚石”。
最终,我们期望这个类人智能的机制足够通用,以便当底层模型进一步发展时,它能够与艾伦·凯所说的指数增长的力量同步增强。
里程碑
团队采用远程工作的方式,我们鼓励在确定共识的情况下,最大化大家的探索自由。
为了在自由探索和推进目标之间取得平衡。我们会定期制定里程碑。以此作为我们短期的共同目标,大家各自寻找有效推进这些里程碑的机制。
里程碑由团队会议上共同制定出。
里程碑-1
我们希望在里程碑-1 中实现以下场景:
- 在 Roblox 中构建"狼来了"故事中的小镇。具备合适的地形、人物、动物、房屋…
- 本杰明在山上放羊。狼来了,吃了羊,本杰明听到羊叫声(听觉事件)。他从记忆中想起遇到这种事情的应对方案,本杰明做出决策,跑到村口的店里求助。
我们已经实现了里程碑-1。
里程碑-2
详情参考: 里程碑-2
里程碑-2 聚焦的目标是:
- 多个 AI 之间的对话
- Agent 使用道具,以及与环境交互
具体而言,我们希望实现以下场景
- 本杰明到达村口求助,与店老板展开 2 人对话
- 对话在村子里传播
- 期待传递到更远范围(如抵达正在田里劳作的本杰明的爸妈)
- 涌现出社会行为
- 有一个人拿起锄头 ⛏️(Agent 使用道具)
- 村民们在村口集合,一起上山驱逐狼 🐺
- 到达山顶 ⛰️,把狼赶跑。发生讨论
我们正在推动里程碑-2。
后记
LLM & AI
LLM 的影响是巨大的,这是我们开始当前工作的原因之一。
我们团队在工作中,大量使用 LLM(ChatGPT、Cloude) 帮助我们编写代码、概述/总结论文、整理会议纪要、讨论设计决策、一起头脑风暴…
我们认为 AI 在不久会被广泛地使用,影响整个社会。
价值危机
人本身就是目的,而不是工具 – 康德
有天深夜,@hidaris 和 @David 在工作小组里讨论 AI 的进步可能造成的社会问题,一直聊到半夜 2 点。之后这个话题成为第二天团队会议的主要议题。
我们一开始认为这个问题主要是关于经济和伦理的,但后来大家都认同在当前语境下,它很大程度上与政治有关。
这次长时间的讨论,共识是,这一波的 AI 浪潮,可能不是"狼来了"的故事,炒作的成分虽然依旧很大,但实际的冲击力也是巨大的。泡沫是有,但它正在创造实际的价值,同时正在造成实际的破坏。如果我们参与其中,应该是负责任的,而不是草率的。
我们希望是恩格尔巴特、Alan Kay 、Bret Victor 的后继者,让计算机/AI成为增强人类心智的力量。而不是用自动化来替代人。
我们希望我们的工作(尽管它可能微不足道),能够促进技术民主化与数字赋权,而不是与数字极权有关。
参考
- Wikipedia Habitat
- 《心智社会(Society of Mind)》
- Generative Agents: Interactive Simulacra of Human Behavior
- 《栖息地:来自一个在线社区的报告》(收录在真名实姓一书中)
- gist BDI model
- gist FIPA
- 里程碑 2
- LLM Powered Autonomous Agents
- FIPA Communicative Act Library Specification
- Belief–desire–intention software model
- Actor model
- wikipedia Message passing
- Software agent
- Actor model
- Intelligent agent
- Neohabitat
- Inworld: Bring games to life with AI NPCs
- Central Casting AI: Cast your next game with Central Casting AI
- The Genius AI Behind The Sims
- Bootstrapping Research & Dynamicland – Bret Victor
- ReAct: Synergizing Reasoning and Acting in Language Models
- Voyager: An Open-Ended Embodied Agent with Large Language Models
- NVIDIA ACE for Games
- LangChain
- Late binding
- Joe Armstrong & Alan Kay
- VirtualHome: A Multi-Agent Household Simulator
- ai2thor iTHOR
- 计算机软件
- Smalltalk 背后的设计原则
- 建立在异步消息之上的同步指令
- Software 2.0
- Malleable software in the age of LLMs
- End to end principle
- The Sims
- Auto-GPT: An Autonomous GPT-4 Experiment
- BabyAGI
- agency
- Generative Agents in LangChain
文章作者 种瓜
上次更新 2023-08-12