OpenClaw Plan→Work→Review workflow engine with model routing
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
OpenClaw 용 멀티프로바이더/멀티계정 에이전트 하네스 스킬
Z.ai 코딩플랜(Lite/Pro/Max) + ChatGPT Codex OAuth + OpenRouter (200+ 모델) 다중 계정을 하나의 스킬로 라우팅하고, OMX 스타일 composable verbs (/ohmyclaw exec, /ohmyclaw team, /ohmyclaw ralph, /ohmyclaw plan, /ohmyclaw review, /ohmyclaw debug, /ohmyclaw)로 작업을 실행합니다.
bash <(curl -sL https://raw.githubusercontent.com/jkf87/ohmyclaw/main/install.sh)
git clone https://github.com/jkf87/ohmyclaw.git
ln -sfn "$(pwd)/ohmyclaw/skills/ohmyclaw" ~/.openclaw/skills/ohmyclaw
아무 채널(Telegram/Discord/Web)에서 이 프롬프트를 복붙하세요:
ohmyclaw 스킬을 설치해줘. https://github.com/jkf87/ohmyclaw 클론하고 skills/ohmyclaw 디렉토리를 ~/.openclaw/skills/ohmyclaw 에 심볼릭 링크 걸어줘. 끝나면 /ohmyclaw 실행해서 HUD 보여줘.
/ohmyclaw
| 명령어 | 자연어 | 역할 | |||||
|---|---|---|---|---|---|---|---|
/ohmyclaw |
"대시보드" "상태 보여줘" | 플랜/계정/quota/모델 대시보드 | |||||
/ohmyclaw compact |
"상태 한 줄" | `🦞 PRO \ | zai:1 \ | codex:off \ | 0%` | ||
/ohmyclaw route <task> |
"이거 어떤 모델?" | 라우팅 결정 JSON | |||||
/ohmyclaw pool |
"계정 상태" | 풀 + cooldown 표 | |||||
/ohmyclaw doctor |
"점검해줘" | 10항목 점검 | |||||
/ohmyclaw exec <task> |
"이거 해줘" | 자율 실행 (executor.md) | |||||
/ohmyclaw interview [topic] |
"요구사항 정리해줘" | Socratic 4차원 버튼 인터뷰 (우로보로스) | |||||
/ohmyclaw menu |
"명령어 보여줘" | 슬래시 명령 팔레트(버튼) | |||||
/ohmyclaw plan <task> |
"계획 세워줘" | 계획 수립 (planner.md) | |||||
/ohmyclaw plan --consensus |
"합의해서 계획" | planner→architect→critic 합의 | |||||
/ohmyclaw review |
"리뷰 좀" | 5관점 리뷰 + 갭 감지 | |||||
/ohmyclaw team N <task> |
"3명이서 해" | 병렬 워커 | |||||
/ohmyclaw ralph <task> |
"끝까지 해" | 끝까지 루프 (executor+verifier) | |||||
/ohmyclaw debug <task> |
"버그 잡아" | 4단계 RCA |
ohmyclaw 는 텔레그램 슬래시 명령어를 선택지 버튼으로 노출합니다. 모든 버튼은 실제 openclaw message send --presentation (MessagePresentation) API 로 발화합니다.
cli.sh commands menu --to $CHAT_ID # 슬래시 명령 팔레트를 버튼으로 (클릭=네이티브 슬래시 실행)
cli.sh commands register # Telegram setMyCommands 등록 페이로드(+@BotFather 형식)
cli.sh commands dispatch --to $CHAT_ID "/omc_interview 결제 모듈" # 인바운드 /명령 → verb 라우팅
cli.sh interview "결제 모듈 리팩토링" --to $CHAT_ID # 4차원 Socratic 버튼 인터뷰
Socratic 인터뷰 — Q00/ouroboros 의 "질문은 모호성 ≤ 0.2 까지" 원칙을 ohmyclaw 4차원 명확성(goal/constraint/success/context)에 이식. 각 질문이 인라인 버튼으로 나오고(1/2/3 + ✏️ Other), 응답을 누적해 모호성 점수를 재계산하며 충분히 명확해지면 자동 종료합니다. 결과는 interview-result state 에 저장되어 후속 exec/plan 이 참조합니다.
omc네임스페이스(/omcinterview등)로/hud같은 타 봇 명령과 충돌을 방지하고,/interview·/ohmyclaw interviewalias 와@botname/2토큰도 인식합니다.
🦞 ohmyclaw HUD 2026-04-11 22:53
─────────────────────────────────────────
Plan PRO ($15/월) Workers: 4
Tokens 0K / 8M ██░░░░░░░░░░░░░░░░░░░░ 0%
Requests 0 / 3000 ██░░░░░░░░░░░░░░░░░░░░ 0%
─────────────────────────────────────────
Accounts
zai ● zai-primary oauth_zai plan=pro
○ zai-secondary api_key plan=lite
codex (disabled)
openrouter (disabled) ← NEW
─────────────────────────────────────────
Models glm-5-turbo, glm-5, glm-5.1, +OpenRouter 200+
| 모델 | SWE-Bench Pro (코딩) | GPQA Diamond (추론) | AIME 2025/26 (수학) | 확장사고 | 플랜 | ||
|---|---|---|---|---|---|---|---|
| GLM-5 Turbo | — | — | — | — | Lite / Pro / Max | ||
| GLM-5 | — | 86.0 | 84.0 | — | Lite / Pro / Max | ||
| GLM-5.1 | 58.4 (1위) | 86.2 | 95.3 | ⚡ 지원 | Pro / Max | ||
| GLM-5.2 🆕 | TBD (차세대) | TBD | TBD | ⚡ 지원 | Pro / Max | ||
| GPT-5.4 | 57.7 | 92.8 | 100 | ⚡ 지원 | ChatGPT 구독 (OAuth) | ||
| OpenRouter | 다양 | 다양 | 다양 | 모델별 | API 키 (무료+유료) |
⚡ 확장 사고(extended thinking): 복잡한 추론이 필요한 태스크에서 더 깊이 생각하는 모드.
>
🆕 OpenRouter 경유로 Claude Opus 4, DeepSeek R1, Gemini 2.5 Pro, Qwen3 235B 등 200+ 모델에 단일 API 키로 접근 가능. 무료 모델(Llama 3.3 70B, Qwen 2.5 72B 등)도 지원.
>
GLM-5.1 은 SWE-Bench Pro 코딩 벤치마크 세계 1위 (GPT-5.4, Claude Opus 4.6 을 앞섬). GPT-5.4 는 GPQA Diamond 추론 + AIME 수학에서 최고점. 한국어 전용 벤치마크는 현재 공식 발표 없음.
>
🆕 GLM-5.2 는 차세대 GLM 플래그십으로, Pro/Max 의 HIGH 복잡도 coding/reasoning 새 1순위이자 fallback 체인 최상위 glm 입니다 (
select-model.shP81 + matrix HIGH). 공식 벤치마크 발표 전까지 하드 스펙(context/maxTokens)은 GLM-5.1 을 미러링하며, 라우팅 점수만 후속 우위를 반영합니다. Lite 플랜은 미지원(자동 강등).
>
출처: MarkTechPost · Artificial Analysis · BenchLM
| 플랜 | 가격 | 모델 | 일일 토큰 | 동시 워커 | ||
|---|---|---|---|---|---|---|
| Lite | $3/월 | GLM-5 Turbo, GLM-5 | 1.5M | 2 | ||
| Pro | $15/월 | + GLM-5.1 | 8M | 4 | ||
| Max | $30/월 | 풀 모델 + 우선 슬롯 | 25M | 7 |
가입: https://z.ai/subscribe?ic=OTYO9JPFNV
export ZAI_CODING_PLAN=pro # lite | pro | max
export CODEX_OAUTH_ENABLED=true # ChatGPT 구독 보유 시
export OPENROUTER_ENABLED=true # OpenRouter 경유 외부 모델 사용
export OPENROUTER_API_KEY=sk-or-... # openrouter.ai 에서 발급
export OPENROUTER_PREFER_FREE=true # 무료 모델 우선 (선택)
OpenRouter 를 경유로 200+ 외부 모델에 단일 API 키로 접근합니다. Z.ai / Codex 와 독립적으로 작동하며, codex 활성 시 codex 가 우선됩니다.
| 모델 | 용도 | 비용 | 특징 | ||
|---|---|---|---|---|---|
| Claude Opus 4 | 코딩/보안 HIGH | 유료 | 확장사고, 코딩 95점 | ||
| DeepSeek R1 | 추론/수학 HIGH | 유료 | 추론 96점, 수학 최강 | ||
| Gemini 2.5 Pro | 데이터 분석 HIGH | 유료 | 1M 컨텍스트, 멀티모달 | ||
| Qwen3 235B | 한국어 NLP | 유료 | 한국어 90점, 비용 효율 | ||
| Qwen 2.5 72B | 한국어 일반 | 무료 | 한국어 85점, 무료 최강 | ||
| Llama 3.3 70B | 범용 | 무료 | 131K 컨텍스트 | ||
| Gemma 3 27B | 경량 작업 | 무료 | Google Gemma 3 | ||
| Mistral 7B | 초경량 | 무료 | 단순 작업용 |
# 1. API 키 발급: https://openrouter.ai/keys
export OPENROUTER_API_KEY="sk-or-..."
# 2. routing.json 에서 openrouter 풀 활성화:
# accounts.pools.openrouter.accounts[0].enabled = true
# 3. 환경변수 설정
export OPENROUTER_ENABLED=true
# (선택) 무료 모델 우선 배정
export OPENROUTER_PREFER_FREE=true
codex + openrouter 동시 활성 시 codex 가 우선입니다. HIGH 복잡도 작업은 무료 모델을 건너뛰고 유료 모델로 위임합니다.
실험적 기능 — 기본 비활성 — 언제든 제거 가능
>
공식 Claude Code CLI delegation 만 사용합니다. 직접 OAuth 토큰 주입 없음.
Anthropic 의 CLI delegation 정책이 변경되면 이 경로는 차단되거나 제거될 수 있습니다.
활성화 시 reasoning, coding_arch, security 카테고리의 HIGH 복잡도 작업만 Claude Code CLI 로 위임합니다.
# 1. claude CLI 설치 및 로그인
claude login
# 2. 환경변수 설정
export CLAUDECLI_DELEGATION_ENABLED=true
# 3. routing.json 에서 풀 활성화:
# accounts.pools.claudecli.accounts[0].enabled = true
Codex 의 CODEXHOME 과 동일하게 Claude CLI 도 CLAUDECONFIGDIR 공식 환경변수로 계정별 디렉토리 분리를 지원합니다 (anthropics/claude-code "Respect CLAUDECONFIG_DIR everywhere"). macOS 에서도 keychain 대신 해당 디렉토리의 .credentials.json 을 우선 사용합니다.
# 1. 계정별 디렉토리에서 OAuth 로그인 (브라우저 흐름)
claude login # 기본 (~/.claude)
CLAUDE_CONFIG_DIR=~/.claude-acct2 claude login # 2번째
CLAUDE_CONFIG_DIR=~/.claude-acct3 claude login # 3번째
mkdir -p ~/.claude-acct3 # 디렉토리 없다는 오류 시
# 2. routing.json 의 claudecli 풀에 계정 enabled=true (기본 3개 슬롯 제공)
# skills/ohmyclaw/routing.json#accounts.pools.claudecli.accounts
# { "id": "claudecli-secondary",..., "claudeHome": "~/.claude-acct2", "enabled": true }
# { "id": "claudecli-tertiary",..., "claudeHome": "~/.claude-acct3", "enabled": true }
# 3. 게이트 활성
export CLAUDECLI_DELEGATION_ENABLED=true
# 4. 풀 상태 확인
skills/ohmyclaw/pool.sh status claudecli
SKILL=skills/ohmyclaw
# (A) 명시 디렉토리
$SKILL/claude-delegate.sh "리뷰 부탁" --config-dir=~/.claude-acct2 --cwd="$PROJECT"
# (B) 환경변수 상속
CLAUDE_CONFIG_DIR=~/.claude-acct3 $SKILL/claude-delegate.sh "리뷰 부탁" --cwd="$PROJECT"
# (C) 풀 round-robin (실패 시 자동 cooldown 마킹)
$SKILL/claude-delegate.sh "리뷰 부탁" --from-pool --cwd="$PROJECT"
계정 수 제한 없음. Claude Pro/Max 구독 N개 = OAuth 토큰 N개.
pool.sh가 전부 round-robin 으로 순환하며, rate limit hit 시 60초 → 120초 →... 최대 600초 cooldown 으로 자동 우회합니다.
unset CLAUDECLI_DELEGATION_ENABLED
# 또는
export CLAUDECLI_DELEGATION_ENABLED=false
비활성 시 기존 ohmyclaw 라우팅(GLM-5.1 등)으로 자동 폴백됩니다.
증명, 알고리즘, 복잡도, 불변조건 같은 추론 집약 키워드가 감지되면 추론 점수가 가장 높은 모델로 자동 격상합니다:
| 조건 | 선택 모델 | 추론 점수 | ||
|---|---|---|---|---|
| 추론 집약 + ChatGPT 구독 활성 | GPT-5.4 | 97 | ||
| 추론 집약 + Pro/Max 플랜 | GLM-5.1 | 95 | ||
| 추론 집약 + Lite 플랜 | GLM-5 (상한) | 82 |
Z.ai + ChatGPT OAuth 계정을 제한 없이 추가할 수 있습니다. 순환 배분(round-robin)으로 rate limit 을 분산하고, 한 계정이 제한에 걸리면 자동으로 다음 계정으로 전환됩니다 (대기 시간 60초 → 최대 600초 점진 증가). 여러 계정에 동시 발사(fan-out)도 가능합니다.
# 1. 계정별로 별도 디렉토리에 OAuth 로그인
codex login # 기본 (~/.codex)
CODEX_HOME=~/.codex-acct2 codex login # 2번째
CODEX_HOME=~/.codex-acct3 codex login # 3번째
CODEX_HOME=~/.codex-acct4 codex login # 원하는 만큼
# 파일이 없다고 오류나면(예시 3번째)
mkdir -p ~/.codex-acct3 && CODEX_HOME=~/.codex-acct3 codex login
# 2. routing.json 에 계정 추가 (skills/ohmyclaw/routing.json)
# accounts.pools.codex.accounts 배열에 항목 추가:
# { "id": "codex-acct3", "authType": "oauth_codex", "codexHome": "~/.codex-acct3", "weight": 10, "enabled": true }
# 3. 확인
skills/ohmyclaw/pool.sh status codex
계정 수 제한 없음. ChatGPT Plus($20/월) 또는 Pro($200/월) 구독 1개 = OAuth 토큰 1개. 구독 5개면 5계정 풀 가능.
pool.sh가 전부 round-robin 으로 순환합니다.
Z.ai 는 API 키 N개를 풀에 넣어 라운드로빈 분산할 수 있습니다. 설정은 환경변수 등록 + routing.json 편집 두 단계입니다.
💡 단일 계정에서도 효과 있음 — Z.ai 공식 문서(devpack/overview)는 코딩플랜 쿼터가 "subscription 단위"라고만 명시하고 키별 rate limit 독립성은 언급하지 않습니다. 경험적으로 검증한 결과, 같은 Max 구독 내에서 발급한 복수 API 키는 독립적인 rate limit / 동접 카운터를 가집니다. 즉 한 계정의 Max 쿼터 안에서도 키 N개 라운드로빈으로 버스트 동접을 N배로 끌어올릴 수 있습니다 (5시간/주간 총량 캡은 구독 단위 공유라 그대로).
>
요약: 키 N개 라운드로빈 = 처리량(burst/concurrency) ↑, 총 쿼터(prompts per 5h) 는 불변.
1단계 — 환경변수에 키 등록 (~/.zshrc 또는 ~/.bashrc)
export ZAI_API_KEY="zai_primary_..." # 1번 키 (기본)
export ZAI_API_KEY_2="zai_secondary_..." # 2번 키
export ZAI_API_KEY_3="zai_tertiary_..." # 3번 키
export ZAI_API_KEY_4="zai_quaternary_..." # 4번 키
# 필요한 만큼 계속 _5, _6,... 추가
2단계 — skills/ohmyclaw/routing.json 의 accounts.pools.zai.accounts 배열에 항목 추가
"accounts": [
{ "id": "zai-primary", "authType": "oauth_zai", "openclawProfile": "default", "plan": "max", "weight": 10, "enabled": true },
{ "id": "zai-secondary", "authType": "api_key", "envKey": "ZAI_API_KEY_2", "plan": "max", "weight": 10, "enabled": true },
{ "id": "zai-tertiary", "authType": "api_key", "envKey": "ZAI_API_KEY_3", "plan": "max", "weight": 10, "enabled": true },
{ "id": "zai-quaternary", "authType": "api_key", "envKey": "ZAI_API_KEY_4", "plan": "max", "weight": 10, "enabled": true }
]
id: 풀 내 고유 식별자 (자유 명명)envKey: 1단계에서 export 한 환경변수 이름plan: lite / pro / max (코딩플랜 티어, 라우팅 영향)weight: 높을수록 자주 선택됨 (동일 값이면 균등 분산)enabled: true 여야 풀에 포함됨필드 의미:
3단계 — 검증
skills/ohmyclaw/pool.sh status zai # 모든 계정 ready 확인
skills/ohmyclaw/pool.sh next glm-5.1 # 라운드로빈 픽 테스트
<details> <summary><b>💡 LLM (Claude Code 등) 에게 한 번에 시키기</b></summary>
편집이 번거로우면 다음 프롬프트를 그대로 복사해서 AI 에이전트에게 붙여넣으세요. JSON 편집까지 알아서 처리합니다.
내 Z.ai API 키 N개를 ohmyclaw 풀에 라운드로빈으로 추가해줘.
키 목록:
- ZAI_API_KEY_2="여기에-키-붙여넣기"
- ZAI_API_KEY_3="여기에-키-붙여넣기"
- ZAI_API_KEY_4="여기에-키-붙여넣기"
플랜: max (또는
</details>