onboard / doctor 与守护进程把 PATH、代理与证书对齐后,再封装一段「探测 → 切换 GOPROXY → 重试 go mod download」脚本,并把日志落到可被流水线上传的路径。参数细节与链式回源可对照 Go Modules GOPROXY 决策矩阵;网关与 LaunchAgent 自检见 健康守护 HowTo。
① 安装与自检清单(onboard / doctor / 守护进程)
先排除「CLI 正常、CI 不正常」的三角不一致:交互 shell、launchd 下的守护进程、Runner 任务环境各跑一遍版本与诊断。
远程 Mac 上 go mod download 常见报错包括:代理返回 403/404(镜像未收录或路径被拦)、i/o timeout(跨境链路抖动)、GOSUMDB 校验失败(替换或内网策略不一致)、以及企业 MITM 证书未注入 SSL_CERT_FILE。先把失败归类,再决定是换链、改私有模式还是修证书。
- onboard:按官方引导完成本机绑定与目录约定,记录网关监听地址与 Token 策略。
- doctor:修复 Node 路径、证书与代理变量;若 doctor 报 HTTPS 相关错误,先修再谈 Go 拉模块。
- 守护进程:核对 plist 的
EnvironmentVariables是否包含HTTPS_PROXY、NO_PROXY、NODE_EXTRA_CA_CERTS;与 CI Job 使用的 env 文件对齐。 - 排错:
launchctl print看退出码;log show按进程名过滤;重复 Label 或旧二进制路径是常见坑。
② GOPROXY 切换与健康探测脚本模板
思路:对主链做短超时探测(如三次、每次 5s),失败则 export GOPROXY 为备用逗号链,再执行下载;全程不要把令牌写进仓库。
将 GOPROXY_PROBE_URL 换成与你主链一致的可达端点;私有模块继续依赖 GOPRIVATE,与矩阵文一致。
③ 手动改环境变量 vs 自动化触发
| 方式 | 适用 | 风险 |
|---|---|---|
| 手动 export | 临时排障、单步复现 | 易忘回滚、多 Job 状态串味 |
| 流水线脚本切换 | 无人值守、可审计日志 | 探针误杀需调超时与 URL |
建议:日常 CI 一律走脚本;仅在首次接入节点时用手动方式验证链路与证书。
④ CI 日志回传最小步骤
目标是把 go mod 失败时的环境快照与脚本输出交给平台侧,无需登录网页控制台也能复盘。
- 在 Job 开头定义统一目录(如
CI_ARTIFACT_DIR),脚本只写该目录。 - 用
tee或重定向保留完整标准输出。 - 流水线末步上传该目录为构建产物;失败 Job 同样上传,便于对照最后一次
GOPROXY。
⑤ 常见问题(FAQ)
openclaw doctor 通过但 go mod download 仍超时?
Doctor 校验网关与本地依赖,Go 模块走 GOPROXY 与 sumdb。请在同一 Job 打印 go env 相关项,并对代理主机单独 curl;多为链首未同步或跨境 TLS 问题,可切换逗号链或缩短并发。
脚本里该用 go env -w 还是 export?
CI 与多任务隔离优先 export,避免污染用户全局;单人长期节点再考虑持久化写入。
健康探测应探什么 URL?
使用与真实 GOPROXY 主机一致、可达且无需敏感参数的端点,超时 3–8 秒;日志勿打印带凭据的地址。
总结:OpenClaw 侧用 onboard/doctor/守护进程把网络栈对齐,Go 侧用「探测 + 切换 + 三次指数退避」包住 go mod download,再用固定目录与 tee 完成日志回传,即可在远程 Mac 上最小复现稳定拉模块。更多排障可参考 OpenClaw 安装与排错指南。需要 Apple Silicon 同构节点可免登录查看 首页、帮助中心、购买页;专题汇总见 技术博客。