07元序标准库API手册

元序 WorldScript 标准库 API 手册

本文档详细定义元序的内置状态场、内置函数、配置参数与互操作接口。
面向元序程序开发者。


一、内置状态场

元序运行时自动维护以下状态场,用户程序可直接读取,部分可写入。

1.1 系统 — 运行时自描述

维度 读写 说明
系统.稳定性指数 只读 全局系统健康度 [0,1],低于0.3触发生态重构
系统.运行Tick 只读 当前逻辑 Tick 计数,从0开始
系统.偏差总数 只读 当前活跃偏差数量
系统.演化次数 只读 累计成功应用的演化操作数
系统.规则总数 只读 已加载的 When 规则数量
系统.涌现事件数 只读 累计涌现事件总数

示例

When 系统.稳定性指数 < 0.4:
    涌现 系统预警
    偏差[系统偏差] 等级=高, 优先级=最高

1.2 偏差流 — 全局偏差聚合视图

维度 读写 说明
偏差流.活跃偏差数 只读 当前未收敛的偏差数量
偏差流.平均偏差强度 只读 所有活跃偏差的强度平均值 [0,1]
偏差流.收敛率 只读 历史偏差的收敛成功率 [0,1]
偏差流.最大偏差等级 只读 当前最高偏差等级(映射为0~1:低=0.25,中=0.5,高=0.75,最高=1.0)
偏差流.偏差扩散指数 只读 偏差扩散半径的加权平均

示例

Track 偏差流.平均偏差强度 持续20个Tick:
    若预测 偏差强度 > 0.6:
        涌现 系统性偏差风险预警

1.3 时间 — 时间状态

维度 读写 说明
时间.当前Tick 只读 系统.运行Tick
时间.物理时间 只读 当前映射的物理时间戳(若配置了物理映射)
时间.缩放因子 读写 Tick 与物理时间的比例,1.0=实时,>1=加速,<1=减速

示例

When 时间.当前Tick 在 [100, 200]:
    提升 模拟.加速因子 ×2

1.4 经验库 — 经验库状态

维度 读写 说明
经验库.条目数 只读 经验库中有效条目总数
经验库.平均效果评分 只读 所有条目的平均效果评分 [0,1]
经验库.命中率 只读 经验被成功引用并产生正向效果的比例
经验库.高频经验TOP10 只读 使用频率最高的10条经验(列表投影)

二、内置函数

2.1 状态融合与转换

连续融合

连续融合(dimension↑, dimension↓, ...) -> float

将多个带方向标注的状态维度融合为一个连续标量。方向 表示正相关, 表示负相关。融合权重初始平均分配,可由 Evolve 迭代修正。

参数

  • dimension:状态访问表达式,如 温度林区环境.湿度
  • 方向标注:(正相关)或 (负相关),省略默认为

返回:[0,1] 连续标量

示例

State 综合干燥度 = 连续融合(温度↑, 湿度↓, 风速↑, 降水强度↓)

归一化

归一化(value, min, max) -> float

将任意范围的值线性归一化到 [0,1]。

参数

  • value:待归一化的数值或状态
  • min:原始范围下限
  • max:原始范围上限

返回:[0,1]

示例

State 温度归一化 = 归一化(环境.温度, -20, 50)

平滑

平滑(state, window_size) -> float

对状态的历史值进行滑动平均平滑,减少噪声。

参数

  • state:状态维度
  • window_size:滑动窗口大小(Tick 数)

返回:平滑后的当前值


饱和

饱和(value, min, max) -> float

将值约束在 [min, max] 区间内,超出则取边界值(硬饱和)。

参数

  • value:数值或状态
  • min:下限
  • max:上限

返回:约束后的值


2.2 距离与相似度

距离

距离(state_a, state_b) -> float

计算两个状态维度间的连续距离(归一化欧氏距离的一维形式)。

返回:[0,1],0 表示完全相同,1 表示最大差异


相似度

相似度(state_a, state_b) -> float

计算两个状态的相似度,等价于 1 - 距离(a, b)

返回:[0,1],1 表示完全相同


2.3 趋势与预测

趋势.速率

通过趋势投影访问,非独立函数。

<state>.趋势.速率     // 一阶导数(变化速度)
<state>.趋势.加速度   // 二阶导数
<state>.趋势.预测值   // 外推预测值
<state>.趋势.置信度   // 预测置信度 [0,1]
<state>.趋势.拐点     // 是否处于拐点(0或1的连续值)

示例

When 干燥度.趋势.加速度 > 0.01:
    涌现 干燥加速预警

2.4 经验库操作

使用经验

使用经验("经验名称") -> ActionBlock

从经验库加载指定名称的经验策略,作为当前规则的动作执行。若经验不存在或效果评分 < 0.3,记录偏差并跳过。

参数

  • 经验名称:字符串,经验库条目的场景描述或标签

示例

When 路段.车流密度 > 0.9:
    使用经验("高峰拥堵分流方案")

查询经验

查询经验("关键词", min_score=0.5) -> ExperienceEntry?

按关键词搜索经验库,返回效果评分最高且不低于 min_score 的条目。返回 null 时不产生错误。

注:此函数主要在 Evolve 动作块中使用,用于演化引擎自动选择经验。


2.5 偏差查询

偏差流.查询

