作者:互联网 时间: 2026-09-01 18:06:54
Atoms多模型调用需严格按视觉→语言→动作顺序执行,通过depends_on字段构建DAG依赖链,禁止循环依赖;采用snapshot_ts或Lamport时钟同步跨模型输出;分阶段阻塞式调用支持单步验证。
在Atoms多模型同时调用场景中,需确保视觉模型先解析界面元素、语言模型再生成指令、动作模型最后执行点击或输入——若顺序错乱,会导致指令基于过期UI状态而失败。
在Atoms配置文件中,为每个模型节点添加depends_on字段,指向其前置依赖的原子ID。例如:"vision_model": {"depends_on": []}表示无前置;"llm_planner": {"depends_on": ["vision_model"]}强制等待视觉模型输出完成后再启动。
依赖链支持多级嵌套,如"action_executor": {"depends_on": ["llm_planner", "state_tracker"]}可并行等待两个上游原子就绪。系统在调度时自动构建有向无环图(DAG),【任何循环依赖都会导致启动失败,必须手动拆解】。
方法一:在视觉模型输出结构中嵌入snapshot_ts字段,语言模型读取该时间戳后,仅处理对应时刻的UI快照数据。若检测到snapshot_ts早于当前缓存的最新快照,则主动丢弃本次输入。
方法二:为每个原子实例分配全局单调递增的逻辑时钟(Lamport Clock),所有跨模型通信消息携带clock_value。接收方严格按clock_value升序处理消息,跳过乱序包。这能防止网络抖动引发的执行错位。
第一步:调用atoms run --stage vision,仅启动视觉模型并保存结果到临时存储路径/tmp/atoms/vision_20260820_0214.json。
第二步:确认该文件存在且非空后,执行atoms run --stage llm --input /tmp/atoms/vision_20260820_0214.json,语言模型从指定路径读取输入。
第三步:提取第二步输出中的action_plan字段,写入/tmp/atoms/plan.json,再运行atoms run --stage action --input /tmp/atoms/plan.json触发最终执行。
此方式完全绕过并发调度器,【每次只能有一个stage处于活跃状态,避免资源争用】。