docs(dev): dev-runtime 3-node 프로파일 문서와 inventory를 갱신한다

mac-mlx-vllm-node를 별도 node에서 mac-codex-node의 provider resource로
통합한 구현 결과를 dev-runtime 기준 문서에 반영한다.
3 connected nodes + 3 provider candidates 기준으로 일치시킨다.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
toki 2026-06-28 23:59:40 +09:00
parent b7801ee0af
commit 3f2b79d953
6 changed files with 70 additions and 80 deletions

View file

@ -13,7 +13,7 @@ dev-runtime provider pool을 제품 검증이 끝난 상태로 배포한다. 배
## 언제 호출할지
- 사용자가 `dev 배포`, `dev-runtime 배포`, `배포해봐`처럼 dev 환경 배포를 요청할 때
- Edge, mac CLI node, GX10 vLLM node, OneXPlayer Lemonade node로 이루어진 dev-runtime provider pool을 갱신할 때
- Edge, mac-codex-node(CLI adapter + mac-mlx-vllm provider resource), GX10 vLLM node, OneXPlayer Lemonade node로 이루어진 dev-runtime provider pool을 갱신할 때
- OpenAI-compatible `/v1/responses` 또는 `/v1/chat/completions` 경로가 provider capacity만큼 채워지는지 검증할 때
- dev 환경의 remote runner, node 접속 정보, provider capacity, model alias 변경을 배포 절차에 반영할 때
@ -62,7 +62,7 @@ dev-runtime provider pool을 제품 검증이 끝난 상태로 배포한다. 배
- dry-run이 `rejected` 또는 예상 밖 `restart_required`를 반환하면 배포를 멈추고 config diff를 보고한다.
6. **배포와 재시작**
- Edge와 mac CLI node는 원격 runner에서 빌드 산출물 기준으로 재시작한다.
- Edge와 mac-codex-node(CLI adapter + mac-mlx-vllm provider vllm-mlx process)는 원격 runner에서 빌드 산출물 기준으로 재시작한다.
- GX10 node는 Linux ARM64 node binary를 배포하고 기존 node process를 재시작한다.
- OneXPlayer node는 현재 host에서 `ssh r0bin@192.168.0.59`로 접속한다. artifact가 remote runner에 있으면 현재 host를 통해 전달한 뒤 Windows host에서 교체한다.
- OneXPlayer에서는 SSH 세션 안의 `Start-Process`로 장기 실행을 시작하지 않는다. `Win32_Process.Create` 또는 동등한 세션 독립 실행 방식으로 `iop-node.exe --config node.yaml serve`를 시작한다.
@ -94,7 +94,7 @@ dev-runtime provider pool을 제품 검증이 끝난 상태로 배포한다. 배
- [ ] 빌드 전 `go test ./...`와 필요한 추가 전체 테스트가 통과했는가
- [ ] dev-runtime Edge/mac/Linux ARM64/Windows AMD64 binary가 같은 source ref에서 rebuild되었는가
- [ ] 빌드 후 config check, refresh help, refresh dry-run, 전체 테스트가 통과했는가
- [ ] Edge, mac CLI node, GX10 vLLM node, OneXPlayer Lemonade node가 재시작되고 3개 node가 connected 상태인가
- [ ] Edge, mac-codex-node, GX10 vLLM node, OneXPlayer Lemonade node가 재시작되고 3개 node(mac-codex, gx10-vllm, onexplayer-lemonade)가 connected 상태인가
- [ ] OneXPlayer 접속과 실행이 `r0bin@192.168.0.59` 및 세션 독립 실행 방식으로 수행되었는가
- [ ] `/v1/responses` capacity smoke에서 총 capacity만큼 `in_flight`가 차고 초과 요청이 queue에 잡혔는가
- [ ] `/v1/chat/completions` capacity smoke에서 총 capacity만큼 `in_flight`가 차고 초과 요청이 queue에 잡혔는가

View file

