宣言:用于 AI 操作软件系统的语义世界模型接口
Source: Dev.to
1‑页技术概念摘要
1. 问题
当前的 AI 代理通过 视觉、DOM 启发式或文本推理 来控制软件系统(SaaS、内部工具、工作流)。
这些方法失效,因为现代应用包含:
- 隐藏的状态
- 分布式业务逻辑
- 非确定性的 UI 行为
- 隐式约束与策略
- 异步依赖
- 带有条件转移的多步骤工作流
从 AGI 的视角来看:
环境不可观察、不可稳定、且未结构化编码。
→ 没有代理能够可靠地构建此类系统的功能性世界模型。
因此,AI 无法 规划、解释 或 安全地采取行动。
这 不是 模型的局限,而是 表示问题。
2. 核心思路
Manifesto 为软件系统提供一个正式的、声明式的世界模型接口。
它以确定性、机器可解释的结构公开应用的 语义、状态转移 与 动作空间。
与其强迫模型从像素、DOM 或自然语言中推断业务规则,Manifesto 将这些规则 显式化:
Domain Semantics → Snapshot → Expression‑based Rules → Action Effects
换句话说,Manifesto 将软件从黑盒 UI 转变为白盒、符号化环境。这是可靠的 AGI 代理在真实软件中运行所缺失的基底。
3. 表示模型
Manifesto 将一个领域形式化为四个机器可解释的命名空间:
3.1 data.*
可变的用户层输入。
3.2 state.*
系统层或异步状态(例如 loading、error、已获取的列表)。
3.3 derived.*
通过 纯表达式 DSL 计算的确定性值:
- 类似于 Mapbox‑GL 表达式
- JSON 可序列化
- 静态依赖图
- 无副作用
- 完全可分析
3.4 actions.*
通过结构化 Effect 图 执行的有副作用行为:
ApiCallSetValue/SetStateParallel/SequenceConditional/CatchEmitEvent
动作的 前置条件 表示领域策略(即语义约束)。
4. 确定性运行时
Manifesto 的核心运行时:
- 从所有表达式构建 依赖 DAG。
- 计算 语义快照(Semantic Snapshot):
{
"data": …,
"state": …,
"derived": …,
"validity": …,
"timestamp": …,
"version": …
}
- 确定性地执行效果。
- 每次变更后重新生成快照。
- 发出 可解释的因果追踪(例如 “为什么此动作被阻止?”)。
这创造了一个 稳定、可检查、可复现的环境——这是当今任何 UI 或 DOM‑基系统所不具备的属性。
5. 代理接口
Manifesto 向代理公开统一的表示:
- 当前世界状态(快照)
- 带前置条件的动作空间
- 策略违规及其解释
- 每个动作的预期结果
- 类型安全的输入模式
- 附加在每条路径上的语义元数据
这使得:
- 规划
- 解释
- 反事实推理
- 安全检查
- 修复策略
- 在约束下的自主性
无需从 UI 推断;代理直接获得类似研究中 RL 环境的 结构化世界模型,但直接连接真实软件。
6. 为什么这对 AGI 很重要
6.1 符号 × 神经集成
Manifesto 提供了 AGI 系统一直缺失的符号基底:
- 结构化状态
- 确定性转移
- 显式规则
- 有限动作空间
LLM 在这些结构上进行推理要比在原始 UI 观察上可靠得多。
6.2 LLM 与应用之间缺失的层
现有 AI 栈:
LLM ↔ (DOM / Vision / Heuristics) ↔ Application
Manifesto 用 正式的语义接口 替代了脆弱的中间层:
LLM ↔ Manifesto World Model ↔ Application
6.3 实现真正的代理自主性
因为代理知道:
- 它 能 做什么(动作空间)
- 它 不应 做什么(前置条件)
- 如果行动会产生什么(效果语义)
- 为什么会 失败(解释树)
它获得了前所未有的可控性与安全性。
6.4 支持真实世界的泛化
每个 SaaS 领域都成为标准化的环境:
- 代理可以在不同领域之间迁移模式。
- 一个通用的语义层随之出现。
7. 核心洞见
AGI 并不需要让 LLM 推断 软件系统的结构。
软件系统本身已经 拥有 结构——只是没有被公开。
Manifesto 将该结构公开,提供:
- 可计算的世界
- 声明式逻辑层
- 确定性转移模型
- 机器可消费的本体
- 安全的动作接口
这正是让 AI 行动 而非仅仅 预测 的缺失环节。
8. 概要句
Manifesto 是一种正式的语义接口,将真实软件系统转化为确定、可解释的世界模型——从而使安全且可泛化的 AI 代理能够操作这些系统。
你可以访问实验项目仓库并自行尝试: