394 lines
18 KiB
YAML
394 lines
18 KiB
YAML
test_env: dev-corp
|
|
profile: dev-corp-provider-pool
|
|
last_updated_at: "2026-07-08"
|
|
|
|
source:
|
|
remote_runner:
|
|
ssh: fe@172.24.63.178
|
|
repo_root: /Users/fe/agent-work/iop-dev-corp
|
|
setup_required: true
|
|
setup_status: deployed
|
|
current_observation: /Users/fe/agent-work/iop-dev-corp checkout and build/dev-corp-runtime runtime were created on 2026-06-25, clean-synced/rebuilt at source ref 2d08d24 on 2026-07-06, then validated with the provider-pool thinking-policy patch and gemma4:26b default_thinking_token_budget config update; /Users/fe/iop-field remains unrelated legacy field state
|
|
clean_sync:
|
|
- git fetch origin main
|
|
- git reset --hard origin/main
|
|
- git clean -fd
|
|
dirty_policy: discard
|
|
|
|
edge:
|
|
id: dev-corp-edge
|
|
host: mac-mini
|
|
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: true
|
|
control_plane_http: http://127.0.0.1:18002
|
|
control_plane_status_url: http://127.0.0.1:18002/edges/dev-corp-edge/status
|
|
control_plane_client_ws_runner: ws://127.0.0.1:19004/client
|
|
control_plane_edge_wire_addr_runner: 127.0.0.1:19005
|
|
public_route_policy: default_dev_corp_external_route_uses_115_public_ip
|
|
edge_deploy_172_policy: explicit_user_request_only
|
|
public_route_note: 115.21.224.82 is the default dev-corp Edge deployment and smoke route; Edge deployment to 172.24.63.178 is prohibited by default and allowed only when the user explicitly requests the 172 route. 172.24.63.178 otherwise remains the mac-mini runner and node-only/internal route.
|
|
control_plane_http_public: http://115.21.224.82:18002
|
|
control_plane_client_ws_public: ws://115.21.224.82:19004/client
|
|
bootstrap_http_public: http://115.21.224.82:18085
|
|
bootstrap_http_node_internal: http://172.24.63.178:18085
|
|
openai_base_url_public: http://115.21.224.82:18086/v1
|
|
openai_base_url_node_internal: 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: 115.21.224.82:18087
|
|
edge_node_tcp_node_internal: 172.24.63.178:18087
|
|
admin_addr_runner: 127.0.0.1:19094
|
|
|
|
build:
|
|
binaries:
|
|
control_plane: build/dev-corp-runtime/bin/control-plane
|
|
edge: build/dev-corp-runtime/bin/iop-edge
|
|
node_macos: build/dev-corp-runtime/bin/iop-node-darwin-arm64
|
|
node_linux_arm64: build/dev-corp-runtime/bin/iop-node-linux-arm64
|
|
node_windows_amd64: null
|
|
node_windows_amd64_note: not part of the default dev-corp provider pool
|
|
|
|
model:
|
|
alias: gemma4:26b
|
|
alias_status: candidate
|
|
alias_policy: expose one IOP model alias and map provider-specific served_model values per provider
|
|
provider_capacity_total: 13
|
|
provider_capacity_status: verified_with_control_plane_provider_snapshots_2026_07_06
|
|
context_window_max: 262144
|
|
default_thinking_token_budget: 1024
|
|
reasoning_policy: bounded_thinking_enabled
|
|
think_policy:
|
|
default: enabled
|
|
strict_output_behavior: provider_pool_catalog_default_overrides_strict_disable
|
|
adapter_mapping: vllm_and_vllm_mlx_use_chat_template_kwargs_enable_thinking_true
|
|
timeout_policy:
|
|
openai_timeout_sec: 1800
|
|
provider_queue_timeout_ms: 0
|
|
provider_queue_timeout_policy: disabled_no_iop_queue_timeout
|
|
backend_request_timeout_ms: 1800000
|
|
note: provider-pool long reasoning and long-context requests do not use an IOP queue timeout; backend/OpenAI run budgets remain 30 minutes
|
|
runtime_capacity_targets:
|
|
dgx_spark:
|
|
capacity: 4
|
|
context_window_max: 262144
|
|
kv_size_tokens_effective: 524288
|
|
kv_size_basis: requested minimum 262144x2; verify actual vLLM KV cache from startup log because gpu_memory_utilization controls available KV cache
|
|
fp4_moe_env: VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304
|
|
mac_studio:
|
|
capacity: 5
|
|
context_window_max: 262144
|
|
kv_size_tokens_effective: 786432
|
|
kv_size_basis: requested 262144x3 mapped to vLLM-MLX max_kv_size
|
|
capacity_smoke:
|
|
endpoints:
|
|
- /v1/responses
|
|
- /v1/chat/completions
|
|
concurrent_requests: capacity_plus_one
|
|
expected_total_in_flight: 13
|
|
expected_total_in_flight_status: verified_2026_07_06
|
|
expected_min_queued: 1
|
|
extended_concurrent_requests: 16
|
|
extended_expected_min_queued: 3
|
|
prompt_policy: long_reasoning_allowed
|
|
think_policy: enabled_for_provider_pool
|
|
exact_output_match: false
|
|
latest_capacity_verification:
|
|
date: "2026-07-06"
|
|
source_ref: 2d08d240d48a954df6847df2ba08fb8b39fc3f7d
|
|
edge_runtime_patch: provider_pool_thinking_policy_enabled_under_strict_output
|
|
default_thinking_token_budget: 1024
|
|
control_plane_enabled: true
|
|
control_plane_status_url: http://127.0.0.1:18002/edges/dev-corp-edge/status
|
|
provider_snapshot_baseline:
|
|
total_capacity: 13
|
|
providers:
|
|
corp-dgx-spark-01-vllm:
|
|
capacity: 4
|
|
health: healthy
|
|
status: available
|
|
corp-dgx-spark-02-vllm:
|
|
capacity: 4
|
|
health: healthy
|
|
status: available
|
|
corp-mac-studio-mlx-vllm:
|
|
capacity: 5
|
|
health: healthy
|
|
status: available
|
|
responses:
|
|
concurrent_requests: 14
|
|
ok: 14
|
|
timeout_errors: 0
|
|
http_errors: 0
|
|
max_total_in_flight: 13
|
|
max_total_queued: 3
|
|
provider_max:
|
|
corp-dgx-spark-01-vllm:
|
|
max_in_flight: 4
|
|
max_queued: 1
|
|
corp-dgx-spark-02-vllm:
|
|
max_in_flight: 4
|
|
max_queued: 1
|
|
corp-mac-studio-mlx-vllm:
|
|
max_in_flight: 5
|
|
max_queued: 1
|
|
final_recovery: in_flight_0_queued_0
|
|
chat_completions:
|
|
concurrent_requests: 14
|
|
ok: 14
|
|
timeout_errors: 0
|
|
http_errors: 0
|
|
max_total_in_flight: 13
|
|
max_total_queued: 3
|
|
provider_max:
|
|
corp-dgx-spark-01-vllm:
|
|
max_in_flight: 4
|
|
max_queued: 1
|
|
corp-dgx-spark-02-vllm:
|
|
max_in_flight: 4
|
|
max_queued: 1
|
|
corp-mac-studio-mlx-vllm:
|
|
max_in_flight: 5
|
|
max_queued: 1
|
|
final_recovery: in_flight_0_queued_0
|
|
latest_runtime_update:
|
|
date: "2026-06-25"
|
|
reason: user requested dev-corp node capacity/context/KV alignment
|
|
requested_targets:
|
|
dgx_spark:
|
|
capacity: 4
|
|
context_window_max: 262144
|
|
kv_size: 262144x2
|
|
mac_studio:
|
|
capacity: 5
|
|
context_window_max: 262144
|
|
kv_size: 262144x3
|
|
applied_mapping:
|
|
dgx_spark: vLLM has no vLLM-MLX style max_kv_size flag; requested KV 262144x2 is validated from startup log KV cache size and max_model_len 262144
|
|
mac_studio: vLLM-MLX requested KV 262144x3 is represented as max_kv_size 786432 with max_request_tokens 262144
|
|
remediation_applied:
|
|
- DGX Spark vLLM FP4 MoE first profile required VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304 for max_num_batched_tokens 524288
|
|
- DGX Spark 01/02 Gemma4 agent serving now uses vLLM 0.24.0 with text-only/eager profile to keep native tool-call streaming stable for Pi/Cline-style agents
|
|
- DGX Spark 01 start script now prefixes /home/digitalcommerce_dgx_spark_01/vllm_env_0_24_0/bin
|
|
- Mac Studio vLLM-MLX pyexpat required DYLD_LIBRARY_PATH=/opt/homebrew/opt/expat/lib
|
|
verification:
|
|
last_rechecked_at: "2026-07-08"
|
|
mac_studio_health: passed
|
|
dgx01_health: passed
|
|
dgx02_health: passed
|
|
direct_health_observation:
|
|
dgx01: mac-mini http://192.168.2.2:8002 returned /health 200 and /v1/models exposed gemma-4-26B-A4B-it-NVFP4 after vLLM 0.24.0 text-only/eager restart; direct API forced/auto/streaming tool-call smoke and local Pi TUI bash/git-push tool-call flows passed; startup log reported GPU KV cache size 1,449,842 tokens and 5.53x concurrency for 262,144-token requests
|
|
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 after Docker image vllm/vllm-openai:v0.24.0 text-only/eager restart; direct API auto/streaming tool-call smoke passed; startup log reported GPU KV cache size 1,452,069 tokens and 5.54x concurrency for 262,144-token requests
|
|
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: passed_with_control_plane_capacity_snapshot_2026_07_06
|
|
|
|
nodes:
|
|
- id: corp-dgx-spark-01-vllm-node
|
|
alias: corp-dgx-spark-01-vllm
|
|
role: vllm-provider
|
|
ssh: digitalcommerce_dgx_spark_01@192.168.2.2
|
|
ssh_origin: mac-mini
|
|
workspace: /home/digitalcommerce_dgx_spark_01
|
|
provider_pool_candidate: true
|
|
provider:
|
|
id: corp-dgx-spark-01-vllm
|
|
type: vllm
|
|
endpoint: http://192.168.2.2:8002/v1
|
|
edge_adapter_endpoint: http://127.0.0.1:8002/v1
|
|
health: http://192.168.2.2:8002/health
|
|
served_model: gemma-4-26B-A4B-it-NVFP4
|
|
capacity: 4
|
|
capacity_status: configured_health_passed_direct_smoke_and_edge_capacity_smoke
|
|
last_runtime_observation: upgraded on 2026-07-08 to vLLM 0.24.0 with text-only/eager Gemma4 agent profile; mac-mini http://192.168.2.2:8002 returned /health 200 and /v1/models, direct API forced/auto/streaming tool-call smoke passed, and local Pi TUI via SSH tunnel completed bash and git push tool-call flows; startup log reported GPU KV cache size 1,449,842 tokens and 5.53x concurrency for 262,144-token requests
|
|
capacity_basis: dev-corp target baseline; vLLM 0.24.0 --max-num-seqs 4, --max-model-len 262144, --gpu-memory-utilization 0.40, text-only/eager profile; observed KV cache satisfies requested 262144x2 minimum
|
|
queue_timeout_ms: 0
|
|
request_timeout_ms: 1800000
|
|
edge_connectivity:
|
|
mode: reverse_ssh_tunnel
|
|
reason: current node.yaml uses tunnel-local Edge addr in the native provider-pool runtime
|
|
tunnel_pid_file: /Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/node01-tunnel.pid
|
|
remote_forwards:
|
|
artifact: 127.0.0.1:28085 -> mac-mini 127.0.0.1:18085
|
|
edge_node_tcp: 127.0.0.1:28087 -> mac-mini 127.0.0.1:18087
|
|
runtime:
|
|
host: spark-0b30
|
|
os: Ubuntu 24.04.3 LTS / aarch64
|
|
hardware: NVIDIA DGX Spark / NVIDIA GB10 / 119GiB RAM
|
|
manager: tmux
|
|
tmux_session: vllm_server_8002
|
|
start_script: /home/digitalcommerce_dgx_spark_01/start_vllm_8002.sh
|
|
python: /home/digitalcommerce_dgx_spark_01/vllm_env_0_24_0/bin/python3
|
|
path_prefix_required: /home/digitalcommerce_dgx_spark_01/vllm_env_0_24_0/bin
|
|
path_prefix_reason: FlashInfer FP4 JIT invokes ninja from PATH during first compile
|
|
package_baseline:
|
|
vllm: 0.24.0
|
|
torch: 2.11.0+cu130
|
|
transformers: 5.13.0
|
|
flashinfer_python: 0.6.12
|
|
huggingface_hub: 1.22.0
|
|
args:
|
|
env:
|
|
PATH_prefix: /home/digitalcommerce_dgx_spark_01/vllm_env_0_24_0/bin
|
|
VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE: "4194304"
|
|
host: 0.0.0.0
|
|
port: 8002
|
|
dtype: bfloat16
|
|
gpu_memory_utilization: 0.40
|
|
max_model_len: 262144
|
|
max_num_seqs: 4
|
|
enforce_eager: true
|
|
skip_mm_profiling: true
|
|
limit_mm_per_prompt:
|
|
image: 0
|
|
video: 0
|
|
mm_processor_cache_gb: 0
|
|
text_only_mode: true
|
|
enable_auto_tool_choice: true
|
|
tool_call_parser: gemma4
|
|
chat_template: /home/digitalcommerce_dgx_spark_01/tool_chat_template_gemma4.jinja
|
|
reasoning_parser: gemma4
|
|
max_num_batched_tokens: auto_2496
|
|
max_num_batched_tokens_note: vLLM raised the default from 2048 to 2496 for the Gemma4 prefix-LM/video path; it is a scheduler iteration budget, not the total KV cache size
|
|
context_window_max: 262144
|
|
kv_size_tokens_effective: 1449842
|
|
full_context_concurrency_observed: 5.53
|
|
default_chat_template_kwargs:
|
|
enable_thinking: true
|
|
|
|
- id: corp-dgx-spark-02-vllm-node
|
|
alias: corp-dgx-spark-02-vllm
|
|
role: vllm-provider
|
|
ssh: dplab@192.168.2.4
|
|
ssh_origin: mac-mini
|
|
workspace: /home/dplab
|
|
provider_pool_candidate: true
|
|
provider:
|
|
id: corp-dgx-spark-02-vllm
|
|
type: vllm
|
|
endpoint: http://192.168.2.4:8004/v1
|
|
edge_adapter_endpoint: http://127.0.0.1:8004/v1
|
|
health: http://192.168.2.4:8004/health
|
|
served_model: gemma-4-26B-A4B-it-NVFP4
|
|
capacity: 4
|
|
capacity_status: configured_health_passed_direct_smoke_and_edge_capacity_smoke
|
|
last_runtime_observation: upgraded on 2026-07-08 to Docker image vllm/vllm-openai:v0.24.0 with text-only/eager Gemma4 agent profile; node-local and mac-mini /health passed, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and direct API auto plus streaming tool-call smoke passed; startup log reported GPU KV cache size 1,452,069 tokens and 5.54x concurrency for 262,144-token requests
|
|
capacity_basis: dev-corp target baseline; Docker publishes host 8004 to container 8004; vLLM 0.24.0 --max-num-seqs 4, --max-model-len 262144, --gpu-memory-utilization 0.40, text-only/eager profile; observed KV cache satisfies requested 262144x2 minimum
|
|
queue_timeout_ms: 0
|
|
request_timeout_ms: 1800000
|
|
edge_connectivity:
|
|
mode: reverse_ssh_tunnel
|
|
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
|
|
edge_node_tcp: 127.0.0.1:28087 -> mac-mini 127.0.0.1:18087
|
|
runtime:
|
|
host: spark-fb94
|
|
os: Ubuntu 24.04.3 LTS / aarch64
|
|
hardware: NVIDIA DGX Spark / NVIDIA GB10 / 119GiB RAM
|
|
manager: docker
|
|
container_name: vllm-gemma4
|
|
start_script: /home/dplab/start_vllm_gemma4_8004.sh
|
|
env_file: /home/dplab/.config/iop-dev-corp/vllm-gemma4.env
|
|
env_file_contains_secret: true
|
|
image: vllm/vllm-openai:v0.24.0
|
|
container_port: 8004
|
|
host_port: 8004
|
|
package_baseline:
|
|
vllm: 0.24.0
|
|
torch: 2.11.0+cu130
|
|
transformers: 5.12.1
|
|
flashinfer_python: 0.6.12
|
|
huggingface_hub: 1.21.0
|
|
args:
|
|
env:
|
|
VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE: "4194304"
|
|
gpu_memory_utilization: 0.40
|
|
max_model_len: 262144
|
|
max_num_seqs: 4
|
|
enforce_eager: true
|
|
skip_mm_profiling: true
|
|
limit_mm_per_prompt:
|
|
image: 0
|
|
video: 0
|
|
mm_processor_cache_gb: 0
|
|
text_only_mode: true
|
|
enable_auto_tool_choice: true
|
|
tool_call_parser: gemma4
|
|
chat_template: /vllm-workspace/examples/tool_chat_template_gemma4.jinja
|
|
reasoning_parser: gemma4
|
|
max_num_batched_tokens: auto_2496
|
|
max_num_batched_tokens_note: vLLM raised the default from 2048 to 2496 for the Gemma4 prefix-LM/video path; it is a scheduler iteration budget, not the total KV cache size
|
|
context_window_max: 262144
|
|
kv_size_tokens_effective: 1452069
|
|
full_context_concurrency_observed: 5.54
|
|
default_chat_template_kwargs:
|
|
enable_thinking: true
|
|
|
|
- id: corp-mac-studio-mlx-vllm-node
|
|
alias: corp-mac-studio-mlx-vllm
|
|
role: vllm-mlx-provider
|
|
ssh: dc_dev@192.168.2.3
|
|
ssh_origin: mac-mini
|
|
workspace: /Users/dc_dev
|
|
provider_pool_candidate: true
|
|
provider:
|
|
id: corp-mac-studio-mlx-vllm
|
|
type: openai_compat
|
|
runtime_type: vllm-mlx
|
|
endpoint: http://192.168.2.3:8004/v1
|
|
edge_adapter_endpoint: http://127.0.0.1:8004/v1
|
|
health: http://192.168.2.3:8004/health
|
|
served_model: mlx-community/gemma-4-26b-a4b-it-nvfp4
|
|
capacity: 5
|
|
capacity_status: configured_health_passed_direct_smoke_and_edge_capacity_smoke
|
|
last_runtime_observation: screen vllm_mlx_8004 running with max_num_seqs 5, max_request_tokens 262144, max_kv_size 786432; node-local and mac-mini /health passed, /v1/models exposed mlx-community/gemma-4-26b-a4b-it-nvfp4, and direct concurrency 1..5 chat completion benchmark passed
|
|
capacity_basis: vllm-mlx --max-num-seqs 5 with requested KV 262144x3 mapped to --max-kv-size 786432
|
|
queue_timeout_ms: 0
|
|
request_timeout_ms: 1800000
|
|
runtime:
|
|
host: dc-devui-MacStudio.local
|
|
os: macOS 26.2
|
|
hardware: Apple M3 Ultra / 512GB RAM / 80-core GPU
|
|
manager: screen
|
|
manager_status: detached screen session vllm_mlx_8004; DYLD_LIBRARY_PATH=/opt/homebrew/opt/expat/lib is required for pyexpat on this host
|
|
screen_session: vllm_mlx_8004
|
|
start_script: /Users/dc_dev/iop-dev-corp-field/start_vllm_mlx_8004.sh
|
|
python: /Users/dc_dev/vllm-env/bin/python
|
|
package_baseline:
|
|
vllm_mlx: 0.3.0
|
|
mlx: 0.31.2
|
|
mlx_lm: 0.31.3
|
|
mlx_vlm: 0.6.3
|
|
torch: 2.12.1
|
|
transformers: 5.12.1
|
|
huggingface_hub: 1.20.1
|
|
args:
|
|
host: 0.0.0.0
|
|
port: 8004
|
|
continuous_batching: true
|
|
max_num_seqs: 5
|
|
prefill_batch_size: 5
|
|
completion_batch_size: 5
|
|
chunked_prefill_tokens: 1024
|
|
max_kv_size: 786432
|
|
max_request_tokens: 262144
|
|
context_window_max: 262144
|
|
kv_size_tokens_effective: 786432
|
|
enable_auto_tool_choice: true
|
|
tool_call_parser: gemma4
|
|
reasoning_parser: gemma4
|
|
default_chat_template_kwargs:
|
|
enable_thinking: true
|
|
secondary_provider_candidate:
|
|
id: corp-mac-studio-mlx-vlm-diffusiongemma
|
|
type: mlx-vlm
|
|
endpoint: http://192.168.2.3:8005/v1
|
|
health: http://192.168.2.3:8005/health
|
|
served_model: mlx-community/diffusiongemma-26B-A4B-it-OptiQ-4bit
|
|
include_in_default_pool: false
|
|
note: exposes multiple models and should be routed only after alias/capacity policy is decided
|