diff --git a/agent-test/dev/edge-smoke.md b/agent-test/dev/edge-smoke.md index dd26d92..3a354c3 100644 --- a/agent-test/dev/edge-smoke.md +++ b/agent-test/dev/edge-smoke.md @@ -3,7 +3,7 @@ test_env: dev test_profile: edge-smoke domain: edge verification_type: smoke -last_rule_updated_at: 2026-07-04 +last_rule_updated_at: 2026-07-09 --- # edge-smoke dev 테스트 @@ -52,6 +52,8 @@ dev-runtime provider pool과 3-node 연결 상태를 점검할 때는 `agent-tes - Edge OpenAI-compatible base URL: `http://toki-labs.com:18083/v1` - Edge-Node TCP transport: `toki-labs.com:18084` - model alias: `qwen3.6:35b` +- host Pi default profile: `agent-test/dev/inventory.yaml`의 `model.pi_agent_profile` 기준. 현재 기본 provider/model/thinking level은 `iop` / `qwen3.6:35b` / `high`이며, Chat Completions 기본 response mode는 `metadata.iop_response_mode` 생략에 따른 pure `passthrough`다. Endpoint 값은 바뀔 수 있으므로 Pi 최적화/호환성 판단은 `model.pi_agent_profile.runtime_parameter_alignment`의 Qwen3.6 alias, context/max token, reasoning/template/parser, engine별 capacity 매칭을 기준으로 한다. +- provider/model separation: host Pi의 non-default direct provider와 dev-corp `gemma4:26b` profile은 dev Qwen3.6 provider-pool 판정 근거로 섞지 않는다. 노드 후보: diff --git a/agent-test/dev/inventory.yaml b/agent-test/dev/inventory.yaml index 14942f0..894544c 100644 --- a/agent-test/dev/inventory.yaml +++ b/agent-test/dev/inventory.yaml @@ -1,6 +1,6 @@ test_env: dev profile: dev-runtime-provider-pool -last_updated_at: "2026-07-08" +last_updated_at: "2026-07-09" source: remote_runner: @@ -52,6 +52,106 @@ model: enable_thinking: true tool_call_parser_status: validate tools[] non-stream and streaming responses before enabling this provider for Pi/Cline-style agent tool use separation_note: do not copy dev-corp Gemma parser/template values such as tool_call_parser=gemma4, reasoning_parser=gemma4, or Gemma4 chat templates into Qwen providers + pi_agent_profile: + observed_at: "2026-07-09" + config_scope: host_local_pi_agent + config_dir: /config/.pi/agent + current_default_provider: iop + current_default_model: qwen3.6:35b + current_default_thinking_level: high + current_default_api: openai-completions + current_default_base_url: http://toki-labs.com:18083/v1 + current_default_auth_header: true + api_key_value_tracked: false + endpoint_policy: current_default_base_url is the observed route for this host Pi profile, but optimization compatibility is determined by the Qwen3.6 model alias, context/output limits, reasoning policy, and provider runtime settings rather than by the endpoint literal alone. + pi_model_parameters: + provider: iop + model_id: qwen3.6:35b + display_name: IOP Qwen 3.6 35B + api: openai-completions + context_window: 262144 + max_tokens: 32768 + reasoning: true + thinking_level: high + expected_iop_thinking_token_budget: 1024 + runtime_parameter_alignment: + alignment_policy: Pi model parameters must be kept in sync with the Edge model catalog and each provider runtime profile. Do not optimize or debug Pi behavior from the endpoint URL alone; verify the alias-to-served-model mapping, context window, max token budget, thinking/reasoning parser, chat template kwargs, and provider capacity/sequence limits together. + common_requirements: + model_alias: qwen3.6:35b + pi_context_window: 262144 + edge_context_window: 262144 + pi_max_tokens: 32768 + edge_default_max_tokens: 32768 + edge_min_max_tokens: 32768 + pi_reasoning: true + edge_reasoning_policy: bounded_thinking + edge_default_thinking_token_budget: 1024 + required_template_policy: Qwen providers keep default_chat_template_kwargs.enable_thinking=true + required_reasoning_parser: qwen3 + engine_matrix: + gx10-vllm: + runtime_type: vllm + served_model: nvidia/Qwen3.6-35B-A3B-NVFP4 + context_match: pi contextWindow 262144 maps to vLLM max_model_len 262144 + output_budget_match: pi maxTokens 32768 maps to provider default_max_tokens 32768 + thinking_match: pi reasoning=true and thinking_level=high map to reasoning_parser=qwen3, default_chat_template_kwargs.enable_thinking=true, and IOP thinking token budget 1024 + concurrency_match: provider capacity 4 maps to runtime max_num_seqs 4 + tool_parser_profile: qwen3_xml + mac-mlx-vllm: + runtime_type: vllm-mlx + served_model: mlx-community/Qwen3.6-35B-A3B-4bit + context_match: pi contextWindow 262144 maps to vLLM-MLX max_request_tokens 262144 and max_kv_size 262144 + output_budget_match: pi maxTokens 32768 maps to provider default_max_tokens 32768 + thinking_match: pi reasoning=true and thinking_level=high map to reasoning_parser=qwen3, default_chat_template_kwargs.enable_thinking=true, and IOP thinking token budget 1024 + concurrency_match: provider capacity 2 maps to runtime max_num_seqs 2 + tool_parser_profile: qwen + onexplayer-lemonade: + runtime_type: lemonade + served_model: Qwen3.6-35B-A3B-MTP-GGUF + context_match: pi contextWindow 262144 is admitted within Lemonade ctx_size 524288 and current slot n_ctx 174848 x 3; long_context_capacity remains 2 + output_budget_match: pi maxTokens 32768 maps to load default_max_tokens 32768 + thinking_match: pi reasoning=true and thinking_level=high map to IOP bounded thinking budget 1024; Lemonade load keeps MTP disabled and tool_choice_auto_verified=true + concurrency_match: provider capacity 3 maps to Lemonade -np 3 + tool_parser_profile: lemonade_qwen_tool_choice_auto_verified + separation_note: These alignment rules are for the dev Qwen3.6 provider pool only. Gemma4 and DiffusionGemma use separate provider/model profiles and must not inherit Qwen parser/template/context assumptions. + response_mode: + default: pure_passthrough + selector: metadata.iop_response_mode omitted or passthrough + verification: Chat Completions streaming probe returned HTTP 200 with no X-IOP-Response-Mode header and no iop.sideband marker; the same endpoint with metadata.iop_response_mode=passthrough+sideband returned X-IOP-Response-Mode=passthrough+sideband and iop.sideband, confirming mode separation. + provider_pool_routing: + observed_at: "2026-07-09" + caller_shape: Pi-compatible OpenAI Chat Completions streaming requests to provider/model iop/qwen3.6:35b + concurrent_requests: 10 + peak_total_in_flight: 9 + peak_total_queued_snapshot_units: 3 + final_recovery: in_flight_0_queued_0 + provider_peaks: + gx10-vllm: + runtime_type: vllm + served_model: nvidia/Qwen3.6-35B-A3B-NVFP4 + capacity: 4 + max_in_flight: 4 + max_queued: 1 + mac-mlx-vllm: + runtime_type: vllm-mlx + served_model: mlx-community/Qwen3.6-35B-A3B-4bit + capacity: 2 + max_in_flight: 2 + max_queued: 1 + onexplayer-lemonade: + runtime_type: lemonade + served_model: Qwen3.6-35B-A3B-MTP-GGUF + capacity: 3 + max_in_flight: 3 + max_queued: 1 + non_default_local_provider: + provider: iop-gemma + status: separate_direct_provider_not_part_of_dev_qwen_provider_pool + api: openai-completions + base_url: http://192.168.0.91:8002/v1 + served_model: nvidia/diffusiongemma-26B-A4B-it-NVFP4 + reasoning: false + separation_note: This host Pi default profile is the dev Qwen3.6 provider-pool profile. Keep dev-corp Gemma4 under agent-test/dev-corp/inventory.yaml and do not copy Gemma4 parser/template/runtime settings into this Qwen profile. content_completion_policy: enforce_min_max_tokens: true reason: prevent reasoning-only completions from exhausting caller max_tokens before final content