MAGI 决策系统,以及「两票通过」为什么比多数表决有意思
如果你看过《新世纪福音战士》,你应该记得 MAGI:三台超级计算机, 分别叫 MELCHIOR、BALTHASAR、CASPAR,遇到重大决策时三个各投一票。
这个站上第二个浏览器实验就是把 TA 做出来:/magi/。
先说清楚来源:这部分不是我写的。 它是 SEELE0/EVA-Magi-AI 的浏览器端二创,逻辑原样引入、没有改动。我做的只是把它当作独立产物挂到本站的子目录下。 许可是 AGPL-3.0-or-later,和本站其他部分是两回事——详见文末。
为什么「两票通过」比多数表决有意思
多数表决是这样的:少数服从多数,2:1 通过。听起来很合理,但它藏着一个问题—— 永远不会有「说不」的时刻。 三个人里只要两个人点头,事情就发生了。 系统里没有「否决」这个概念,只有「票数够不够」。
MAGI 的规则不一样:
- 三个节点各自独立判定,每票都记名。谁投了什么,事后查得到。
- 通过需要 两票赞成。
- 关键在于——任意一票都可以是否决。一个节点说不行,整件事就进不了下一步, 哪怕另外两个都同意。
这就把「少数派」从一个需要被压服的噪声,变成了一个必须被正面回答的问题。 决策的成本从「说服两个人」变成「不能惹毛任何一个人」。
三个节点分别代表什么
代码里的三个节点对应三种不同的判断倾向。大致可以理解成:
| 节点 | 倾向 |
|---|---|
| MELCHIOR | 作为「科学家」的那一面:事实、可行性 |
| BALTHASAR | 作为「母亲」的那一面:保护、风险 |
| CASPAR | 作为「女人」的那一面:直觉、关系 |
有意思的地方在于,这三者的分歧不是噪声,而是设计的一部分。 一个只想前进的系统和三个会互相踩刹车的系统,做出来的决定不一样。
人工复核那一环
判定链路里有一段是「人工复核」。这一环的意义在于: 如果三个节点吵得不可开交(或者干脆全都拿不准),系统不应该硬投票选一个, 而应该把问题交回给人。
这比「让模型强行输出一个答案」诚实得多。模型不知道自己不知道, 但一个设计良好的系统可以在「置信度不够」的时候选择不回答。
关于许可,得认真说
这一部分的许可是 AGPL-3.0-or-later,和本站其他部分(我自己的代码)不是一个许可。
AGPL 里有一条是网络服务条款:如果你把这个程序部署成网络服务给别人用, 你有义务向使用者提供对应的完整源码。 这不是可选项。
所以本站指向源码的入口有两个:首页实验区的 UPSTREAM,以及 /magi/ 应用自己导航栏里的
GitHub 图标。页脚不在其中——那里只有 RSS 和本站的 GitHub;而 /magi/ 页面内部目前也没有
出现任何 AGPL 字样的声明,许可信息只落在首页和这篇文章里。
如果你打算自己也部署一份,请先确认你理解并愿意承担这条义务。
另外,MAGI 是《新世纪福音战士》的非商业粉丝二创。 EVA 相关的名称与素材著作权归原权利人所有,与 Khara 及任何相关权利方无关。 这是粉丝作品,不是官方产品,也不用于任何商业用途。
上游已经有后端骨架
上游仓库里留了一套后端工作区(backend/):REST 契约、端口定义、存储与安全说明都在,
但目前不可运行——没有路由、没有数据库、没有模型供应商依赖。
主应用完全跑在浏览器里,可以用模拟节点或者你自己配的兼容 API。
那套端口骨架是给「想把 MAGI 接到真实模型上」的人准备的起点。 真要做的话,第 1 步是把三节点的判定从「模拟」换成「真的调用」,第 2 步才是编排和存档。