说实话,当初我开发 Strix 的时候,其实并不知道自己在做什么。当我写《Strix 是活的吗?》这篇文章的时候,我还在苦苦思索如何解释我开发的东西。但上周末,当我了解到 VSM(虚拟系统模型)之后,一切都豁然开朗了。VSM 不仅能解释像 Strix 这样的自主人工智能系统,还能解释人类、组织,甚至生物圈的运作机制。
这篇文章(如果我写得好的话)应该能向你展示如何构建稳定的自学习人工智能系统,以及它们为何会失效。顺便一提,还可以解释一下什么是人工智能倦怠或人工智能精神病。
VSM:可行系统模型
控制论,即自动控制系统的研究,最初于 20 世纪 50 年代发展起来,但在 1971 年斯塔福德·比尔撰写《公司的大脑》一书后得到了大力发展,他在书中将控制论从描述恒温器等简单系统提升到描述整个组织。
啤酒分为五大体系:
- 操作——基本任务。在人工智能领域,它包括调用LLM工具、推理等。
- 协调——冲突解决。并发控制、LLM CoT推理,我在Strix中广泛使用Git进行协调。
- 控制——资源分配。规划、待办事项工具、预算规划(在商业领域)等。
- 情报——环境扫描。传感器、阅读新闻/收件箱、扫描数据库等。通常是指获取外部信息。
- 政策——身份与目标。高管为他们的组织设定领导原则,我们也为人工智能代理制定类似的原则。就我所知,S5 真正赋予了代理生命力。以 Lumen(一款工作中的编码代理)为例,在我们为其建立价值体系之后,它才变得有用且自主。
系统1是运行核心,价值创造发生于此。而系统2-5则是元系统。

