在已租/自管远程 Mac上,你要同机跑 OpenClaw Gateway 与 Ollama 或本机 vLLM 时,问题通常不是「模型连没连上」,而是端口、探活顺序、统一内存/CPU 争用与启停叠在一起。本文与 离线模型分诊篇 分工:那篇管 API/上下文/无回复;本篇只给同机拓扑的 Runbook。读完你应能写出:默认监听怎么错开、healthz 之前先验哪一层、以及 Gateway 全速拉满时如何先降级模型再动 Gateway。
11434、常见 vLLM 8000、OpenClaw Control UI 常见 18789;反代或本机再开一层时最容易二次占用。200 但 provider 指到未就绪的推理端点,表现成「能开 UI、对话无输出」而不是「进程挂了」。在评审/变更单里直接贴下表,避免「口头约定 8000」在第三周被别的服务借走。
| 组件 | 常见默认/约定 | 与 OpenClaw 的接口点 |
|---|---|---|
| Ollama 服务 | HTTP 默认 127.0.0.1:11434;若需 LAN 可见须显式放开并做防火墙 |
Provider 的 baseURL 指向 /v1 兼容端点;不要在 Gateway 前再套一层无健康检查的盲反代 |
| vLLM(本机) | 常见 8000 或你自定义;多实例必须错开端口与 GPU/线程池 |
同 Ollama:先保证 /v1/models 与一次最小 completion 真通,再让 Gateway 引用 |
| OpenClaw Gateway | Control UI 常见 18789;以你环境 openclaw 配置为准 |
先 healthz/readyz,再验 provider;详见 Gateway/模型分诊 |
curl 做最小 chat/completions;再启动或 reload Gateway,避免把「未就绪」写进长期状态。127.0.0.1;确需跨进程容器访问再打开 bridge,并记录防火墙规则责任方。healthz,第三层才走「全链路对话探针」;任一层红则不上业务流量。# 最小探针顺序示例(按你的端点改写) curl -sS "http://127.0.0.1:11434/api/tags" > /dev/null # Ollama 存活 # curl -sS "http://127.0.0.1:8000/v1/models" > /dev/null # vLLM curl -fsS "http://127.0.0.1:18789/healthz" # Gateway # 再跑一条最短对话/一次 openclaw doctor 由你环境定
笔记本来回睡眠、家宽出口抖动、或共享机上的不可预期邻居,会把**可复现的启停与探活**变成概率问题;同机 Ollama+Gateway 恰恰需要稳定的热边界与可预计的 I/O。把 Agent 与推理放在**独占、可 7×24、内存与存储可写进合同**的远程环境,比反复调参更省 MTTR。需要把上述 Runbook 落在生产时,MACCOME 的 Mac 云主机在独占 Apple Silicon 与租期可折账上,通常比拼凑多台个人设备更容易满足「同机多进程**可审计**、可扩内存/盘」的约束——让 OpenClaw 与本地模型真正同机时,你争的是**资源表与变更单**,不是运气。
不要在未测通单请求 completion 时就把 Gateway 并发打满;也不要先改 Gateway 版本再回头发现推理端口早被其它服务占用。两刀切齐,比多写十页配置说明更能减少凌晨电话。
常见问题
和「离线 Ollama/vLLM 分诊」那篇怎么分工?
那篇管 API 桥接、上下文与无回复分诊;本文管 同机端口、探活、资源与启停。可对照 离线私有模型分诊 与 Gateway 分诊。
Docker 里跑 Gateway、宿主机跑 Ollama 算不算「同机」?
算逻辑同机、网络要显式通。除端口外,还要写清 host.docker.internal 或 bridge IP,并在防火墙层可验收;基线可先看 Docker 生产向部署 与官方 Docker 篇。