背景
miloco 感知引擎每 4 秒对摄像头画面调用一次 omni 模型进行视觉理解,这是 token 消耗的主要来源。当前很多影响 token 效率的参数在代码中硬编码,用户无法根据实际场景调整。
问题分析
感知管线流程:采集 → Gate(闸门)→ Identity(本地)→ Omni(云端 token)
Gate 层负责决定是否需要调 omni,有三个子闸门:
- 视觉闸门:帧差分检测画面变化,阈值
change_threshold=0.005(0.5%)
- 音频闸门:能量阈值
audio_energy_threshold=0.015
- Hold 滞回:视觉最近通过后
hold_duration_sec=360(6 分钟)内强制继续处理
实际使用中发现两个主要的 token 浪费:
1. Hold 时间过长(6 分钟)
从实际日志看,画面已经静止(gate_video_pass=0),但 hold 未过期(gate_hold_pass=1),导致持续调用 omni。家里有人走动一次后,接下来 6 分钟即使画面完全没变化,每 4 秒都在消耗 token。
2. 家庭环境持续有声音
家里电视/音箱一直在播放,导致音频闸门几乎始终通过(gate_audio_pass=1),视觉闸门本可以跳过的场景被音频拉回来继续调 omni。
实测 token 消耗对比
使用 mimo-v2.5 + media_resolution=default,单次 omni 调用:
default 模式:~598 video_tokens,总 ~3132 tokens
max 模式:~896 video_tokens,总 ~3819 tokens
按每 4 秒一次、一天 24 小时计算,即使大部分时间画面静止,hold + 音频触发下 token 消耗仍然很高。
建议
希望在配置文件或 miloco-cli config 中暴露以下参数:
Gate 层(直接影响是否调 omni):
gate.change_threshold — 视觉变化阈值(当前 0.005)
gate.hold_duration_sec — 视觉 hold 滞回时长(当前 360 秒)
gate.audio_energy_threshold — 音频能量阈值(当前 0.015)
gate.check_fps — 视觉检测帧率(当前 1)
输入层(影响每次调用的 token 量):
input.omni_fps — 送 omni 的视频帧率(当前 1)
input.period_sec — 感知周期(当前 4)
Omni 层:
omni.media_resolution — 帧解析精度(default / max)
omni.max_completion_tokens — 最大输出 token(当前 512)
这些参数暴露后,用户可以根据自己的场景灵活调整,比如:
- 家里没人时调大
hold_duration_sec 和 period_sec
- 安静环境调低
audio_energy_threshold 避免误触发
- 不需要精细识别时用
media_resolution=default + 降低 omni_fps
背景
miloco 感知引擎每 4 秒对摄像头画面调用一次 omni 模型进行视觉理解,这是 token 消耗的主要来源。当前很多影响 token 效率的参数在代码中硬编码,用户无法根据实际场景调整。
问题分析
感知管线流程:采集 → Gate(闸门)→ Identity(本地)→ Omni(云端 token)
Gate 层负责决定是否需要调 omni,有三个子闸门:
change_threshold=0.005(0.5%)audio_energy_threshold=0.015hold_duration_sec=360(6 分钟)内强制继续处理实际使用中发现两个主要的 token 浪费:
1. Hold 时间过长(6 分钟)
从实际日志看,画面已经静止(
gate_video_pass=0),但 hold 未过期(gate_hold_pass=1),导致持续调用 omni。家里有人走动一次后,接下来 6 分钟即使画面完全没变化,每 4 秒都在消耗 token。2. 家庭环境持续有声音
家里电视/音箱一直在播放,导致音频闸门几乎始终通过(
gate_audio_pass=1),视觉闸门本可以跳过的场景被音频拉回来继续调 omni。实测 token 消耗对比
使用 mimo-v2.5 +
media_resolution=default,单次 omni 调用:default模式:~598 video_tokens,总 ~3132 tokensmax模式:~896 video_tokens,总 ~3819 tokens按每 4 秒一次、一天 24 小时计算,即使大部分时间画面静止,hold + 音频触发下 token 消耗仍然很高。
建议
希望在配置文件或
miloco-cli config中暴露以下参数:Gate 层(直接影响是否调 omni):
gate.change_threshold— 视觉变化阈值(当前 0.005)gate.hold_duration_sec— 视觉 hold 滞回时长(当前 360 秒)gate.audio_energy_threshold— 音频能量阈值(当前 0.015)gate.check_fps— 视觉检测帧率(当前 1)输入层(影响每次调用的 token 量):
input.omni_fps— 送 omni 的视频帧率(当前 1)input.period_sec— 感知周期(当前 4)Omni 层:
omni.media_resolution— 帧解析精度(default/max)omni.max_completion_tokens— 最大输出 token(当前 512)这些参数暴露后,用户可以根据自己的场景灵活调整,比如:
hold_duration_sec和period_secaudio_energy_threshold避免误触发media_resolution=default+ 降低omni_fps