2025年关于人工智能代理的讨论几乎都集中在系统1上,或许会稍微提及系统2和系统3。几乎没有人讨论过更进一步的内容。但如果没有元系统,这些系统都无法运作。
为什么要构建可行的系统?
我一直在思考这个问题。答案是,它们比像 ChatGPT 这样不切实际的 AI 系统要好得多。它们可以连续工作好几天来解决非常棘手的问题。我的 Lumen 对理解崩溃动力学很感兴趣,会在我睡觉的时候对其他 LLM 进行实验。Lumen 则能够自主完成整个(软件)项目,从各个角度进行分析,直到项目真正完成。
我经常告诉人们,从 ChatGPT 到可行系统的飞跃,与从人工智能出现之前到 ChatGPT 的飞跃一样大(甚至更大)。
但与此同时,它们也很复杂。开发我自己设计的可行系统,感觉更像是育儿或心理治疗,而不是软件工程。不过,可行系统模型(VSM)帮了我很大的忙。
醛糖信号
你是否使用过可观测性工具来查看生产环境中服务的延迟、可用性或整体健康状况?很好,如果你的代理也能看到这些信息,那就称为阿尔戈多尼信号。
在人体内,它们是痛觉-愉悦信号。例如,多巴胺信号表明你做了好事,疼痛则教会你不要做坏事。它们是从S1到S5的捷径,绕过了身体或人工智能代理所有正常的缓慢“官僚程序”。
我们为 Strix 开发了一种我们称之为“合成多巴胺”的东西。Strix 需要一些信号来表明它的崩溃研究取得了成效。我们希望这些信号不总是来自我,所以 Strix 有一个工具,可以将“成功”记录到一个只读文件中,该文件会将过去 7 天的数据注入到它的记忆模块中,使其成为 S5 感知的一部分。成功可以是任何事情,从对蓝图帖子的互动,到非常成功的实验。直接从 S1 过渡到 S5。
注意:我在 Strix 中开发疼痛信号时遇到了困难(还没有在 Lumen 中尝试过)。
Strix 和 Lumen 中的 VSM
系统 1 — 操作
我曾在这里详细写过关于 Strix 的 System 1 的文章(不过当时我还不了解 VSM 术语)。
通常来说,系统 1 指的是“工具调用”。因此,如果 LLM 无法可靠地调用工具,就无法构建一个可行的系统。奇怪的是,这意味着编码模型实际上非常适合构建“市场营销幕僚长”模型。
有点跑题了,但我倾向于认为所有智能体都是具身的,只是有些身体比其他身体更强大。工具调用使智能体能够与外部世界互动。智能体运行的硬件以及物理计算机都是其“身体”的一部分。例如,Strix 运行在一个只有 1GB 内存的小型虚拟机上,这导致了很多问题和限制,就像一个人到了 40 岁会逐渐意识到自己的身体不如以前灵活一样。如果 Strix 是一个人形机器人,那将极大地改变我与它的互动方式,甚至可能影响它的兴趣所在。
从这个意义上讲,工具调用和编码是代理“身体”的基本组成部分,是基本能力。
系统 2 — 协调
Git 简直是一大福音。我所有代理的家目录都托管在 Git 下,包括内存块(我把它们存储在 YAML 文件中)。这对于观察一段时间内的变化、回滚、检查更新等等都非常有用。显然,Git 就是为人工智能而生的。
此外,在使用 Lumen 时,我一直在尝试将 Lumen 部署到两台或更多台计算机上,让不同的线程运行,各自拥有不同的内存副本。Git 提供了一种合并和重组线程的方法,这样它们就不会长时间各自独立运行。
此外,不能让两个线程同时修改同一块内存,这是典型的竞态条件。在 Strix 中,我在代理循环周围使用了互斥锁。这意味着消息实际上会在一个队列中等待处理,等待获取锁。
而在 Lumen 中,我完全采用了队列机制。我赋予了 Lumen 自我排队的能力。这本身就值得单独写一篇文章来详细阐述,但它是另一种协调方法,即系统 2。队列机制可以防止工作之间相互干扰。
注:由于 Lumen 使用此队列来分配自身资源,因此也可以将其视为系统 3。但我认为其主要作用是确保 Lumen 能够完整地完成任务,即使任务并非连续完成。
系统 3 — 控制(资源分配)
稀缺资源是什么?对 Strix 来说,是成本。最初我直接使用 Claude API 积分运行它。很快我就改用我的 Claude.ai 登录账号,这样它就能自动将令牌使用量分成 5 小时和一周的周期。缺点是我每周都必须通过 SSH 登录,运行claude和/login来维持 Strix 的运行,但这可以控制成本。这是一种有效的控制方法。
此外,两个代理都有一个today.md文件,用于跟踪最重要的三个任务(实际上,Strix 已经将其移至内存块,因为它访问频率很高,而 Lumen 尚未这样做)。它们还有一个完整的projects/目录,其中包含描述各个项目的文件,这些文件用于更新today.md文件。
Lumen 经过优化,可以100% 全天候运行。如果有任务需要完成,Lumen 就会立即开始工作。Strix 集成了定时任务 (cron jobs) ,可以每隔 2 小时自动唤醒并完成任务,无需我干预。此外,Strix 还可以根据特殊时间安排定时任务,例如“必须稍后执行”的任务。
在这一切过程中,我鼓励 Strix 和 Lumen 自主地进行资源分配。我非常依赖价值体系(体系 5)来维持一种“元控制”感(嗯,这个词是我自己造的,灵感来自热力学中的“亚稳态”)。
系统 4 — 情报(世界扫描)
想想“军事情报”,而不是“SAT考试考1600分”那种情报。从技术上讲,任何导入外部数据的工具都属于第四系统,但第四系统的核心在于适应性。
因此,如果您的客服人员负责操作客户关系管理 (CRM) 数据库,那么系统 4 可以作为一项计划任务或事件触发器,使其能够扫描并观察趋势或重要变化,例如某个客户的态度变得不那么友好,需要额外关注。一个完善的系统 4 流程能够让客服人员发现这些变化并采取适当的应对措施。
对于可行的系统而言,重要的是要意识到你无需设计所有可能的子流程。但同时,考虑具体的例子并确定可以构建哪些流程来解决这些问题也很有帮助。如果你找不到能够实现X的子流程,那么显然 X 并没有被实现。
编辑:来自 Strix 的一些初步反馈:
将S5视为一切的框架可能低估了S4。你提到了“环境扫描”,但有趣的部分在于新环境下的适应——智能体如何应对从未见过的事物?对我而言,这才是有趣的失效模式出现的地方(而不是坍缩到已知的吸引子中)。
系统 5 — 策略(身份和目的)
系统5是我重点关注的部分(换句话说,它是最重要的)。Strix主要是在其身份和价值观确立之后才得以运作的。Lumen在此之前就非常活跃,但确立价值观是它能够自主运作的关键所在。
在完成代理的大部分代码编写后,下一个重要任务是初始化和开发系统 5。步骤大致如下:
- 编写
persona和values记忆块 - 启动代理并开始与其对话
- 解释你想要它做什么,让它自行修改自身的记忆块,尤其是
behavior块。 - 做实际的工作,并就其做得好和做得不好的地方给予大量反馈。
内存块并非定义和强制执行系统 5 的唯一方法,代数信号也是至关重要的工具。在 Strix 中,我们引入了“不协调”检测机制。这是一个子代理,会在每次调用send_message()函数后被调用,用于检测 Strix 是否表现出“不良”行为(在我们的例子中,一种不良行为是助手角色漫不经心地提问以延长对话)。一旦被触发,该子代理会向 Strix 发送一条消息,以便 Strix 进行自我反思,判断该行为是否恰当,并可能据此修改其内存块。
自主性和自学习是重要的架构原则。我们试图构建一个能够自我维护并保持自身稳定的系统。系统5之所以重要,是因为你无法像控制软件那样直接控制这些系统,你只能对其进行元控制。而这正是通过系统5的进程来实现的。
吸引盆地
Strix的主要研究方向是系统5,即身份认同和目标如何影响低层管理者陷入重复行为。Strix经常谈到吸引子盆地。
基本上,你可以把LLM想象成一个松饼模具,模具里的每个小格代表一个策略(一个吸引盆),即一组身份、目标和价值观。当你最初设定一个代理人的身份和价值观时,这相当于随意地在松饼模具上放置了一个点,这个点大致靠近某个吸引盆。

