From b44ac8299153987ab0ffd8ad8c4e6fc900bf02b7 Mon Sep 17 00:00:00 2001 From: toki Date: Wed, 8 Jul 2026 15:41:06 +0900 Subject: [PATCH] docs: update pi agent default provider and model for Mac Studio vLLM-MLX --- .../skills/project/dev-corp-runtime-deploy/SKILL.md | 2 +- agent-test/dev-corp/inventory.yaml | 11 +++-------- 2 files changed, 4 insertions(+), 9 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 24acc48..4304ffb 100644 --- a/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md +++ b/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md @@ -52,7 +52,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다. - DGX Spark 02 Docker image `vllm/vllm-openai:v0.24.0`의 entrypoint는 이미 `vllm serve`이다. container command에는 `serve`를 중복으로 넣지 말고 positional model `/models/gemma-4-26B-A4B-it-NVFP4`부터 둔다. 현재 Docker publish는 host `8004` -> container `8004` 기준이다. - Gemma4 tool-call/parser profile은 capacity/KV 튜닝과 별개로 agent 동작 가능성을 결정한다. DGX Spark 01은 `/home/digitalcommerce_dgx_spark_01/tool_chat_template_gemma4.jinja`, DGX Spark 02는 `/vllm-workspace/examples/tool_chat_template_gemma4.jinja`를 `--chat-template`로 사용하고, 둘 다 `--enforce-eager --skip-mm-profiling --limit-mm-per-prompt '{"image": 0, "video": 0}' --mm-processor-cache-gb 0 --enable-auto-tool-choice --tool-call-parser gemma4 --reasoning-parser gemma4 --default-chat-template-kwargs '{"enable_thinking":true}'`를 둔다. Mac Studio vLLM-MLX는 별도 chat template override 없이 `--continuous-batching --disable-prefix-cache --enable-auto-tool-choice --tool-call-parser gemma4 --reasoning-parser gemma4 --default-chat-template-kwargs '{"enable_thinking":true}'`를 둔다. - 모델별 parser/template 값은 섞지 않는다. Gemma 계열은 `tool_call_parser=gemma4`, `reasoning_parser=gemma4`, Gemma4 tool chat template 또는 vLLM-MLX 기본 template kwargs를 사용한다. Qwen 계열은 dev-runtime 문서의 `tool_call_parser=qwen`, `reasoning_parser=qwen3`, Qwen 전용 chat template 검증값을 따르며 Gemma4 parser/template을 재사용하지 않는다. -- Pi agent에서 Mac Studio vLLM-MLX를 검증할 때는 로컬 Pi 기본 provider를 바꾸지 말고 `--provider dev-corp-direct --model mlx-community/gemma-4-26b-a4b-it-nvfp4 --thinking high`처럼 명시 호출한다. Pi OpenAI-compatible compat는 `supportsStrictMode=true`, `thinkingFormat=chat-template`, `chatTemplateKwargs.enable_thinking=thinking.enabled` 기준이며, DGX Spark 01 vLLM은 `dev-corp-spark01` fallback으로 둔다. +- Pi agent 기본 경로는 Mac Studio vLLM-MLX provider인 `dev-corp-direct` / `mlx-community/gemma-4-26b-a4b-it-nvfp4` / thinking `high`로 저장한다. Pi OpenAI-compatible compat는 `supportsStrictMode=true`, `thinkingFormat=chat-template`, `chatTemplateKwargs.enable_thinking=thinking.enabled` 기준이며, DGX Spark 01 vLLM은 `dev-corp-spark01` fallback으로 둔다. - Mac Studio는 `DYLD_LIBRARY_PATH=/opt/homebrew/opt/expat/lib` 없이 Python `pyexpat` import가 실패할 수 있다. `screen` session `vllm_mlx_8004` 안에서 이 환경변수를 export한 뒤 시작한다. - 2026-07-08 재확인 기준 Mac Studio vLLM-MLX는 `/Users/dc_dev/vllm-env-0.4.0/bin/python` 환경의 `vllm-mlx=0.4.0`, `mlx=0.32.0`, `mlx-lm=0.31.3`, `mlx-vlm=0.6.4`, `transformers=5.12.1`, `huggingface-hub=1.22.0`로 동작한다. `--continuous-batching`은 유지하고 `--disable-prefix-cache`를 추가했으며, `/health`, `/v1/models`, 직접 API non-stream/stream auto tool-call, streaming multi-turn tool-result final answer, Pi `-p` tool-call, Pi TUI 초기 프롬프트 tool-call 로그 종료를 확인했다. - Mac Studio vLLM-MLX의 현 값은 "구동 가능한 최종 체크포인트"로 취급한다. 추가 미세 조정은 새 포트/새 venv 또는 명시적 rollback 지점을 둔 별도 실험으로만 수행하고, Spark 01/02 vLLM 설정이나 Pi 기본 provider/model을 함께 변경하지 않는다. 알려진 잔여 이슈는 Gemma4 thought channel delimiter가 최종 content에 누수될 수 있는 점이며, 이 경우 serving 옵션을 계속 흔들기보다 Pi extension/provider adapter에서 vLLM-MLX Gemma 전용 sanitizer로 containment 하는 방향을 우선 검토한다. diff --git a/agent-test/dev-corp/inventory.yaml b/agent-test/dev-corp/inventory.yaml index ed0be43..0db4465 100644 --- a/agent-test/dev-corp/inventory.yaml +++ b/agent-test/dev-corp/inventory.yaml @@ -67,15 +67,10 @@ model: strict_output_behavior: provider_pool_catalog_default_overrides_strict_disable adapter_mapping: vllm_and_vllm_mlx_use_chat_template_kwargs_enable_thinking_true pi_agent_profile: - current_default_provider: dev-corp-spark01 - current_default_served_model: gemma-4-26B-A4B-it-NVFP4 - current_default_runtime: dgx_spark_01_vllm + current_default_provider: dev-corp-direct + current_default_served_model: mlx-community/gemma-4-26b-a4b-it-nvfp4 + current_default_runtime: mac_studio_vllm_mlx thinking_level: high - explicit_vllm_mlx_test_profile: - provider: dev-corp-direct - served_model: mlx-community/gemma-4-26b-a4b-it-nvfp4 - runtime: mac_studio_vllm_mlx - thinking_level: high compat: supports_strict_mode: true thinking_format: chat-template