# OpenClaw 本地多节点 subagent 智能调度规则 v1.1 ## 适用范围 适用于当前 OpenClaw 控制面(mac-5)在本地/尾网多节点环境下,为 subagent 选择推理 provider 的调度规则。 当前候选推理后端: - mac-5 oMLX - mac-6 oMLX - mac-7 oMLX - fallback / speed-first: `vllm_messages/Qwen3.5-27B` ## 核心原则 1. **派发前先探测可用性**:在真正派发 subagent 前,先对目标后端做一次轻量 `curl` 或等价请求,确认目标模型当前可调用。 2. **模型名按后端分别处理**:mac-5/6/7 上的 oMLX 模型名与 `vllm_messages/Qwen3.5-27B` 不同,探测和调度时必须使用对应后端自己的模型名,不能混用。 3. **默认本机优先**:如果当前任务不强调极致速度,优先尝试当前机器本地 provider。 4. **本机优先 localhost**:当任务落到本机 oMLX 时,优先使用 `127.0.0.1` / `localhost`,不要优先走 tailscale IP,避免 tailscale 网卡不稳定导致推理失败。 5. **速度优先任务优先 vLLM**:对响应速度要求较高的 subagent 任务,优先尝试 `vllm_messages/Qwen3.5-27B`。 6. **vLLM 失败再 fallback 本地节点**:如果 `vllm_messages/Qwen3.5-27B` 当前不可调用,再回退到 mac-5/mac-6/mac-7 的 oMLX 节点池。 7. **繁忙避让**:若节点 GPU 负载高于 50%,视为该节点当前有 GPU 任务,不优先派发新的 subagent。 8. **逐个派发逐个判断**:因为 subagent 一般是一个接一个启动,调度时每次都重新判断各候选节点的可用性和负载状态。 9. **全部繁忙时的最终回退**:当 mac-5/mac-6/mac-7 都繁忙或不可用时,可回退到 `100.64.0.5:8000` 对应的 `vllm_messages/Qwen3.5-27B`(前提是其可调用)。 ## 候选后端与模型 ### oMLX 节点 - mac-5 - endpoint: 本机优先 `http://127.0.0.1:8000/v1`,远程可用 `http://100.64.0.19:8000/v1` - model: `Huihui-Qwen3.5-27B-Claude-4.6-Opus-abliterated-4bit` - mac-6 - endpoint: `http://100.64.0.21:8000/v1` - model: `Huihui-Qwen3.5-27B-Claude-4.6-Opus-abliterated-4bit` - mac-7 - endpoint: `http://100.64.0.23:8000/v1` - model: `Huihui-Qwen3.5-27B-Claude-4.6-Opus-abliterated-4bit` ### vLLM fallback / speed-first - endpoint: 当前配置中的 `vllm_messages` - model: `Qwen3.5-27B` - 注意:该模型名与 oMLX 的 Huihui 模型名不同,探测与实际请求都必须分开处理。 ## 推荐调度顺序 ### 普通任务 1. 当前机器本机 oMLX(localhost 优先) 2. 其他空闲 oMLX 节点(检查 GPU 负载和可调用性) 3. `vllm_messages/Qwen3.5-27B` ### 速度优先任务 1. `vllm_messages/Qwen3.5-27B` 2. 当前机器本机 oMLX(localhost 优先) 3. 其他空闲 oMLX 节点 ## 派发前最低检查 在选中某个后端前,至少做两件事: 1. **模型调用探测** - 用 `curl` 或等价 OpenAI-compatible 请求,发一个最小 completion/chat 请求 - 确认目标模型名正确且当前能返回结果 2. **GPU 负载检查** - 检查该机器当前 macOS GPU 负载 - 若 >50%,视为繁忙,不优先选择 ## 重要提醒 - 该规则首先是 **推理后端调度规则**,不自动等价于“工具执行一定在同一台机器上运行”。 - 后续如果要实现真正自动负载均衡,可考虑引入统一 `omlx_pool` / inference gateway;在此之前,先按本规则做显式 agent/provider 选择。