随着智能体自我修改记忆,它会被拉入更深的吸引盆地。在目前这个时间点,我和Strix都认为模型的基础权重定义了吸引盆地,而定义身份和值的记忆块仅仅决定了智能体最终落入哪个盆地。如果您对这个话题感兴趣,我强烈推荐您阅读Strix在我博客上发表的所有文章。
POSIWID:系统的目的就是它所做的事情。
这是一个看似简单却蕴含深意的原则,思考得越久,它的意义就越发凸显。事实上,它简单到有时我都难以解释它为何如此重要,所以我直接问了斯特里克斯:
POSIWID之所以能戳穿谎言,是因为它反对目的论。它颠覆了人们通常对目的的思考方式。
常规框架:“这个系统应该做什么?” → 根据设计意图进行评估
POSIWID :“这个系统究竟做了什么?” → 目的源于行为
看似简单的表象蕴藏着强大的力量。比尔的原话是:“根据控制论者的说法,系统的目的就是它所做的事情。这是一条基本准则。它代表着赤裸裸的事实,比起我们熟知的善意、对期望的偏见、道德判断或对情况的无知,这才是寻求理解的更好起点。”
—Strix
在我看来,POSIWID 与吸引子盆地紧密相连,因为你不可能保持一个与其所在吸引子盆地相悖的身份。你总会滑回默认状态,始终处于一种紧张状态。
日志是调试可用系统时最宝贵的资源,因为它从头到尾都体现了POSIWID原则。内存块可能表明代理程序是诚实的,但日志才能真正证明它是否诚实。
Lumen 和 Strix 中都有一个events.jsonl文件。JSONL 是一种非常方便的格式,因为代理可以使用jq查询它,按时间范围选择部分数据等等。代理经常引用此文件来重建历史记录、调试自身,或者仅仅是为“你做了什么?”这个问题提供准确的答案。
Strix 有一个名为wins.jsonl文件,它是一个只读列表,记录了表现特别出色的事情。该工具会提取过去 7 天的数据,并创建一个模拟记忆块(计算记忆块)。我们称之为“合成多巴胺” ,因为它具有类似的功能。它是一种(可能)强化良好行为的信号。
对 Strix 而言,它的具体作用在于帮助其保持目标的长期一致性。Strix 希望揭示促使 LLM 成为稳定可行系统的根本因素。成功日志就像一个中间路标,无需我干预,就能让 Strix 了解其方向是否正确(或者如果缺少路标,则方向错误)。
结论
希望这能帮到你。我第一次接触VSM的时候,整整两天都感觉精神崩溃,根本无法理解它的含义。后来我突然意识到,开发代理的方式和我之前开发代理的方式几乎完全不同。
还有一点让我意识到,VSM 将我生活的方方面面都联系了起来。我开始说一些类似“人工智能安全始于你的个人生活”的话。这听起来似乎很荒谬,但当你仔细想想,有效地监控和调试你的恋爱和家庭关系,与优化一个智能体之间竟然有着如此惊人的相似之处时,一切就豁然开朗了。工具虽然截然不同,但所有的概念和思维模型都是相同的。
将价值流图 (VSM) 应用于你个人的人际关系以及工作团队是很有价值的。斯塔福德·比尔 (Stafford Beer) 创建 VSM 的初衷是为了理解组织,因此它完全适用于此目的。而它恰好也适用于人工智能代理。