目录

MoonExperimentKit

面向 MoonBit 的实验分流、样本比例校验与指标护栏基础库。

MoonExperimentKit 解决的是 A/B 实验平台中的底层问题:如何稳定地把用户分到实验变体,如何保证同一用户反复访问得到同一结果,如何检查样本比例是否明显异常,以及如何在错误率等护栏指标越界时阻止实验继续扩大。

解决什么问题

普通灰度发布只关心“谁能看到功能”,实验系统还必须关心“看到哪个变体”“流量比例是否健康”“指标护栏是否允许继续”。MoonExperimentKit 把这些逻辑抽成 MoonBit 原生基础库,方便产品实验、增长工具、教学演示和内部实验平台复用。

核心能力

  • 确定性哈希分桶:bucket
  • 加权变体分配:ExperimentVariantassign
  • 互斥实验层:ExperimentLayer
  • 曝光计数:count_exposures
  • 样本比例异常检测:check_srm
  • 指标样本与转化率:MetricSample
  • 指标护栏:GuardrailRuleevaluate_guardrail
  • JSON 导出:用于 CLI、日志或前端展示

最小示例

let experiment = @exp.checkout_button_experiment()
let assignments = @exp.assign_many(experiment, @exp.sample_subjects())
let counts = @exp.count_exposures(assignments)
let srm = @exp.check_srm(experiment, counts, 1200)
println(srm.to_json())

运行

moon check --target all
moon test --target wasm
moon test --target wasm-gc
moon run cmd/main

与已有项目的区别

MoonExperimentKit 不是 feature flag、不是发布系统、不是 SLO 工具,也不是数据仓库。它专注实验分流和实验健康判断,可作为更大实验平台的底层库。

项目边界

当前不存储曝光日志、不做显著性检验、不生成可视化报表、不替代业务决策。后续可以扩展贝叶斯/频率派统计检验、序贯实验、实验元数据导出和更完整的实验报告。

关于
281.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号