이 페이지에서: 문제 · 매트릭스 · 절차 · 수치 · 트러블슈팅 · FAQ
애플 실리콘 원격 노드에서 노트북은 SSH로 루프백만 밟고 추론·도구는 맥에 둡니다. Instructor 스키마·CrewAI 예산·재시도·샌드박스 글과 맞추면 scratch/ 밖으로 새는 경로와 토큰 유출 면적을 줄입니다.
이 배선이 없애는 리스크
첫째 숨은 도구 노출. 둘째 스키마 드리프트로 늦게 터지는 인수. 셋째 병렬 재시도가 통합 메모리와 게이트웨이를 잠식. 먼저 거절하고 상한을 걸어야 비용과 안정을 같이 잡습니다.
운영자는 동일 트리를 tarball로 묶어 다른 렌탈 노드에 풀면 같은 해시의 스키마와 동일한 큐 값이 복제됩니다. 로컬에서만 통과한 설정은 배포 금지라고 적어두면 재현성이 문서가 됩니다.
소유권 매트릭스
| 층 | 책임 | 노브 |
|---|---|---|
| Semantic Kernel | 플래너·로컬 플러그인 코드. | 등록·프롬프트·훅. |
| OpenClaw | 인증·라우팅·감사 로그. | 허용 목록·베어러 파일. |
| 동시 예산 | 비행 수·큐 대기 상한. | 최대값·밀리초 타임아웃. |
| 서킷 | 연속 실패 시 개방. | 임계 횟수·쿨다운 초. |
| 실패 봉투 | 구조화된 사유 코드. | 상관·단계·코드·힌트. |
게이트웨이를 신뢰 경계로 두고 커널 필터는 보조입니다. 저장소 밖 호출은 게이트웨이가 막아야 조직 통제가 성립합니다.
재현 절차
1) ~/llmmac-sk-sandbox/<프로젝트>에 읽기 전용 src/·쓰기 scratch/·토큰 육백영을 두고 SK_PLUGIN_ROOT는 scratch/만 가리킵니다.
2) OpenClaw를 127.0.0.1:${PORT}에 올리고 openclaw doctor --json 확인 후 노트북은 ssh -N -L 18080:127.0.0.1:${PORT} user@remote-mac로만 붙입니다.
3) 커널 채팅 베이스 URL을 터널의 /v1로 두고 운영에서는 검증된 어셈블리만 로드합니다.
4) git에 허용 함수명을 고정하고 스키마를 게이트웨이와 KernelPluginCollection에 거울로 둡니다.
5) 비행 둘~셋·큐 오초·스키마 실패 삼회 후 육십초 쿨다운으로 서킷을 열고 클라 타임아웃은 게이트웨이보다 약간 길게 둡니다.
6) 오류는 correlation_id·stage·code·한 줄 hint만 주고 비밀·원시 완성은 제거합니다.
# 예시(시크릿은 git 밖)
export OPENCLAW_LOOPBACK="http://127.0.0.1:${PORT}/v1"
export SK_SANDBOX_ROOT="${HOME}/llmmac-sk-sandbox/myproject/scratch"
export SK_TOOL_ALLOWLIST="search_kb,run_sql,notify_slack"
export SK_MAX_INFLIGHT_TOOLS=3
export SK_GATEWAY_QUEUE_MS=5000가드레일
- 튜닝 전 비행 세 개 기본.
- 큐 대기 오초 전후 시작.
- 스키마 연속 실패 후 육십초 쿨다운.
- 로그는 주간 로테이션으로 이백메가바이트 부근에서 압축.
트러블슈팅
미허용 호출: 사백번대 거절부터 확인하고 컬렉션·호스트 재시작·플래너 캐시를 비웁니다.
로컬 통과·게이트 실패: 스키마 해시 diff로 선택 필드부터 봅니다.
서킷 남발: 동시성↓·큐↑·검색 플러그인 분리.
FAQ
정책 위치? 커널은 경험·게이트웨이는 통제. Instructor 글과 계약을 맞추세요.
터널? ControlMaster·삼십초 킵얼리브.
첫 동시성? 입출력 위주는 둘에서 셋·가중 모델과 겹치면 하나에서 시작하고 십 분 소크로 구간 구십오 지연을 확인합니다.