From 1c11339905d67373b134bcb1fd727a12f7976bde Mon Sep 17 00:00:00 2001 From: leedongmyung Date: Mon, 29 Jun 2026 13:21:09 +0900 Subject: [PATCH] chore: update dev-corp skill and smoke tests --- .../project/dev-corp-runtime-deploy/SKILL.md | 4 ++-- agent-test/dev-corp/client-smoke.md | 10 ++++----- agent-test/dev-corp/control-plane-smoke.md | 4 ++-- agent-test/dev-corp/edge-smoke.md | 22 +++++++++---------- agent-test/dev-corp/inventory.yaml | 18 +++++++-------- agent-test/dev-corp/node-smoke.md | 12 +++++----- agent-test/dev-corp/platform-common-smoke.md | 6 ++--- agent-test/dev-corp/rules.md | 12 +++++----- agent-test/dev-corp/testing-smoke.md | 6 ++--- 9 files changed, 47 insertions(+), 47 deletions(-) diff --git a/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md b/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md index 3b25333..bf9bc4e 100644 --- a/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md +++ b/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md @@ -32,7 +32,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다. - [ ] mac-mini에 `/Users/fe/agent-work/iop-dev-corp` checkout이 없으면 배포를 시작하지 말고 checkout 생성과 source sync를 setup blocker로 보고한다. - [ ] mac-mini에서 `192.168.2.2:8002`, `192.168.2.4:8004`, `192.168.2.3:8004`의 `/health`와 `/v1/models`가 성공하는지 확인한다. - [ ] Edge config의 OpenAI-compatible adapter endpoint는 각 Node process 기준으로 평가된다. direct preflight는 `192.168.2.x` 주소로 하되, Edge가 Node에 내려주는 provider endpoint는 node-local `127.0.0.1:`를 우선한다. -- [ ] DGX Spark 02가 mac-mini `172.23.78.70:18085/18086/18087`에 직접 접근하지 못하면 mac-mini에서 reverse SSH tunnel을 유지하고 node02 Edge addr을 tunnel local port로 설정한다. +- [ ] DGX Spark 02가 mac-mini `172.24.63.178:18085/18086/18087`에 직접 접근하지 못하면 mac-mini에서 reverse SSH tunnel을 유지하고 node02 Edge addr을 tunnel local port로 설정한다. - [ ] `gemma4:26b` alias와 총 capacity `13`은 target 후보이다. Edge config 반영과 capacity smoke가 통과하기 전에는 확정값으로 보고하지 않는다. - [ ] DGX Spark vLLM provider는 capacity `4`, 호출당 최대 context window `262144`, requested KV `262144x2` 이상을 기준으로 한다. vLLM에는 vLLM-MLX식 `--max-kv-size`가 없으므로 실제 KV cache는 `gpu_memory_utilization` 적용 후 startup log의 `GPU KV cache size`와 `Maximum concurrency for 262,144 tokens per request`로 검증한다. DGX01/02 검증 기준은 `--max-num-seqs 4`, `--max-model-len 262144`, `--gpu-memory-utilization 0.40`이고, FP4 MoE 커널 한계 보정을 위해 `VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304`도 함께 둔다. - [ ] DGX Spark 02 endpoint는 Docker publish 때문에 `192.168.2.4:8004`이다. `8000`, `8001`, `8002`를 기본 endpoint로 쓰지 않는다. @@ -50,7 +50,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다. - DGX Spark 01은 FlashInfer FP4 JIT가 first compile 중 `ninja` 실행 파일을 PATH에서 찾는다. `ninja`는 venv에 있으므로 `/home/digitalcommerce_dgx_spark_01/vllm_env/bin`을 PATH 앞에 둔다. - DGX Spark 02 Docker image `vllm/vllm-openai:latest`의 entrypoint는 이미 `vllm serve`이다. container command에는 `serve`를 중복으로 넣지 말고 positional model `/models/gemma-4-26B-A4B-it-NVFP4`부터 둔다. 현재 Docker publish는 host `8004` -> container `8004` 기준이다. - Mac Studio는 `DYLD_LIBRARY_PATH=/opt/homebrew/opt/expat/lib` 없이 Python `pyexpat` import가 실패할 수 있다. `screen` session `vllm_mlx_8004` 안에서 이 환경변수를 export한 뒤 시작한다. -- 2026-06-25 재확인 기준 DGX Spark 01은 `--gpu-memory-utilization 0.40`로 재기동 후 mac-mini public forward `http://172.23.78.70:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했고 startup log에서 GPU KV cache `804,421` tokens, full-context concurrency `3.07x`를 확인했다. +- 2026-06-25 재확인 기준 DGX Spark 01은 `--gpu-memory-utilization 0.40`로 재기동 후 mac-mini public forward `http://172.24.63.178:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했고 startup log에서 GPU KV cache `804,421` tokens, full-context concurrency `3.07x`를 확인했다. - 2026-06-25 재확인 기준 DGX Spark 02는 Docker `vllm-gemma4` host/container `8004`, `--gpu-memory-utilization 0.40`, `--max-model-len 262144`, `--max-num-seqs 4`로 동작하며 mac-mini와 node-local `/health`, `/v1/models`, 직접 동시성 `1..4` chat completion benchmark를 통과했다. startup log에서 GPU KV cache `860,222` tokens, full-context concurrency `3.28x`를 확인했다. - 2026-06-25 재확인 기준 Mac Studio provider는 새 설정으로 `/health`와 직접 동시성 `1..5` benchmark를 통과했다. provider-pool 전체 Edge OpenAI-compatible capacity smoke는 별도로 검증해야 한다. diff --git a/agent-test/dev-corp/client-smoke.md b/agent-test/dev-corp/client-smoke.md index 4c35025..1dd21b6 100644 --- a/agent-test/dev-corp/client-smoke.md +++ b/agent-test/dev-corp/client-smoke.md @@ -3,7 +3,7 @@ test_env: dev-corp test_profile: client-smoke domain: client verification_type: smoke -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # client-smoke dev-corp 테스트 @@ -28,7 +28,7 @@ last_rule_updated_at: 2026-06-25 ## 환경 -- host: Flutter client 또는 `packages/flutter/iop_console`가 포함된 runtime evidence는 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. +- host: Flutter client 또는 `packages/flutter/iop_console`가 포함된 runtime evidence는 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. - port: web/dev preview `13002`, Control Plane HTTP `18002`, Client WS `19004`, Edge-Node TCP transport `19006`. - runtime: Flutter/Dart - package manager: Flutter pub @@ -47,9 +47,9 @@ last_rule_updated_at: 2026-06-25 - package-unit: `cd packages/flutter/iop_console && flutter test` - lint: `cd apps/client && flutter analyze --no-fatal-infos` - smoke: `cd apps/client && flutter test` -- e2e: `IOP_WEB_PORT=13002 IOP_CONTROL_PLANE_HTTP_URL=http://172.23.78.70:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.23.78.70:19004/client ./scripts/dev/web.sh` +- e2e: `IOP_WEB_PORT=13002 IOP_CONTROL_PLANE_HTTP_URL=http://172.24.63.178:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.24.63.178:19004/client ./scripts/dev/web.sh` - compose-e2e: mac-mini 환경에서 `IOP_EDGE_NODE_TOKEN`을 안전하게 주입한 뒤 `docker compose --env-file .env.dev-corp.example up --build` -- web-build: `make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://172.23.78.70:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.23.78.70:19004/client` +- web-build: `make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://172.24.63.178:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.24.63.178:19004/client` - model: - full-cycle: @@ -58,7 +58,7 @@ last_rule_updated_at: 2026-06-25 - client 또는 `packages/flutter/iop_console` 변경은 최소 `cd apps/client && flutter test`로 확인한다. - `packages/flutter/iop_console` 자체 API나 widget 구조가 바뀌면 `cd packages/flutter/iop_console && flutter test` 실행 가능 여부를 확인한다. - analyzer 영향이 있는 dependency, app shell, generated import 변경이면 `cd apps/client && flutter analyze --no-fatal-infos`를 함께 확인한다. -- Web build/deploy, `apps/client/Dockerfile`, `docker-compose.yml`, `scripts/dev/web.sh`, `Makefile client-build-web` 변경은 mac-mini에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이 `http://172.23.78.70:13002` 계열인지 보고한다. +- Web build/deploy, `apps/client/Dockerfile`, `docker-compose.yml`, `scripts/dev/web.sh`, `Makefile client-build-web` 변경은 mac-mini에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이 `http://172.24.63.178:13002` 계열인지 보고한다. - compose 경로를 확인할 때는 `IOP_EDGE_NODE_TOKEN`을 mac-mini 환경에서 주입하고, token 원문은 tracked 파일에 기록하지 않는다. ## 보조 검증 diff --git a/agent-test/dev-corp/control-plane-smoke.md b/agent-test/dev-corp/control-plane-smoke.md index c84a23e..071384d 100644 --- a/agent-test/dev-corp/control-plane-smoke.md +++ b/agent-test/dev-corp/control-plane-smoke.md @@ -3,7 +3,7 @@ test_env: dev-corp test_profile: control-plane-smoke domain: control-plane verification_type: smoke -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # control-plane-smoke dev-corp 테스트 @@ -29,7 +29,7 @@ last_rule_updated_at: 2026-06-25 ## 환경 -- host: Docker compose 또는 Flutter client가 포함된 runtime evidence는 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. +- host: Docker compose 또는 Flutter client가 포함된 runtime evidence는 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. - port: Control Plane HTTP `18002`, Client WS `19004`, CP-Edge wire `19005`, Edge-Node TCP transport `19006`, web/dev preview `13002`. - runtime: Go `1.24`, Docker compose - package manager: Go modules / Makefile diff --git a/agent-test/dev-corp/edge-smoke.md b/agent-test/dev-corp/edge-smoke.md index adc7576..b7ddc4f 100644 --- a/agent-test/dev-corp/edge-smoke.md +++ b/agent-test/dev-corp/edge-smoke.md @@ -3,7 +3,7 @@ test_env: dev-corp test_profile: edge-smoke domain: edge verification_type: smoke -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # edge-smoke dev-corp 테스트 @@ -33,26 +33,26 @@ last_rule_updated_at: 2026-06-25 ## 환경 -- host: local checkout. dev-corp runtime, provider pool, shared port evidence가 필요하면 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 사용한다. +- host: local checkout. dev-corp runtime, provider pool, shared port evidence가 필요하면 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 사용한다. - port: compose Edge-Node TCP transport `19006`; native provider-pool Edge-Node TCP 후보 `18087`; artifact/bootstrap HTTP 후보 `18085`; Edge OpenAI-compatible HTTP 후보 `18086`; Edge metrics 후보 `19102`; admin 후보 `19094`. - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 `.env.dev-corp.example` 기준으로 수행한다. -- external service: dev-corp artifact/base URL 후보 `http://172.23.78.70:18085`, dev-corp Edge runtime 후보 `172.23.78.70:18087` -- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1` +- external service: dev-corp artifact/base URL 후보 `http://172.24.63.178:18085`, dev-corp Edge runtime 후보 `172.24.63.178:18087` +- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## dev-corp provider pool 인벤토리 -dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/dev-corp/inventory.yaml`의 machine-readable 값을 우선하고, mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 기준으로 한다. +dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/dev-corp/inventory.yaml`의 machine-readable 값을 우선하고, mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 기준으로 한다. -- Edge host: `Mac-mini.local`, `fe@172.23.78.70`, Apple M2 Pro / 16GB +- Edge host: `Mac-mini.local`, `fe@172.24.63.178`, Apple M2 Pro / 16GB - Edge config: `build/dev-corp-runtime/edge.yaml` - Edge id: `edge-dev-corp` - Control Plane HTTP 후보: `http://127.0.0.1:18002` -- bootstrap HTTP 후보: `http://172.23.78.70:18085` -- Edge OpenAI-compatible base URL 후보: `http://172.23.78.70:18086/v1` -- Edge-Node TCP transport 후보: `172.23.78.70:18087` +- bootstrap HTTP 후보: `http://172.24.63.178:18085` +- Edge OpenAI-compatible base URL 후보: `http://172.24.63.178:18086/v1` +- Edge-Node TCP transport 후보: `172.24.63.178:18087` - model alias 후보: `gemma4:26b` 노드 후보: @@ -68,7 +68,7 @@ dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/d - SSH/user: mac-mini에서 `ssh dplab@192.168.2.4` - provider endpoint: `http://192.168.2.4:8004/v1` - Edge adapter endpoint: node-local `http://127.0.0.1:8004/v1` - - Edge connectivity: node02는 mac-mini `172.23.78.70:18085/18086` 직접 접근이 timeout이므로 mac-mini의 reverse SSH tunnel `127.0.0.1:28085/28087`을 사용한다. + - Edge connectivity: node02는 mac-mini `172.24.63.178:18085/18086` 직접 접근이 timeout이므로 mac-mini의 reverse SSH tunnel `127.0.0.1:28085/28087`을 사용한다. - served model: `gemma-4-26B-A4B-it-NVFP4` - capacity baseline 후보: `4` - runtime: Docker container `vllm-gemma4`, start script `/home/dplab/start_vllm_gemma4_8004.sh`, host `8004` -> container `8004`, `vllm=0.23.0`, `--max-num-seqs 4`, `--max-model-len 262144`, `--gpu-memory-utilization 0.40`, startup log GPU KV cache `860,222` tokens / full-context concurrency `3.28x`, `VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304` @@ -89,7 +89,7 @@ Mac Studio의 `http://192.168.2.3:8005/v1` mlx-vlm DiffusionGemma endpoint는 - DGX Spark 02 provider runtime은 capacity `4`, context window `262144`, requested KV `262144x2` 이상의 기준으로 설정됐다. Docker `vllm-gemma4`는 host/container `8004` 기준으로 동작하며 startup log에서 GPU KV cache `860,222` tokens와 `262144` tokens/request concurrency `3.28x`를 확인했다. - DGX Spark 01은 FlashInfer FP4 JIT가 `ninja`를 PATH에서 호출하므로 start script에 `PATH=/home/digitalcommerce_dgx_spark_01/vllm_env/bin:$PATH`를 둔다. - Mac Studio provider runtime은 capacity `5`, context window `262144`, requested KV `262144x3` 기준으로 `--continuous-batching`, `--max-num-seqs 5`, `--prefill-batch-size 5`, `--completion-batch-size 5`, `--chunked-prefill-tokens 1024`, `--max-request-tokens 262144`, `--max-kv-size 786432`, `--reasoning-parser gemma4`을 적용했고 `/health`, `/v1/models`, 직접 동시성 `1..5` chat completion benchmark 통과를 확인했다. -- 2026-06-25 재확인 기준 DGX Spark 01은 mac-mini public forward `http://172.23.78.70:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. DGX Spark 02는 mac-mini에서 SSH, provider `/health`, `/v1/models`가 회복됐고 직접 provider benchmark를 통과했다. Edge OpenAI-compatible capacity smoke는 별도로 재검증해야 한다. +- 2026-06-25 재확인 기준 DGX Spark 01은 mac-mini public forward `http://172.24.63.178:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. DGX Spark 02는 mac-mini에서 SSH, provider `/health`, `/v1/models`가 회복됐고 직접 provider benchmark를 통과했다. Edge OpenAI-compatible capacity smoke는 별도로 재검증해야 한다. ## 명령 diff --git a/agent-test/dev-corp/inventory.yaml b/agent-test/dev-corp/inventory.yaml index 595d9a8..caccb3c 100644 --- a/agent-test/dev-corp/inventory.yaml +++ b/agent-test/dev-corp/inventory.yaml @@ -1,10 +1,10 @@ test_env: dev-corp profile: dev-corp-provider-pool -last_updated_at: "2026-06-25" +last_updated_at: "2026-06-29" source: remote_runner: - ssh: fe@172.23.78.70 + ssh: fe@172.24.63.178 repo_root: /Users/fe/agent-work/iop-dev-corp setup_required: true setup_status: deployed @@ -18,20 +18,20 @@ source: edge: id: edge-dev-corp host: mac-mini - ssh: fe@172.23.78.70 + ssh: fe@172.24.63.178 os: macOS 26.2 hardware: Apple M2 Pro / 16GB config_path: build/dev-corp-runtime/edge.yaml control_plane_enabled_current_runtime: false control_plane_http: http://127.0.0.1:18002 control_plane_status_url: http://127.0.0.1:18002/edges/edge-dev-corp/status - bootstrap_http_public: http://172.23.78.70:18085 - openai_base_url_public: http://172.23.78.70:18086/v1 + bootstrap_http_public: http://172.24.63.178:18085 + openai_base_url_public: http://172.24.63.178:18086/v1 openai_base_url_runner: http://127.0.0.1:18086/v1 openai_api_key_required_current_runtime: true openai_api_key_secret_path_remote: build/dev-corp-runtime/.secrets/openai_api_key openai_api_key_value_tracked: false - edge_node_tcp_public: 172.23.78.70:18087 + edge_node_tcp_public: 172.24.63.178:18087 admin_addr_runner: 127.0.0.1:19094 build: @@ -98,7 +98,7 @@ model: dgx01_health: passed dgx02_health: passed direct_health_observation: - dgx01: public forward http://172.23.78.70:8002 returned /health 200, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and /v1/chat/completions returned OK after gpu_memory_utilization 0.40 restart + dgx01: public forward http://172.24.63.178:8002 returned /health 200, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and /v1/chat/completions returned OK after gpu_memory_utilization 0.40 restart dgx02: node-local http://127.0.0.1:8004 and mac-mini http://192.168.2.4:8004 returned /health 200, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and direct concurrency 1..4 chat completion benchmark passed mac_studio: node-local http://127.0.0.1:8004 and mac-mini http://192.168.2.3:8004 returned /health 200, /v1/models exposed mlx-community/gemma-4-26b-a4b-it-nvfp4, and direct concurrency 1..5 chat completion benchmark passed edge_openai_smoke: target_unverified_until_edge_provider_pool_capacity_smoke @@ -120,7 +120,7 @@ nodes: served_model: gemma-4-26B-A4B-it-NVFP4 capacity: 4 capacity_status: configured_health_passed_direct_smoke - last_runtime_observation: restarted with gpu_memory_utilization 0.40; public forward http://172.23.78.70:8002 returned /health 200, /v1/models, and a chat completion; startup log reported GPU KV cache size 804,421 tokens and 3.07x concurrency for 262,144-token requests + last_runtime_observation: restarted with gpu_memory_utilization 0.40; public forward http://172.24.63.178:8002 returned /health 200, /v1/models, and a chat completion; startup log reported GPU KV cache size 804,421 tokens and 3.07x concurrency for 262,144-token requests capacity_basis: dev-corp target baseline; vLLM --max-num-seqs 4, --max-model-len 262144, --gpu-memory-utilization 0.40; observed KV cache satisfies requested 262144x2 minimum runtime: host: spark-0b30 @@ -174,7 +174,7 @@ nodes: capacity_basis: dev-corp target baseline; Docker publishes host 8004 to container 8004; vLLM --max-num-seqs 4, --max-model-len 262144, --gpu-memory-utilization 0.40; observed KV cache satisfies requested 262144x2 minimum edge_connectivity: mode: reverse_ssh_tunnel - reason: node02 cannot reach mac-mini 172.23.78.70:18085/18086 directly from 192.168.2.4 + reason: node02 cannot reach mac-mini 172.24.63.178:18085/18086 directly from 192.168.2.4 tunnel_pid_file: /Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/node02-tunnel.pid remote_forwards: artifact: 127.0.0.1:28085 -> mac-mini 127.0.0.1:18085 diff --git a/agent-test/dev-corp/node-smoke.md b/agent-test/dev-corp/node-smoke.md index e807836..ae54a2e 100644 --- a/agent-test/dev-corp/node-smoke.md +++ b/agent-test/dev-corp/node-smoke.md @@ -3,7 +3,7 @@ test_env: dev-corp test_profile: node-smoke domain: node verification_type: smoke -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # node-smoke dev-corp 테스트 @@ -32,18 +32,18 @@ last_rule_updated_at: 2026-06-25 ## 환경 -- host: local checkout. dev-corp host, provider, shared Edge runtime evidence가 필요하면 mac-mini `ssh fe@172.23.78.70`을 사용한다. +- host: local checkout. dev-corp host, provider, shared Edge runtime evidence가 필요하면 mac-mini `ssh fe@172.24.63.178`을 사용한다. - port: compose Edge-Node TCP transport `19006`, native provider-pool Edge-Node TCP 후보 `18087` - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 수행한다. -- external service: dev-corp Edge runtime 후보 `172.23.78.70:18087` -- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1` +- external service: dev-corp Edge runtime 후보 `172.24.63.178:18087` +- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## dev-corp Node 접속 기준 -dev-corp의 실제 3-node 연결을 점검할 때는 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` checkout과 `build/dev-corp-runtime/edge.yaml`을 기준으로 한다. Node는 provider pool 기준에서 Edge-Node TCP `172.23.78.70:18087`로 붙는다. +dev-corp의 실제 3-node 연결을 점검할 때는 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` checkout과 `build/dev-corp-runtime/edge.yaml`을 기준으로 한다. Node는 provider pool 기준에서 Edge-Node TCP `172.24.63.178:18087`로 붙는다. 단, DGX Spark 02는 2026-06-25 기준 mac-mini Edge port 직접 접근이 timeout이므로 `127.0.0.1:28087 -> mac-mini 127.0.0.1:18087` reverse SSH tunnel로 붙는다. - DGX Spark 01 vLLM node: `corp-dgx-spark-01-vllm-node` / `corp-dgx-spark-01-vllm` @@ -85,7 +85,7 @@ Mac Studio의 secondary `http://192.168.2.3:8005/v1` endpoint는 기본 Node/pro ## 2026-06-25 런타임 설정 반영 상태 - DGX Spark 01에는 capacity `4`, context window `262144`, requested KV `262144x2` 이상의 기준을 반영했다. vLLM에는 vLLM-MLX식 `--max-kv-size`가 없으므로 DGX01은 `--max-num-seqs 4`, `--max-model-len 262144`, `--gpu-memory-utilization 0.40`로 운용하고, 실제 KV cache는 startup log의 `GPU KV cache size`로 검증한다. -- DGX Spark 01은 2026-06-25 재기동 후 mac-mini public forward `http://172.23.78.70:8002` 기준 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. 같은 로그에서 GPU KV cache `804,421` tokens, `262144` tokens/request concurrency `3.07x`가 확인됐다. +- DGX Spark 01은 2026-06-25 재기동 후 mac-mini public forward `http://172.24.63.178:8002` 기준 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. 같은 로그에서 GPU KV cache `804,421` tokens, `262144` tokens/request concurrency `3.07x`가 확인됐다. - DGX Spark 02에는 capacity `4`, context window `262144`, requested KV `262144x2` 이상의 기준을 반영했다. Docker `vllm-gemma4`는 host/container `8004` 기준으로 동작하며, node-local과 mac-mini 경유 `/health`, `/v1/models`, 직접 동시성 `1..4` chat completion benchmark를 통과했다. - DGX Spark에서 explicit `--max-num-batched-tokens 524288`를 사용하는 경우 first profile 중 FP4 MoE 커널 한계에 걸릴 수 있어 `VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304` 보정이 필요하다. - DGX Spark 01은 FlashInfer FP4 JIT가 first compile 중 `ninja`를 PATH에서 찾으므로 `/home/digitalcommerce_dgx_spark_01/vllm_env/bin` PATH prefix가 필요하다. diff --git a/agent-test/dev-corp/platform-common-smoke.md b/agent-test/dev-corp/platform-common-smoke.md index 20a0302..1648e2f 100644 --- a/agent-test/dev-corp/platform-common-smoke.md +++ b/agent-test/dev-corp/platform-common-smoke.md @@ -3,7 +3,7 @@ test_env: dev-corp test_profile: platform-common-smoke domain: platform-common verification_type: smoke -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # platform-common-smoke dev-corp 테스트 @@ -34,8 +34,8 @@ last_rule_updated_at: 2026-06-25 - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/codegen quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 수행한다. -- external service: dev-corp artifact/base URL 후보 `http://172.23.78.70:18085` -- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1` +- external service: dev-corp artifact/base URL 후보 `http://172.24.63.178:18085` +- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## 명령 diff --git a/agent-test/dev-corp/rules.md b/agent-test/dev-corp/rules.md index 0c06c81..aa45093 100644 --- a/agent-test/dev-corp/rules.md +++ b/agent-test/dev-corp/rules.md @@ -1,6 +1,6 @@ --- test_env: dev-corp -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # dev-corp 테스트 규칙 @@ -21,7 +21,7 @@ last_rule_updated_at: 2026-06-25 ## 기본 환경 -- host: Edge runner 후보는 `ssh fe@172.23.78.70` mac-mini이다. +- host: Edge runner 후보는 `ssh fe@172.24.63.178` mac-mini이다. - repo root: 목표 checkout은 `/Users/fe/agent-work/iop-dev-corp`이다. 2026-06-25 확인 기준 해당 checkout은 없고 `/Users/fe/iop-field`만 있으므로 최초 배포 전 repo root 생성이 필요하다. - sync 기준: dev-corp 배포 전 mac-mini checkout은 배포 기준 ref로 clean sync하고 dirty 변경은 보존 대상으로 보지 않는다. - env file: compose stack을 만들면 `.env.dev-corp.example`로 분리한다. 파일 생성 전에는 native/provider-pool profile만 기준으로 삼는다. @@ -31,8 +31,8 @@ last_rule_updated_at: 2026-06-25 - runtime: Go quick check는 local toolchain을 우선한다. Docker/Flutter/client/field/bootstrap/provider-pool evidence는 mac-mini와 내부 provider nodes를 사용한다. - package manager: Go modules / Makefile / Flutter pub - docker: 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않는다. Docker compose 검증은 mac-mini checkout에서 수행한다. -- external service: dev-corp Control Plane 후보 `http://172.23.78.70:18002`, Client wire 후보 `ws://172.23.78.70:19004/client`. -- model endpoint: Edge 배포 후 후보 `http://172.23.78.70:18086/v1`; 직접 provider 확인은 `agent-test/dev-corp/inventory.yaml`의 provider endpoint를 따른다. +- external service: dev-corp Control Plane 후보 `http://172.24.63.178:18002`, Client wire 후보 `ws://172.24.63.178:19004/client`. +- model endpoint: Edge 배포 후 후보 `http://172.24.63.178:18086/v1`; 직접 provider 확인은 `agent-test/dev-corp/inventory.yaml`의 provider endpoint를 따른다. - credential: secret/token/API key 원문은 문서에 기록하지 않는다. ## 포트 매핑 @@ -55,10 +55,10 @@ dev-corp native/provider-pool profile은 compose Edge-Node TCP `19006`이 아니 ## 런타임 프로필 - local quick check: 현재 checkout에서 Go quick check를 우선 실행한다. -- remote runner: dev-corp runtime evidence, Flutter client, Docker compose, field/bootstrap, provider-pool evidence는 `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. +- remote runner: dev-corp runtime evidence, Flutter client, Docker compose, field/bootstrap, provider-pool evidence는 `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. - compose dev-corp stack: `.env.dev-corp.example`, `COMPOSE_PROJECT_NAME=iop-dev-corp-agent`, `IOP_COMPOSE_NETWORK=iop-dev-corp-agent-net`, Edge-Node TCP `19006`을 사용한다. - Edge direct dev-corp profile: artifact/bootstrap `18085`, OpenAI-compatible `18086`, metrics `19102`, admin `19094`를 사용한다. -- dev-corp provider pool: `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/edge.yaml`과 Edge-Node TCP `172.23.78.70:18087`을 사용한다. 3-node/provider 세부는 `agent-test/dev-corp/edge-smoke.md`와 `agent-test/dev-corp/node-smoke.md`를 따른다. +- dev-corp provider pool: `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/edge.yaml`과 Edge-Node TCP `172.24.63.178:18087`을 사용한다. 3-node/provider 세부는 `agent-test/dev-corp/edge-smoke.md`와 `agent-test/dev-corp/node-smoke.md`를 따른다. - external provider field: DGX Spark 01/02와 Mac Studio는 mac-mini에서 내부 SSH로 접속한다. 직접 접속 경로와 provider endpoint는 `agent-test/dev-corp/inventory.yaml`을 따른다. ## 프리플라이트 diff --git a/agent-test/dev-corp/testing-smoke.md b/agent-test/dev-corp/testing-smoke.md index 283e310..d5befbd 100644 --- a/agent-test/dev-corp/testing-smoke.md +++ b/agent-test/dev-corp/testing-smoke.md @@ -3,7 +3,7 @@ test_env: dev-corp test_profile: testing-smoke domain: testing verification_type: smoke -last_rule_updated_at: 2026-06-25 +last_rule_updated_at: 2026-06-29 --- # testing-smoke dev-corp 테스트 @@ -37,8 +37,8 @@ last_rule_updated_at: 2026-06-25 - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: quick check는 Docker를 요구하지 않는다. 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않으며, Docker compose 검증은 mac-mini 환경에서 수행한다. -- external service: dev-corp Control Plane 후보 `http://172.23.78.70:18002`, dev-corp Client wire 후보 `ws://172.23.78.70:19004/client`, dev-corp Edge runtime 후보 `172.23.78.70:18087` -- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1` +- external service: dev-corp Control Plane 후보 `http://172.24.63.178:18002`, dev-corp Client wire 후보 `ws://172.24.63.178:19004/client`, dev-corp Edge runtime 후보 `172.24.63.178:18087` +- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## 명령