离线参考内核
要求:Python 3.12及以上,标准库即可;交付时实际测试环境见../qa/QA_REPORT.md。不需要模型API、GPU、Docker或数据库服务器。SQLite是Python标准库绑定。
在包根目录执行:
python -m unittest discover -s reference/tests -v
python reference/run_examples.py
node --test web/reference/engines.test.mjs
python qa/validate_package.py
前两项检验Python参考;第三项检验浏览器可复用的纯逻辑函数,需要提供node:test的Node运行时。最后一项检查课程元数据、链接与槽位,不能替代网站E2E。
文件职责
agentlab/runner.py:脚本模型、只读工具网关、有限循环与事件;不请求真实模型。agentlab/business.py:虚构订单、提案、审批、同数据库事务内的退款幂等与故障注入。agentlab/durability.py:Run创建、Outbox记录、lease/fencing、状态更新与事件读取的最小内核;不是完整工作流引擎。agentlab/retrieval.py:中文二元组BM25教学基线和RRF;不含embedding。agentlab/metrics.py:合成试次指标与Wilson区间计算。agentlab/scheduling.py:已知时长、非抢占的FIFO/SJF模拟;不是真实调度服务。agentlab/coding_solutions.py:三道原创Coding题的参考解。tests/test_course.py:确定性单元/集成验收,包含独立连接的并发重试。
范围
参考内核用于让机制可运行、可检查,不提供生产认证、HTTPAPI、真实Provider适配、完整审批恢复服务、消息Broker、实际容器执行或云部署。完整接口与实验要求在specs与labs。不能把参考测试通过包装成真实模型任务成功率或沙箱安全认证。
退款账本、余额和去重结果共享一个SQLite事务,所以测试能证明该范围内的原子性。远程支付服务不在事务中,必须依赖它自己的幂等/查询契约。所有金额、订单、身份与延迟均为教学数据。
参考代码与starter分开;默认测试验证reference。学习者接入自己的实现时保持验收契约,显式替换被测模块,不修改测试让错误实现“通过”。