Mac Studio M4 Max + Ollama + qwen3.6-35b OpenClaw 최적화 설정 공유
로컬 LLM 돌리면서 OpenClaw 설정 삽질 꽤 했는데, 256K 컨텍스트 기준으로 어느 정도 안정적인 값 찾은 것 같아서 공유함.
Ollama로 qwen3.6-35b 모델 돌리는 환경 기준이고, 다른 모델이나 컨텍스트 크기 쓰는 분들은 참고만 해서 조정하면 될 듯.
🖥️ 사용 환경
| 항목 | 사양 / 값 |
|---|---|
| 기기 | Mac Studio M4 Max |
| CPU | 16코어 |
| GPU | 40코어 |
| RAM | 128GB (통합 메모리) |
| SSD | 2TB |
| LLM 프레임워크 | Ollama |
| 클라이언트 | OpenClaw |
| 모델 | qwen3.6-35b (MLX 양자화) |
⚙️ OpenClaw 최적화 설정값 (256K 컨텍스트 기준)
{
"contextTokens": 262144,
"keepRecentTokens": 12000,
"reserveTokens": 48000,
"reserveTokensFloor": 24000,
"compaction": {
"mode": "safeguard"
},
"memoryFlush": {
"enabled": false,
"softThresholdTokens": 6000
},
"contextPruning": {
"mode": "cache-ttl",
"ttl": "10m",
"keepLastAssistants": 4
},
"timeoutSeconds": 600,
"workspace": "/Users/[username]/.openclaw/workspace"
}
📋 파라미터 설명
| 파라미터 | 값 | 설명 |
|---|---|---|
| contextTokens | 262144 | 모델 최대 컨텍스트(256K) 풀 활용. 이 값이 핵심임 |
| reserveTokens | 48000 | 응답 생성용 여유 토큰 (전체의 약 18%). 너무 크면 실제 컨텍스트가 줄어들고, 너무 작으면 응답 중간에 끊김 |
| keepRecentTokens | 12000 | 최근 대화 최소 보존량. 너무 작으면 압축 시 맥락이 끊겨서 대화가 이상해짐 |
| reserveTokensFloor | 24000 | 압축 후 최소 보장 토큰 (안전 하한선). reserveTokens의 50%로 잡는 게 무난함 |
| compaction.mode | "safeguard" | 컨텍스트 한계 초과 전에 자동으로 압축 처리. aggressive보다 안전함 |
| memoryFlush.enabled | false | 256K에서는 메모리 플러시 굳이 쓸 필요 없음. 활성화하면 오히려 불필요한 오버헤드 생김. 사용은 true, 비사용은 false |
| memoryFlush.softThresholdTokens | 6000 | 혹시 memoryFlush 활성화할 때 기준값. 비활성화 상태라 실질적으로는 미사용 |
| contextPruning.mode | "cache-ttl" | TTL 기반 캐시 정리 방식. 시간 기준으로 오래된 캐시부터 정리함 |
| contextPruning.ttl | "10m" | 10분 단위 TTL. 단위("m") 반드시 명시해야 함 — 숫자만 쓰면 초 단위로 인식될 수 있음 |
| contextPruning.keepLastAssistants | 4 | 정리 후에도 최근 어시스턴트 응답 4개는 무조건 보존. 대화 흐름 유지에 중요함 |
| timeoutSeconds | 600 | 응답 대기 최대 10분. 35B 급 모델은 긴 응답 시 시간이 걸리니까 넉넉하게 잡음 |
⚠️ 주의사항 & 팁
workspace 경로 수정 필수
"workspace": "/Users/[username]/.openclaw/workspace" 이 부분은 본인 macOS 사용자명([username] 부분)에 맞게 바꿔야 함. 그대로 쓰면 경로 오류 남.
모델/컨텍스트 크기가 다르면 값 조정 필요
- contextTokens는 실제 모델 최대값과 맞춰야 함 (8K, 32K, 128K 모델은 각각 다르게 설정)
- reserveTokens는 contextTokens의 15~20% 수준이 일반적으로 안정적
- keepRecentTokens를 너무 낮게 잡으면 압축 직후 모델이 앞 내용을 까먹는 현상 발생함
Ollama + OpenClaw 조합 관련
- Ollama가 백엔드로 돌아가는 상태에서 OpenClaw 연결 시 이 설정 파일 적용하면 됨
- qwen3.6-35b 모델 기준으로 M4 Max 128GB에서 256K 컨텍스트 풀로 써도 메모리 여유 있음
- timeoutSeconds 600 안 주면 긴 코드 생성 요청 시 중간에 끊기는 경우 있음 — 꼭 설정할 것
contextPruning.ttl 단위 주의
"ttl": "10m" 처럼 반드시 단위 포함해서 문자열로 써야 함. "ttl": 10 이렇게 숫자만 쓰면 초 단위(10초)로 인식돼서 캐시가 너무 자주 정리됨.
환경마다 최적값이 다를 수 있으니 참고용으로 쓰고, 본인 환경에 맞게 조금씩 조정해보는 게 좋음. 궁금한 점 있으면 댓글로.