偏差流.查询(type="类型", level=等级) -> List<Deviation>

查询当前活跃偏差,可按类型和等级过滤。返回偏差列表的聚合投影(数量、平均强度)。

示例

When 偏差流.查询(type="生态偏差", level=高).数量 > 3:
    涌现 生态危机响应

2.6 数学函数

函数 用法 说明
min(a, b) 取较小值 连续值比较
max(a, b) 取较大值 连续值比较
abs(x) 绝对值
sqrt(x) 平方根 x 自动约束为非负
exp(x) 自然指数 结果自动饱和
log(x) 自然对数 x 自动约束为正
sin(x) / cos(x) 三角函数 x 单位为弧度
lerp(a, b, t) 线性插值 t∈[0,1]
clamp(x, min, max) 约束区间 饱和

三、全局配置参数

以下参数可在程序启动时通过配置文件或启动参数设置,部分可在运行时通过 系统配置 状态场修改。

参数 默认值 运行时可改 说明
涌现阈值 0.6 When 规则触发的最低因果强度
Δmax 0.3 单 Tick 最大状态变化量(防跳变)
εmax 0.05 单次演化最大参数修改量
Tick物理映射 1秒 1 Tick 对应的物理时间
收敛灵敏度 0.5 偏差收敛引擎的干预灵敏度,越高越早干预
演化影子期 1 Tick 新参数影子验证的 Tick 数
崩溃阈值 0.1 稳定性指数低于此值持续50 Tick 则保护性终止
历史窗口 1024 Tick 状态历史保留长度
因果权重初始策略 平均 多条件权重的初始分配方式(平均/语义/历史)
经验库自动淘汰 开启 是否自动淘汰低评分长期未用经验
最大并行规则数 无限制 单 Tick 最多触发的规则数(性能保护)

配置文件示例(JSON):

{
  "涌现阈值": 0.65,
  "Δmax": 0.25,
  "Tick物理映射": "5分钟",
  "收敛灵敏度": 0.6,
  "历史窗口": 2048
}

四、互操作接口

4.1 外部输入

元序程序可通过 外部输入 命名空间访问外部数据:

外部输入.<名称>

运行时启动时注册外部输入源(传感器、API、用户事件、文件等),程序中直接引用。

示例

When 外部输入.实时气温 > 35 & 外部输入.湿度 < 30%:
    涌现 高温预警

支持的外部输入类型

  • 数值流(传感器、指标)
  • 事件流(用户操作、消息)
  • 批量数据(CSV/JSON 文件,每 Tick 读取一行)
  • API 轮询(配置 URL 与轮询间隔)

4.2 外部输出

涌现事件可配置为触发外部动作:

涌现 事件名 → 外部输出.类型(参数)

支持的外部输出:

  • Webhook(HTTP POST)
  • 消息通知(飞书/钉钉/邮件)
  • 数据库写入
  • 文件追加
  • 命令执行

示例

When 火险等级 > 0.8:
    涌现 极危火险 → 外部输出.飞书通知("防火办群", "极危火险预警")

4.3 经验库导入导出

# 启动参数
--import-experience=path/to/exp.json
--export-experience=path/to/output.json

经验库 JSON 格式:

[
  {
    "scenario": "早高峰拥堵分流",
    "trigger": "拥堵指数 > 0.7",
    "strategy": "...",
    "effectiveness": 0.85,
    "use_count": 12,
    "tags": ["交通", "高峰"]
  }
]

4.4 状态快照

# 运行时命令
snapshot save <path>     // 保存当前完整状态
snapshot load <path>     // 从快照恢复
snapshot branch <name>   // 从当前状态创建分支推演

快照包含:所有状态场当前值、规则权重、偏差流、经验库、配置参数。可用于回放调试与反事实推演。


五、涌现事件的标准属性

每个涌现事件自动携带以下属性,可在动作块中引用:

属性 类型 说明
事件.名称 string 事件名
事件.因果强度 float 触发时的因果强度 [0,1]
事件.触发Tick int 触发的 Tick
事件.来源规则 string 触发的规则 ID
事件.满足条件 list 各条件的满足度列表
事件.持续Tick int 事件已持续的 Tick 数(若仍在持续)

示例

When 拥堵指数 > 0.7:
    涌现 拥堵事件
    若 事件.因果强度 > 0.9:
        提升 响应等级 +1

六、标准域模型

元序预置以下常用域模型,可通过 导入域 "模型名" 加载:

域模型 包含状态场 适用场景
城市交通 车辆/路段/路网/信号灯/公交 交通模拟
生态草原 草/兔/狐/鹰/环境 生态模拟
经济系统 政策/金融/企业/就业/消费/社会 经济模拟
气候环境 温度/湿度/气压/降水/风速 气候模拟
社会舆情 事件/传播/情绪/意见领袖/媒体 舆情模拟

示例

导入域 "城市交通"

When 路段.车流密度 > 0.8:
    涌现 路段拥堵

域模型是预定义的 State + Link + 基础 When 规则集合,加载后可直接使用或在此基础上扩展。


文档版本: WorldScript Standard Library API v1.0
关联文档: 《元序规则》第九章(运算符与表达式)、第十二章(标准库)

posted @ 2026-09-03 16:26  新哲  阅读(7)  评论(0)    收藏  举报