401.tool_result 요약이 비어 감사가 어렵다.| 관측 신호 | 의미 | 다음 조치 |
|---|---|---|
model_auth_probe FAIL | 자격·엔드포인트 불일치 | 키 회전·base URL·호스트명 재확인 |
permission_denied on tool | 정책 또는 샌드박스 차단 | 도구 ACL·macOS 권한·같은 UID 재현 |
rate_limit + retry_after | 출구 대역·쿼터 포화 | 동시 빌드 상한·백오프·모델 라우팅 분산 |
사전 조건
Node 22 LTS·openclaw onboard --install-daemon 고정. doctor 스냅샷·키 chmod 600·보안 가이드. TLS CN/SAN=라우트 호스트, JSON 로그 디스크, CI 전 egress 허용.
단계별 게이트웨이 점검(순서 고정)
윗줄이 통과할 때만 다음으로 넘어갑니다.
1) Model Auth와 런타임 — 대시보드 카드의 업스트림별 스코프·만료와 라우팅 표의 별칭·/v1/chat/completions·임베딩 URL이 동일한지 확인합니다.
2) 로그 grep(시간 범위 제한)
model_auth_probe·invalid_api_key·insufficient_quota— 자격·쿼터tool_invocation·tool_result·permission_denied— 도구·정책rate_limit·retry_after·upstream_timeout— 출구 포화
각 오류 줄을 request_id로 묶어 CI 타임스탬프와 나란히 둡니다.
3) 헬스 한 방 — /health 또는 openclaw gateway status --json에 더해 고정된 경량 모델 한 번 호출을 같은 쉘에서 AND로 묶습니다. 여러 launchd 잡 대신 하나로 합치면 LaunchAgent 헬스와 지표가 일치합니다.
4) 도구 로그 깊이 — 인자·결과는 한 줄 요약(tool_name·ms·종료 클래스)만 남기고 본문은 마스킹합니다.
5) 동일 UID 재현 — 실패 도구를 게이트웨이와 같은 사용자·plist 환경에서 SSH로 다시 실행해 키체인·HOME 차이를 없앱니다.
원격 Mac CI 연동 예시(빌드 요약 회전)
JSON POST로 PR·파이프라인에 근거. Harbor·ADO와 2·4·8초. 토큰 치환:
{
"source": "openclaw-gateway",
"pipeline_id": "<CI_PIPELINE_ID>",
"commit": "<GIT_SHA_SHORT>",
"gateway_host": "<GATEWAY_PUBLIC_HOSTNAME>",
"model_auth_snapshot": "<OK|DEGRADED|FAIL>",
"last_tool_error_excerpt": "<LAST_20_LOG_LINES_REDACTED>",
"request_id": "<CORRELATION_REQUEST_ID>",
"ts_unix": "<UNIX_TIMESTAMP>"
}
curl --max-time 짧게. 환경 이슈·복구·재시도.
자주 묻는 오류 FAQ
Q. 카드 초록·채팅 401?
A. 프로브≠런타임 URL. invalid_api_key grep·doctor.
Q. 로깅 강화 후 요약 소실?
A. 마스킹 과다—스테이징 조정·request_id로 상세.
Q. 헬스만 OK?
A. 출구·launchd vs 쉘 UID·키체인—동일 사용자 재현.
요약
Model Auth·도구 로그 grep·병합 헬스·CI 요약 웹훅을 한 루프로 두면 원격 Mac 게이트웨이 장애가 스스로 반복 재현됩니다. 전용 노드가 필요하면 요금제·구매로 사양을 맞추세요.
원격 Mac에서 OpenClaw 게이트웨이 운영
관측·Model Auth·빌드 풀—홈·요금·구매·블로그는 계정 없이 열립니다.