@ -43,7 +43,7 @@ last_rule_updated_at: 2026-06-24
## dev-runtime provider pool 인벤토리
dev-runtime provider pool과 4-node 연결 상태를 점검할 때는 `agent-test/dev/inventory.yaml`의 machine-readable 값을 우선하고, 원격 runner `ssh toki@toki-labs.com``/Users/toki/agent-work/iop-dev` checkout을 기준으로 한다.
dev-runtime provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/dev/inventory.yaml`의 machine-readable 값을 우선하고, 원격 runner `ssh toki@toki-labs.com``/Users/toki/agent-work/iop-dev` checkout을 기준으로 한다.
- Edge config: `build/dev-runtime/edge.yaml`
- Edge id: `edge-toki-labs-dev`
@ -55,10 +55,17 @@ dev-runtime provider pool과 4-node 연결 상태를 점검할 때는 `agent-tes
노드 후보:
- mac CLI node: `mac-codex-node` / `mac-codex`
- mac CLI + MLX provider node: `mac-codex-node` / `mac-codex`
- SSH/user: `ssh toki@toki-labs.com`
- 목적: `cli` adapter, `codex app-server`
- 목적: `cli` adapter, `codex app-server` + `mac-mlx-vllm` provider resource
- workspace: `/Users/toki/agent-work/iop-workspace/nomadcode`
- MLX vLLM provider: `mac-mlx-vllm`
- provider endpoint: `http://127.0.0.1:8002/v1`
- served model: `mlx-community/Qwen3.6-35B-A3B-4bit`
- capacity baseline: `3`
- workdir: `/Users/toki/agent-work/iop-mlx-vllm`
- runtime baseline: `vllm-mlx`, `--max-num-seqs 3`, `--max-kv-size 262144`, `--max-request-tokens 262144`, `--use-paged-cache --paged-cache-block-size 64 --max-cache-blocks 8192`
- KV policy: per-call window bound `262144`, total paged KV budget `524288` tokens, equivalent to two full context windows
- GX10 vLLM node: `gx10-vllm-node` / `gx10-vllm`
- SSH/user: `ssh toki@192.168.0.91`
- provider endpoint: `http://192.168.0.91:8001/v1`
@ -73,21 +80,12 @@ dev-runtime provider pool과 4-node 연결 상태를 점검할 때는 `agent-tes
- capacity baseline: `3`
- load baseline: backend `vulkan`, ctx size `786432`, `llamacpp_args="--spec-type none -np 3 -cb -fa on -b 4096 -ub 1024"`, `save_options=true`
- workspace: `C:/Users/r0bin/iop-field`
- Mac MLX vLLM node: `mac-mlx-vllm-node` / `mac-mlx-vllm`
- SSH/user: `ssh toki@toki-labs.com`
- provider endpoint: `http://127.0.0.1:8002/v1`
- served model: `mlx-community/Qwen3.6-35B-A3B-4bit`
- capacity baseline: `3`
- workdir: `/Users/toki/agent-work/iop-mlx-vllm`
- runtime baseline: `vllm-mlx`, `--max-num-seqs 3`, `--max-kv-size 262144`, `--max-request-tokens 262144`, `--use-paged-cache --paged-cache-block-size 64 --max-cache-blocks 8192`
- KV policy: per-call window bound `262144`, total paged KV budget `524288` tokens, equivalent to two full context windows
- workspace: `/Users/toki/agent-work/iop-mlx-vllm`
OneXPlayer Lemonade는 `Qwen3.6-35B-A3B-MTP-GGUF` artifact를 사용하되 runtime MTP speculative decoding은 켜지 않는다. dev long-context baseline은 `/v1/load``llamacpp_backend=vulkan`, `ctx_size=786432`, `--spec-type none -np 3 -cb -fa on -b 4096 -ub 1024``save_options=true`로 저장한 상태다. llama.cpp backend의 `/slots`에서 slot 3개가 각각 `n_ctx=262144`로 보여야 한다.
OneXPlayer Lemonade Node는 원격 runner나 Edge host에서 다시 SSH하거나 proxy process로 띄우지 않는다. 현재 작업 호스트에서 OneXPlayer Windows host에 `ssh r0bin@192.168.0.59`로 직접 접속한 뒤 generated PowerShell bootstrap을 실행한다.
Mac MLX vLLM node는 Edge host와 같은 macOS host에서 실행한다. vllm-mlx API는 외부에 직접 노출하지 않고 `127.0.0.1:8002`에 bind하며, Edge OpenAI-compatible adapter가 local bearer header로 호출한다. 운영 파일은 `/Users/toki/agent-work/iop-mlx-vllm/vllm-mlx.pid`, `logs/vllm-mlx.stdout.log`, `logs/vllm-mlx.stderr.log`를 기준으로 한다. Docker와 macOS 여유 메모리를 고려해 capacity는 `3`을 기본선으로 유지한다.
mac-mlx-vllm provider는 mac-codex-node 소속 resource로, Edge host와 같은 macOS host에서 vllm-mlx process로 실행한다. vllm-mlx API는 외부에 직접 노출하지 않고 `127.0.0.1:8002`에 bind하며, Edge OpenAI-compatible adapter가 local bearer header로 호출한다. 운영 파일은 `/Users/toki/agent-work/iop-mlx-vllm/vllm-mlx.pid`, `logs/vllm-mlx.stdout.log`, `logs/vllm-mlx.stderr.log`를 기준으로 한다. Docker와 macOS 여유 메모리를 고려해 capacity는 `3`을 기본선으로 유지한다.
## 명령

