Eventer v0.1.0 验收记录

验收日期:2026-10-07。以下为本机真实执行结果,不是预估性能。

环境

规则、存档与接口

.venv/bin/pytest -q:24 项通过。覆盖物品同时争用、轮换优先级、单轮单行动、失败不扣体力、随身物位置、交换与移动冲突、代码约束不被模型绕过、自定义行动必须裁决、消耗品不可被描述状态复活、300 轮不变量、初始化引用校验、事务版本冲突、重启恢复、篡改检测、事件分页无遗漏、导入校验、人物接管、规则修改、同源边界、思考片段过滤、前台请求抢占后台和推理期间撤销意图不被误提交。

测试依赖带有一条 Starlette TestClient 关于未来切换 HTTPX 后端的弃用提示,不影响当前测试结果或服务运行。

真实语言模型

自然语言创建了「雾锁海港:灯塔危机」,包含 4 个地点、3 个人物、3 个物品。所有人物从同一快照提出意图,已观察到林岚拿取电池、步行到广场,沈舟独立移动并拿取口粮,阿禾留在灯塔检查设备。世界哈希链校验通过。

项目本次实测
27B 模型加载约 12–14 秒
模型运行显存约 17,146 MiB
原生生成速率约 38–40 token/秒
世界初始化47.530 秒
第一轮演化12.591 秒
第二轮演化8.891 秒
自然语言「原地休息」转成行动3.481 秒,正确转成 rest 并执行
抢占后台后的角色对话首字1.917 秒
该次简短角色对话总耗时2.362 秒

对话上下文已压缩为当前事实、存在状态与短事件摘要,避免把完整审计快照重复发送给模型。一次未经该优化的全局观察员回复首字为 4.520 秒;不同世界大小、对话长度、缓存、当前推理任务都会影响延迟。这里的首字时间不是从开口开始计时,也不是首个音频播放时间。

真实抢占测试:启动后台规划后发起角色对话,原生模型日志记录取消后台任务;对话完成后暂停,世界轮次保持不变,未提交半完成轮次。之后可继续演化。

初次测试发现模型会把固定设施限制错误编译成全局拿取禁令。已加入字段语义说明、必填 JSON 结构、禁止混淆条件禁令的校验、错误反馈重试和可审计的规则编辑。初始化仍应由用户检查;自然语言模型并不能保证所有设定都被完美理解。

本地语音与浏览器

项目本次实测
测试句你好,欢迎来到海港。请告诉我,灯塔现在是什么情况?
合成 HTTP 往返1.083 秒
识别 HTTP 往返0.143 秒
识别结果你好,欢迎来到海港,请告诉我灯塔现在是什么情况。

另一次初测出现同音字误差,因此不能据此声称真实麦克风识别率为 100%。

Playwright 在 Chromium 中以 WAV 文件作为模拟麦克风,实际调用 AudioWorklet、ASR、流式模型对话和三次分句 TTS 接口,均返回 200,页面无 JavaScript 错误。验证了停止播放与存档校验。

桌面 1440×1080、手机 390×844:创建世界、接管人物、拿取电池、编辑规则、创建新人物、持续演化/暂停均通过,手机无横向溢出,设备面板可打开。

本次尚未接入真实麦克风或蓝牙耳机。声学回声、蓝牙通话模式、实际耳机延迟和不同浏览器输出设备兼容性需接上设备后验收。连续对话采用轮流收听和播放,不是全双工。

复查方式

.venv/bin/pytest -q
# 需先启动应用;将新建一个规则演示世界
.venv/bin/python tests/browser_smoke.py
# 需已启动语言和语音模型;将新建真实世界并推进两轮
.venv/bin/python scripts/validate_live.py

浏览器测试需要安装 Playwright Chromium 及其系统运行库。当前机器缺少的 libasound.so.2 通过现有本地运行库提供;应用本身不依赖服务器的音频输出设备。

发布方式

网站使用 eventer.codeloop.cn 独立域名、Nginx 配置与 TLS 证书,版本文件位于 /var/www/eventer/releases/,通过 current 原子切换。部署前后校验其他站点配置哈希。公开包仅含项目源代码、界面、文档和脚本;不含模型、用户数据、运行环境、私钥或本地参考项目。