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
关联文档: 《元序规则》第九章(运算符与表达式)、第十二章(标准库)

浙公网安备 33010602011771号