From ead910101020d13a2069ad2add3be5bed6803db3 Mon Sep 17 00:00:00 2001 From: kaffa Date: Tue, 9 Jun 2026 19:09:06 +0900 Subject: [PATCH] =?UTF-8?q?infra:=20hermes=20=EB=B3=B4=EC=A1=B0=20?= =?UTF-8?q?=EC=9E=AC=EB=B6=84=EB=A5=98=20-=20=EB=8B=A8=EC=88=9C(ollama)=20?= =?UTF-8?q?vs=20=EC=B6=94=EB=A1=A0=C2=B7=ED=8C=90=EB=8B=A8(codex).=20?= =?UTF-8?q?=EC=9B=90=EC=B9=99=20=EB=AA=85=ED=99=95=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/compute/hermes.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/infra/compute/hermes.md b/infra/compute/hermes.md index 9f5c905..8cd4585 100644 --- a/infra/compute/hermes.md +++ b/infra/compute/hermes.md @@ -41,20 +41,23 @@ monthly_cost_usd: 0 ### 모델 분리 (메인 vs 보조) -| 용도 | 모델 | 비고 | -|---|---|---| -| 메인 추론 | `openai-codex/gpt-5.4` (ChatGPT Plus OAuth) | 복잡한 대화·도구 호출. 구독 정액제 | -| 보조 text (auxiliary 10종) | kr1 [[ollama]] `qwen3:4b-instruct-2507-q4_K_M` | **실제 호출 검증됨** (2026-06-09) | -| 보조 vision | `provider: main` (Codex) | qwen3는 텍스트 전용이라 vision은 메인 재사용 | +원칙: **추론·판단이 필요하면 Codex, 단순 작업만 ollama.** -보조를 로컬 ollama로 분리한 이유: ① Plus 한도를 보조 작업이 잠식 안 함 ② 데이터 주권(보조는 내부 LAN) ③ 비용 0. +| 용도 | task | 모델 | +|---|---|---| +| 메인 추론 | (대화) | `openai-codex/gpt-5.4` (ChatGPT Plus OAuth, 구독 정액제) | +| **보조 — 단순** (제목·압축·웹추출, 자주 발동) | `title_generation, compression, web_extract` | kr1 [[ollama]] `qwen3:4b-instruct-2507-q4_K_M` (**실호출 검증 2026-06-09**) | +| **보조 — 추론·판단** (분류·분해·승인·큐레이션) | `triage_specifier, kanban_decomposer, approval, profile_describer, curator, skills_hub, mcp` | `provider: main` (Codex) | +| 보조 — vision | `vision` | `provider: main` (Codex) | + +ollama로 보낸 건 **자주 발동하면서 품질 민감도가 낮은 단순 작업뿐** — Plus 한도 보존 + 주권 + 비용 0. 판단이 필요한 보조는 작은 4B 모델 품질로는 부족하므로 메인 Codex 재사용. **설정 (config.yaml `auxiliary:`):** -- 명명된 custom provider 사용: `custom_providers: [{name: ollama, base_url: http://192.168.9.214:11434/v1}]` -- text task 10종(`title_generation, compression, web_extract, skills_hub, approval, mcp, triage_specifier, kanban_decomposer, profile_describer, curator`) → `provider: ollama` + `model: qwen3:4b-...` -- `vision` → `provider: main` -- ⚠️ **전역 default가 없음 — task를 하나라도 빠뜨리면 그 task가 `auto`로 발동해 nous/openrouter 폴백을 시도하며 경고 폭주**. 발동 task를 전수 지정해야 경고 0. task 목록은 `awk`로 config의 `auxiliary:` 섹션에서 추출하거나 `hermes model` → "Configure auxiliary models" UI 사용. -- ⚠️ 메인 Codex는 Hermes auxiliary 폴백 체인에서 의도적 제외(OpenAI 비공개 allow-list)라, codex로 보조를 쓰려면 `provider: main` 명시 필요. +- 명명된 custom provider: `custom_providers: [{name: ollama, base_url: http://192.168.9.214:11434/v1}]` +- 단순 3종 → `provider: ollama` + `model: qwen3:4b-...` +- 추론 7종 + vision → `provider: main` (메인 Codex 재사용, 폴백 안 탐) +- ⚠️ **전역 default가 없음 — task를 하나라도 빠뜨리면 `auto`로 발동해 nous/openrouter 폴백 시도하며 경고 폭주**. 발동 task 전수 지정 필수. 목록은 `awk`로 config `auxiliary:` 섹션에서 추출하거나 `hermes model` → "Configure auxiliary models" UI. +- ⚠️ 메인 Codex는 auxiliary 폴백 체인에서 의도적 제외(OpenAI 비공개 allow-list)라, codex로 보조를 쓰려면 `provider: main` 명시 필요(`auto`로는 codex 안 감). **검증 방법:** 컨테이너 트래픽은 **hp2 호스트 IP `192.168.9.134`로 NAT**되어 나간다(컨테이너 IP `10.100.2.77`/`.235` 아님). 따라서 kr1 ollama 로그(`ssh kaffa@192.168.9.214 "sudo journalctl -u ollama"`)에서 `192.168.9.134 | POST /v1/chat/completions`가 보이면 병행 작동. 2026-06-09 새 대화 시 4.79s qwen3 추론 확인.