在租用远程 Mac做离线批推理,要在统一入口与内存可控之间取平衡。本文给OpenClaw与本地 Ollama分工、安装要点、队列脚本骨架、并发封顶与指数退避。延伸阅读:OpenClaw 加固、批处理选型。免登录:首页、定价、购买、帮助。
💻 本文解决什么问题
网关管鉴权与路由,模型进程只接转发;批任务用有限并行队列推进,失败降级而非死循环重试。
🚀 三类痛点(编号)
- 路由乱:生成端口直暴露,密钥轮换与限流难。
- 并发爆:多路并行顶满统一内存,健康检查连带超时。
- 重试风暴:脚本狂重试,日志与临时文件拖垮磁盘。
API 路由方案对比(决策矩阵)
有 Agent 工作流优先网关前置;纯 SSH 内批跑可用回环直调。
| 方案 | 适用 | 路由 | 并发 | 风险 |
|---|---|---|---|---|
| 网关前置 | 与编排共用入口 | 外网到网关,内网转模型端口 | 一至二路起测 | 升级需排停机序 |
| 反代令牌 | 要 HTTPS 与粗限流 | 路径映射生成接口 | 连接数与体长双限 | 配额审计自建 |
| 回环直调 | 单用户 SSH 内批跑 | 不经公网 | 串行最稳 | 误配扩大暴露面 |
OpenClaw 网关与本地 Ollama 安装要点(清单)
队列脚本、并发上限与降级重试(骨架)
pending 进 done 或 failed;xargs -P2 限并行;失败 2^n 秒退避,超限进死信。
#!/usr/bin/env bash
set -euo pipefail
QDIR="${1:?queue dir}"
MAX_JOBS="${2:-2}"
OLLAMA_URL="${OLLAMA_URL:-http://127.0.0.1:11434}"
export OLLAMA_NUM_PARALLEL="${OLLAMA_NUM_PARALLEL:-2}"
run_one() {
local f="$1" n=0 max=5
until curl -fsS --max-time 600 "$OLLAMA_URL/api/generate" \
-H "Content-Type: application/json" \
-d @"$f" -o "${f%.json}.out.json"; do
n=$((n+1)); [[ "$n" -ge "$max" ]] && { mv "$f" "$QDIR/failed/"; return 1; }
sleep $((2**n + RANDOM % 3))
done
mv "$f" "$QDIR/done/"
}
export -f run_one
find "$QDIR/pending" -name '*.json' -print0 | xargs -0 -P"$MAX_JOBS" -I{} bash -c 'run_one "{}"'
限额:launchd 或包装脚本封顶活动内存与句柄;环境变量限并行与上下文;输出放独立卷,系统盘留百分之十五余量。
可复现落地步骤(不少于五步)
- SSH 上机,网关与模型服务自检通过。
- 模型绑回环或内网,网关只转发允许路径。
- 设并行封顶,单条样本压测再定批量。
- 建队列目录,串行正确后再有限并行。
- 退避加重试上限,失败进死信;日志与产物勿塞系统盘。
可引用信息(不少于三条)
- 并行:十六吉字节机型常一至二路起测,按分位数阶梯加。
- 退避:二幂次秒加抖动,抑高峰同相位。
- 磁盘:输出与系统分区分离,写高峰前留百分之二十缓冲。
- 观测:网关延迟、常驻集、交换任一抬升先减并发。
常见问题(FAQ)
- 批推理一定要过网关吗?
- 不强制;本机脚本可回环。要与 Agent 或审计串联时网关更省事。
- 并发设多少稳?
- 看内存与模型体积,从低起测,忌一步拉满。
- 降级指什么?
- 缩上下文、换小模型或拆短片段,优于无限重试。