详情

首页手游攻略 Atoms多模型同时调用如何控制执行顺序

Atoms多模型同时调用如何控制执行顺序

佚名 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处于活跃状态,避免资源争用】

点击查看更多
推荐专题
热门阅读