View file

@ -1,6 +1,6 @@
test_env: dev
profile: dev-runtime-provider-pool
last_updated_at: "2026-06-24"
last_updated_at: "2026-06-28"
source:
remote_runner:
@ -48,12 +48,49 @@ model:
nodes:
- id: mac-codex-node
alias: mac-codex
role: cli
role: cli+mlx-provider
ssh: toki@toki-labs.com
workspace: /Users/toki/agent-work/iop-workspace/nomadcode
provider_pool_candidate: false
provider_pool_candidate: true
adapters:
- cli
- mac-mlx-vllm
providers:
- id: mac-mlx-vllm
type: vllm-mlx
endpoint: http://127.0.0.1:8002/v1
served_model: mlx-community/Qwen3.6-35B-A3B-4bit
capacity: 3
runtime:
api_key_policy: local_bearer_from_edge_yaml
workdir: /Users/toki/agent-work/iop-mlx-vllm
python: .venv/bin/python
package_baseline:
vllm_mlx: 0.3.0
mlx: 0.31.2
mlx_lm: 0.31.3
model_cache: /Users/toki/agent-work/iop-mlx-vllm/hf-cache
pid_file: /Users/toki/agent-work/iop-mlx-vllm/vllm-mlx.pid
stdout_log: /Users/toki/agent-work/iop-mlx-vllm/logs/vllm-mlx.stdout.log
stderr_log: /Users/toki/agent-work/iop-mlx-vllm/logs/vllm-mlx.stderr.log
max_num_seqs: 3
max_kv_size: 262144
max_request_tokens: 262144
paged_cache_block_size: 64
max_cache_blocks: 8192
total_kv_tokens: 524288
default_chat_template_kwargs:
enable_thinking: false
observed_direct_throughput_2026_06_24:
max_tokens: 192
completion_token_basis: true
concurrency:
1:
total_tok_s: 59.66
2:
total_tok_s: 87.31
3:
total_tok_s: 98.13
- id: gx10-vllm-node
alias: gx10-vllm
role: vllm-provider
@ -66,48 +103,6 @@ nodes:
endpoint: http://192.168.0.91:8001/v1
served_model: nvidia/Qwen3.6-35B-A3B-NVFP4
capacity: 4
- id: mac-mlx-vllm-node
alias: mac-mlx-vllm
role: vllm-mlx-provider
ssh: toki@toki-labs.com
workspace: /Users/toki/agent-work/iop-mlx-vllm
provider_pool_candidate: true
provider:
id: mac-mlx-vllm
type: vllm-mlx
endpoint: http://127.0.0.1:8002/v1
served_model: mlx-community/Qwen3.6-35B-A3B-4bit
capacity: 3
runtime:
api_key_policy: local_bearer_from_edge_yaml
workdir: /Users/toki/agent-work/iop-mlx-vllm
python: .venv/bin/python
package_baseline:
vllm_mlx: 0.3.0
mlx: 0.31.2
mlx_lm: 0.31.3
model_cache: /Users/toki/agent-work/iop-mlx-vllm/hf-cache
pid_file: /Users/toki/agent-work/iop-mlx-vllm/vllm-mlx.pid
stdout_log: /Users/toki/agent-work/iop-mlx-vllm/logs/vllm-mlx.stdout.log
stderr_log: /Users/toki/agent-work/iop-mlx-vllm/logs/vllm-mlx.stderr.log
max_num_seqs: 3
max_kv_size: 262144
max_request_tokens: 262144
paged_cache_block_size: 64
max_cache_blocks: 8192
total_kv_tokens: 524288
default_chat_template_kwargs:
enable_thinking: false
observed_direct_throughput_2026_06_24:
max_tokens: 192
completion_token_basis: true
concurrency:
1:
total_tok_s: 59.66
2:
total_tok_s: 87.31
3:
total_tok_s: 98.13
- id: onexplayer-lemonade-node
alias: onexplayer-lemonade
role: lemonade-provider

View file

@ -42,12 +42,19 @@ last_rule_updated_at: 2026-06-24
## dev-runtime Node 접속 기준
dev-runtime의 실제 4-node 연결을 점검할 때는 원격 runner `ssh toki@toki-labs.com``/Users/toki/agent-work/iop-dev` checkout과 `build/dev-runtime/edge.yaml`을 기준으로 한다. Node는 dev-runtime provider pool 기준에서 Edge-Node TCP `toki-labs.com:18084`로 붙는다.
dev-runtime의 실제 3-node 연결을 점검할 때는 원격 runner `ssh toki@toki-labs.com``/Users/toki/agent-work/iop-dev` checkout과 `build/dev-runtime/edge.yaml`을 기준으로 한다. Node는 dev-runtime provider pool 기준에서 Edge-Node TCP `toki-labs.com:18084`로 붙는다.
- mac CLI node: `mac-codex-node` / `mac-codex`
- mac CLI + MLX provider node: `mac-codex-node` / `mac-codex`
- SSH/user: `ssh toki@toki-labs.com`
- 목적: `cli` adapter, `codex app-server`
- 목적: `cli` adapter, `codex app-server` + `mac-mlx-vllm` provider resource
- workspace: `/Users/toki/agent-work/iop-workspace/nomadcode`
- MLX vLLM provider: `mac-mlx-vllm`
- provider endpoint: `http://127.0.0.1:8002/v1`
- served model: `mlx-community/Qwen3.6-35B-A3B-4bit`
- capacity baseline: `3`
- workdir: `/Users/toki/agent-work/iop-mlx-vllm`
- runtime baseline: `vllm-mlx`, `--max-num-seqs 3`, `--max-kv-size 262144`, `--max-request-tokens 262144`, `--use-paged-cache --paged-cache-block-size 64 --max-cache-blocks 8192`
- KV policy: per-call window bound `262144`, total paged KV budget `524288` tokens, equivalent to two full context windows
- GX10 vLLM node: `gx10-vllm-node` / `gx10-vllm`
- SSH/user: `ssh toki@192.168.0.91`
- provider endpoint: `http://192.168.0.91:8001/v1`
@ -62,21 +69,12 @@ dev-runtime의 실제 4-node 연결을 점검할 때는 원격 runner `ssh toki@
- capacity baseline: `3`
- load baseline: backend `vulkan`, ctx size `786432`, `llamacpp_args="--spec-type none -np 3 -cb -fa on -b 4096 -ub 1024"`, `save_options=true`
- workspace: `C:/Users/r0bin/iop-field`
- Mac MLX vLLM node: `mac-mlx-vllm-node` / `mac-mlx-vllm`
- SSH/user: `ssh toki@toki-labs.com`
- provider endpoint: `http://127.0.0.1:8002/v1`
- served model: `mlx-community/Qwen3.6-35B-A3B-4bit`
- capacity baseline: `3`
- workdir: `/Users/toki/agent-work/iop-mlx-vllm`
- runtime baseline: `vllm-mlx`, `--max-num-seqs 3`, `--max-kv-size 262144`, `--max-request-tokens 262144`, `--use-paged-cache --paged-cache-block-size 64 --max-cache-blocks 8192`
- KV policy: per-call window bound `262144`, total paged KV budget `524288` tokens, equivalent to two full context windows
- workspace: `/Users/toki/agent-work/iop-mlx-vllm`
OneXPlayer Lemonade는 `Qwen3.6-35B-A3B-MTP-GGUF` artifact를 사용하되 runtime MTP speculative decoding은 끈 상태를 dev 기준으로 삼는다. Node 검증 전 `/v1/load``recipe_options`가 Vulkan, `ctx_size=786432`, `--spec-type none -np 3 -cb -fa on -b 4096 -ub 1024`를 포함하는지 확인한다. backend `/slots`에서는 slot 3개가 각각 `n_ctx=262144`로 보여야 한다.
GX10은 Linux/ARM64 bootstrap, OneXPlayer는 Windows native PowerShell bootstrap을 기본으로 한다. OneXPlayer는 현재 작업 호스트에서 직접 접속해 세팅하며, 원격 runner나 Edge host에서 `node-onexplayer-lemonade.yaml`로 proxy 실행하지 않는다.
Mac MLX vLLM node는 Edge host와 같은 macOS host에서 실행한다. vllm-mlx API는 외부에 직접 노출하지 않고 `127.0.0.1:8002`에 bind하며, Edge의 OpenAI-compatible adapter가 local bearer header로 호출한다. 운영 확인은 `/Users/toki/agent-work/iop-mlx-vllm/vllm-mlx.pid`, `logs/vllm-mlx.stdout.log`, `logs/vllm-mlx.stderr.log`, dev-runtime의 `build/dev-runtime/logs/node-mac-mlx-vllm.*.log`를 기준으로 한다. Docker와 macOS 여유 메모리를 고려해 capacity는 `3`을 기본선으로 유지한다.
mac-mlx-vllm provider는 mac-codex-node 소속 resource로, Edge host와 같은 macOS host에서 vllm-mlx process로 실행한다. vllm-mlx API는 외부에 직접 노출하지 않고 `127.0.0.1:8002`에 bind하며, Edge의 OpenAI-compatible adapter가 local bearer header로 호출한다. 운영 확인은 `/Users/toki/agent-work/iop-mlx-vllm/vllm-mlx.pid`, `logs/vllm-mlx.stdout.log`, `logs/vllm-mlx.stderr.log`를 기준으로 한다. Docker와 macOS 여유 메모리를 고려해 capacity는 `3`을 기본선으로 유지한다.
OneXPlayer에서 SSH 세션 안의 `Start-Process``iop-node.exe`를 띄우면 SSH 세션 종료와 함께 process가 정리될 수 있다. dev 반복 배포에서는 `Win32_Process.Create` 또는 동등한 세션 독립 실행 방식으로 `C:/Users/r0bin/iop-field`에서 `iop-node.exe --config node.yaml serve`를 시작하고, WMI/process query와 `iop-node.log``connected to edge` 로그로 유지 여부를 확인한다.

View file

@ -59,7 +59,7 @@ dev-runtime provider pool은 compose Edge-Node TCP `19003`이 아니라 native E
- remote runner: dev runtime evidence, Flutter client, Docker compose, field/bootstrap, 외부 runtime evidence는 `ssh toki@toki-labs.com``/Users/toki/agent-work/iop-dev` 기준으로 수행한다.
- compose dev stack: `.env.dev.example`, `COMPOSE_PROJECT_NAME=iop-dev-agent`, `IOP_COMPOSE_NETWORK=iop-dev-agent-net`, Edge-Node TCP `19003`을 사용한다.
- Edge direct dev profile: artifact/bootstrap `18082`, OpenAI-compatible `18083`, metrics `19101`을 필요할 때만 사용한다.
- dev-runtime provider pool: `/Users/toki/agent-work/iop-dev/build/dev-runtime/edge.yaml`과 Edge-Node TCP `toki-labs.com:18084`를 사용한다. 4-node/provider 세부는 `agent-test/dev/edge-smoke.md``agent-test/dev/node-smoke.md`를 따른다.
- dev-runtime provider pool: `/Users/toki/agent-work/iop-dev/build/dev-runtime/edge.yaml`과 Edge-Node TCP `toki-labs.com:18084`를 사용한다. 3-node/provider 세부는 `agent-test/dev/edge-smoke.md``agent-test/dev/node-smoke.md`를 따른다.
- external provider field: GX10 vLLM은 `ssh toki@192.168.0.91`, OneXPlayer Lemonade는 현재 작업 호스트에서 `ssh r0bin@192.168.0.59`로 직접 접속해 확인한다. OneXPlayer 접속은 원격 runner 경유를 필수 조건으로 보지 않는다.
## 프리플라이트
@ -91,7 +91,7 @@ dev-runtime provider pool은 compose Edge-Node TCP `19003`이 아니라 native E
- node / smoke / node 실행 파이프라인 baseline: `agent-test/dev/node-smoke.md`
- edge / smoke / edge 실행 그룹과 입력 표면 baseline: `agent-test/dev/edge-smoke.md`
- dev-runtime provider pool, 4-node 연결, GX10 vLLM, OneXPlayer Lemonade, Mac MLX vLLM, mac CLI node 점검: `agent-test/dev/edge-smoke.md`, `agent-test/dev/node-smoke.md`
- dev-runtime provider pool, 3-node 연결, GX10 vLLM, OneXPlayer Lemonade, mac-codex(CLI+MLX provider) node 점검: `agent-test/dev/edge-smoke.md`, `agent-test/dev/node-smoke.md`
- control-plane / smoke / control-plane health와 wire baseline: `agent-test/dev/control-plane-smoke.md`
- client / smoke / Flutter client와 IOP console package baseline: `agent-test/dev/client-smoke.md`
- platform-common / smoke / 공통 설정과 protobuf 계약 baseline: `agent-test/dev/platform-common-smoke.md`

View file

@ -132,8 +132,7 @@ GOOS=windows GOARCH=amd64 go build -trimpath -o build/dev-runtime/bin/iop-node-w
- model alias: `qwen3.6:35b`
- provider candidate: `gx10-vllm` on `gx10-vllm-node`, capacity `4`
- provider candidate: `onexplayer-lemonade` on `onexplayer-lemonade-node`, capacity `3`
- provider candidate: `mac-mlx-vllm` on `mac-mlx-vllm-node`, capacity `3`
- connected non-candidate: `mac-codex-node`
- provider candidate: `mac-mlx-vllm` on `mac-codex-node`, capacity `3`
OneXPlayer Lemonade Node는 원격 runner나 Edge host에서 다시 SSH하거나 proxy process로 띄우지 않는다. 현재 작업 호스트에서 Windows host에 `ssh r0bin@192.168.0.59`로 직접 접속한 뒤, 그 host 안에서 generated PowerShell bootstrap 명령을 실행한다. 이때 Node 작업 경로는 `$HOME\iop-field`이며, Lemonade provider endpoint는 Windows host 로컬에서 접근 가능한 값을 기준으로 검증한다.
@ -176,7 +175,7 @@ nohup .venv/bin/vllm-mlx serve mlx-community/Qwen3.6-35B-A3B-4bit \
echo $! > vllm-mlx.pid
```
Mac MLX provider의 주요 운영 파일은 `vllm-mlx.pid`, `logs/vllm-mlx.stdout.log`, `logs/vllm-mlx.stderr.log`, Node 로그 `build/dev-runtime/logs/node-mac-mlx-vllm.*.log`다. 2026-06-24 직접 호출 측정 기준으로 `max_tokens=192`, `enable_thinking=false`에서 1/2/3 동시 총합은 약 `59.66`, `87.31`, `98.13 tok/s`였다.
Mac MLX provider의 주요 운영 파일은 `vllm-mlx.pid`, `logs/vllm-mlx.stdout.log`, `logs/vllm-mlx.stderr.log`다. 2026-06-24 직접 호출 측정 기준으로 `max_tokens=192`, `enable_thinking=false`에서 1/2/3 동시 총합은 약 `59.66`, `87.31`, `98.13 tok/s`였다.
SSH 세션 안의 `Start-Process`는 세션 종료와 함께 `iop-node.exe`가 정리될 수 있다. 반복 배포에서는 Windows host에서 `Win32_Process.Create` 방식으로 세션 독립 실행한다.
@ -203,7 +202,7 @@ Node host OS 재부팅은 필요하지 않다. Edge process 재시작이나 일
1. Control Plane status에서 `edge-toki-labs-dev`의 connected node 수와 node id를 확인한다.
2. Edge host에서 `toki-labs.com:18084`의 established node TCP connection 수를 확인한다.
3. Edge process를 재시작하고 bootstrap 재실행 없이 4개 Node 연결이 회복되는지 확인한다.
3. Edge process를 재시작하고 bootstrap 재실행 없이 3개 Node 연결이 회복되는지 확인한다.
4. `http://toki-labs.com:18083/healthz``/v1/models`를 확인한다.
5. capacity를 `gx10-vllm=4`, `onexplayer-lemonade=3`, `mac-mlx-vllm=3`으로 맞춘 후보 config를 refresh apply하고 Edge process가 유지되는지 확인한다. Node adapter capacity 변경이 `restart_required`로 반환되면 Edge process를 새 config로 재시작한 뒤 Node reconnect 상태를 확인한다.
6. `qwen3.6:35b``/v1/responses``/v1/chat/completions` 각각에 provider capacity 총합 + 1개 동시 요청을 보낸다.