iop/agent-test/inventory-agent.yaml
toki 32c0754f91 refactor(inventory): 에이전트 host 프로필을 분리한다
환경별 노드와 provider runtime의 원본을 유지하면서 에이전트별 host 설정과 Pi 호환성 관측을 별도 인벤토리로 관리한다.
2026-08-02 11:06:54 +09:00

468 lines
23 KiB
YAML

inventory_id: inventory-agent
schema_version: 1
last_updated_at: "2026-08-02"
scope:
type: shared_agent_host_profiles
description: Agent-specific host configuration, observed defaults, and environment-scoped status. Node, provider, endpoint, workspace, and SSH details remain in the referenced environment inventory.
policy:
secret_values_tracked: false
host_connection_values_owned_by: environment_inventory
provider_runtime_source_of_truth: environment_inventory
agent_provider_compatibility_observations: allowed
node_reference_policy: reference_only
source_inventories:
common: agent-test/inventory.yaml
dev: agent-test/inventory-dev.yaml
dev-corp: agent-test/inventory-dev-corp.yaml
environments:
dev:
source_inventory: agent-test/inventory-dev.yaml
agents:
claude:
status: not_configured
note: No Claude host profile is recorded in the dev inventory.
codex:
status: node_reference_only
node_ref: mac-codex-node
note: The CLI adapter and MLX provider runtime remain owned by the referenced dev node inventory.
pi:
status: configured
host_binding: not_recorded
observed_at: "2026-07-24"
config_scope: host_local_pi_agent
config_dir: /config/.pi/agent
current_default_provider: iop
current_default_model: laguna-s:2.1
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
sampling_policy:
explicit_parameters: false
source: dev_laguna_provider_defaults
provider_default:
temperature: 0.7
top_p: 0.95
top_k: 20
omitted_fields:
- temperature
- top_p
- top_k
- repeat_penalty
note: Pi omits these fields and the selected GX10 Laguna provider applies the model baseline.
api_key_value_tracked: false
endpoint_policy: current default Pi route is IOP Edge provider iop with model laguna-s:2.1. Pi does not bypass Edge to the GX10 vLLM endpoint.
local_pi_providers_at_observation:
- iop
direct_providers_removed_at_observation:
- iop-gemma
- ornith-direct
- ornith-lemonade
iop_provider_models_at_observation:
- qwen3.6:35b
- ornith:35b
- ornith-fast
- laguna-s:2.1
pi_model_parameters:
provider: iop
model_id: laguna-s:2.1
display_name: IOP Poolside Laguna S 2.1
api: openai-completions
context_window: 262144
max_tokens: 65536
reasoning: true
thinking_level: high
thinking_format: chat-template
enable_thinking_source: thinking.enabled
preserve_thinking: true
current_laguna_parameter_alignment:
model_alias: laguna-s:2.1
pi_context_window: 262144
edge_context_window: 262144
pi_max_tokens: 65536
edge_default_max_tokens: 65536
pi_output_budget_within_edge_limit: true
edge_model_group_registered: true
edge_group_min_max_tokens: 0
gx10_edge_capacity: 4
gx10_long_context_capacity: 1
reasoning_parser: poolside_v1
tool_call_parser: poolside_v1
quantization: nvfp4
dflash_speculative_tokens: 7
chat_template_container_path: /run/iop/laguna-s-2.1-thinking.jinja
thinking_generation_prefix: "<think>\n"
note: The active GX10 runtime uses the official Laguna S 2.1 NVFP4 checkpoint and quantization-matched DFlash NVFP4 draft. Its local chat-template override adds a newline after the generation-prefix think tag so enabled requests do not immediately emit the closing think tag.
qwen_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: model_native_thinking
required_template_policy: Qwen providers keep default_chat_template_kwargs.enable_thinking=true
required_reasoning_parser: qwen3
engine_matrix:
previous_gx10-vllm:
status: historical_replaced_by_laguna_s_2_1
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 and default_chat_template_kwargs.enable_thinking=true
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 and default_chat_template_kwargs.enable_thinking=true
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
current_runtime_override_2026_07_12: OneXPlayer Lemonade was switched to Ornith-1.0-35B-GGUF-llamacpp-tp1-Q5_K_M for direct Ornith validation; it is not a valid Qwen provider-pool member until Edge provider config is updated.
context_match: Qwen should use the same Lemonade unified KV profile when re-enabled; keep total ctx_size 524288, omit -np, and pass --kv-unified to avoid the prior fixed 174848-token slot partitioning.
output_budget_match: pi maxTokens 32768 maps to load default_max_tokens 32768
thinking_match: pi reasoning=true and thinking_level=high uses model-native thinking; Lemonade load keeps MTP disabled and tool_choice_auto_verified=true
concurrency_match: provider capacity remains capped at 3 for IOP admission; with unified KV, Lemonade auto slots may report 4 runtime slots, so Edge admission must remain the concurrency guard.
tool_parser_profile: lemonade_qwen_tool_choice_auto_verified
qwen_reenable_profile:
status: applicable_not_reloaded_while_ornith_q5_is_active
ctx_size: 524288
llamacpp_args: "--spec-type none -cb -fa on -b 4096 -ub 1024 --kv-unified"
removed_args: "-np 3"
expected_slot_n_ctx: 262144
expected_capacity: 3
expected_long_context_capacity: 2
validation_basis: Same Lemonade llama.cpp backend and current Ornith Q5 runtime validated --kv-unified with auto slots reporting n_ctx 262144; Qwen still needs smoke validation after it is reloaded.
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.
provider_passthrough:
default: pure_passthrough
selector: none; request model/provider capability determines passthrough vs normalized execution
verification: Chat Completions streaming probe returned HTTP 200 through the provider tunnel with provider body preserved and no IOP response envelope injected.
previous_qwen_provider_pool_routing:
status: historical_gx10_and_onexplayer_no_longer_in_qwen_group
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: removed_from_pi_models_json_2026_07_12
api: openai-completions
base_url: http://192.168.0.91:8002/v1
served_model: nvidia/diffusiongemma-26B-A4B-it-NVFP4
reasoning: false
current_runtime_status: stopped_2026_07_12_endpoint_now_serves_laguna_s_2_1
spark_laguna_direct_profile:
observed_at: "2026-07-24"
provider: gx10-vllm
status: active_through_iop_edge
family: poolside_laguna
api: openai-completions
base_url: http://192.168.0.91:8001/v1
model_id: laguna-s:2.1
display_name: Poolside Laguna S 2.1 NVFP4
context_window: 262144
max_tokens: 65536
reasoning: true
endpoint_policy: Pi connects through IOP Edge under laguna-s:2.1 and does not use the direct GX10 endpoint.
api_key_value_tracked: false
pi_current_default_at_observation:
default_provider: iop
default_model: laguna-s:2.1
default_api: openai-completions
default_base_url: http://toki-labs.com:18083/v1
default_thinking_level: high
thinking_format: chat-template
enable_thinking_source: thinking.enabled
preserve_thinking: true
runtime_summary:
host: toki@192.168.0.91
container_name: iop-vllm-laguna-s21
docker_image: iop-vllm-laguna-s21:v0.25.1-cu130
docker_image_id: sha256:4eb2bb71c0ffc6ceb54dd3381030169f5e24ac1477fb1faa1ba90e57e6996331
vllm_version: 0.25.1
torch_version: 2.11.0+cu130
transformers_version: 5.12.1
compressed_tensors_version: 0.17.0
flashinfer_python_version: 0.6.15.dev20260712
gpu: NVIDIA GB10
endpoint: http://192.168.0.91:8001/v1
hf_model: poolside/Laguna-S-2.1-NVFP4
hf_url: https://huggingface.co/poolside/Laguna-S-2.1-NVFP4
hf_revision: 07614121b31898586430f189d27a25a0be310843
hf_cache_snapshot_path: /models/.cache/huggingface/hub/models--poolside--Laguna-S-2.1-NVFP4/snapshots/07614121b31898586430f189d27a25a0be310843
draft_model: poolside/Laguna-S-2.1-DFlash-NVFP4
draft_url: https://huggingface.co/poolside/Laguna-S-2.1-DFlash-NVFP4
draft_revision: 723794750422b3efbf3a7b3af76dffb4ba035943
served_model_name: laguna-s:2.1
quantization: nvfp4
vllm_quantization_backend: compressed-tensors
dtype: bfloat16
max_model_len: 262144
max_num_seqs: 4
gpu_memory_utilization: 0.70
enable_prefix_caching: true
enable_chunked_prefill: true
enable_auto_tool_choice: true
tool_call_parser: poolside_v1
reasoning_parser: poolside_v1
chat_template_host_path: /home/toki/iop-gx10-vllm/laguna-s-2.1-thinking.jinja
chat_template_container_path: /run/iop/laguna-s-2.1-thinking.jinja
thinking_generation_prefix: "<think>\n"
default_chat_template_kwargs:
enable_thinking: true
generation_config_override:
temperature: 0.7
top_p: 0.95
speculative_config:
method: dflash
num_speculative_tokens: 7
model: poolside/Laguna-S-2.1-DFlash-NVFP4
attention_backend: FLASHINFER
kv_cache_dtype: float8_e4m3fn
available_kv_cache_memory_gib: 13.08
gpu_kv_cache_tokens: 373711
max_concurrency_for_262144_token_requests: 1.43
docker_runtime:
recreated_at: "2026-07-24"
host_port: 8001
container_port: 8000
network_mode: bridge
ipc_mode: host
restart_policy: "no"
bind_mounts:
/home/toki/Data/models: /models
/home/toki/Data/vllm/cache/laguna-s21: /root/.cache
/home/toki/iop-gx10-vllm/laguna-s-2.1-thinking.jinja: /run/iop/laguna-s-2.1-thinking.jinja
smoke:
direct_models: passed
direct_chat_completions: passed
edge_chat_completions: passed
pi_agentic_tool_reasoning_stream: passed
reasoning_field: reasoning
pi_high_result: thinking_start, thinking_delta, and thinking_end observed
pi_off_result: no thinking event and final text observed
simple_no_tool_reasoning_note: The previous stock generation prefix closed the think block immediately. The current local template uses a trailing newline and a simple Pi high request emits a non-empty thinking block.
previous_spark_ornith_direct_profile:
observed_at: "2026-07-12"
provider: ornith-direct
status: historical_runtime_replaced_by_laguna_s_2_1
family: spark_ornith
api: openai-completions
base_url: http://192.168.0.91:8001/v1
model_id: ornith:35b
display_name: Ornith 1.0 35B FP8 Direct vLLM
context_window: 262144
max_tokens: 32768
reasoning: true
endpoint_policy: Historical observation only. The endpoint now serves laguna-s:2.1 through IOP Edge.
api_key_value_tracked: false
pi_current_default_at_observation:
default_provider: iop
default_model: ornith:35b
default_api: openai-completions
default_base_url: http://toki-labs.com:18083/v1
qwen_parameter_alignment:
pi_context_window: 262144
pi_max_tokens: 32768
context_match: matches the dev Qwen Pi contextWindow and vLLM max_model_len value
output_budget_match: matches the dev Qwen Pi maxTokens/default_max_tokens value
runtime_summary:
host: toki@192.168.0.91
container_name: iop-vllm-ornith35b-fp8
docker_image: vllm/vllm-openai:nightly-aarch64
docker_image_id: sha256:a720df3e84a89d7db47a3b7a0511cb5b312e203fc4956f7493df248299267a6f
vllm_image_tag_env: vllm/vllm-openai:nightly-a346d589f5932d4234bf5bf8718f10e26d187021
vllm_version: 0.23.1rc1.dev223+ga346d589f
vllm_build_commit: a346d589f5932d4234bf5bf8718f10e26d187021
vllm_build_url: https://buildkite.com/vllm/release-v2/builds/2923
torch_version: 2.11.0+cu130
transformers_version: 5.12.1
compressed_tensors_version: 0.17.0
flashinfer_python_version: 0.6.12
cuda_version_env: 13.0.2
gpu: NVIDIA GB10
nvidia_driver_version: 580.126.09
endpoint: http://192.168.0.91:8001/v1
hf_model: deepreinforce-ai/Ornith-1.0-35B-FP8
hf_url: https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B-FP8
hf_revision: 1ab57ce0b44950e498a88756f40ad1ed4d0f30ca
hf_ref: main
revision_argument: not_set_uses_repo_default_main_at_container_start
tokenizer_revision_argument: not_set_uses_model_revision
hf_home: /models/.cache/huggingface
hf_cache_snapshot_path: /models/.cache/huggingface/hub/models--deepreinforce-ai--Ornith-1.0-35B-FP8/snapshots/1ab57ce0b44950e498a88756f40ad1ed4d0f30ca
served_model_name: ornith:35b
openai_models_root: deepreinforce-ai/Ornith-1.0-35B-FP8
openai_models_max_model_len: 262144
quantization: fp8
vllm_quantization_backend: compressed-tensors
model_type: qwen3_5_moe
model_architecture: Qwen3_5MoeForConditionalGeneration
quantization_config_source: model config.json compressed-tensors W8A8 FP8, weight channel strategy, input activation token strategy, linear_attn/embed/lm_head/shared gates ignored
dtype: bfloat16
max_model_len: 262144
max_num_seqs: 4
max_num_batched_tokens: vllm_default_not_overridden
gpu_memory_utilization: 0.50
enable_prefix_caching: true
enable_chunked_prefill: true
async_scheduling: true
tensor_parallel_size: 1
pipeline_parallel_size: 1
data_parallel_size: 1
load_format: auto
download_dir: null
kv_cache_dtype: auto
enforce_eager: false
seed: 0
enable_auto_tool_choice: true
tool_call_parser: qwen3_xml
reasoning_parser: qwen3
reasoning_parser_enable_in_reasoning: false
trust_remote_code: true
language_model_only: true
attention_backend: FLASH_ATTN
sampling_backend: FlashInfer top-p/top-k
fp8_linear_kernel: CutlassFP8ScaledMMLinearKernel for CompressedTensorsW8A8Fp8
fp8_moe_backend: TRITON
generation_config_override:
temperature: 0.6
top_k: 20
top_p: 0.95
eos_token_id:
- 248046
- 248044
bos_token_id: 248044
docker_runtime:
created_at: "2026-07-12T08:41:04Z"
entrypoint:
- vllm
- serve
container_port: 8000
host_port: 8001
network_mode: bridge
ipc_mode: private
shm_size_bytes: 67108864
restart_policy: "no"
gpu_device_request: all
bind_mounts:
/home/toki/Data/models: /models
/home/toki/Data/vllm/templates: /templates
model_load_memory_gib: 34.43
model_load_seconds: 196.929359
weight_download_seconds: not_observed_cache_hit_restart
cuda_graph_memory_estimated_gib: 0.13
cuda_graph_pool_memory_actual_gib: 0.07
available_kv_cache_memory_gib: 20.79
gpu_kv_cache_tokens: 1060912
max_concurrency_for_262144_token_requests: 4.05
startup_warnings:
- vLLM command does not pin --revision; the recorded hf_revision is the downloaded snapshot observed in cache.
- Prefix caching in Mamba cache align mode is experimental for this architecture.
- Default MoE config for NVIDIA_GB10 FP8 was not found; vLLM used default MoE config, which may affect performance.
- Model generation_config overrides vLLM defaults unless callers provide sampling params or vLLM is relaunched with --generation-config vllm.
official_4bit_gguf_status:
hf_model: deepreinforce-ai/Ornith-1.0-35B-GGUF
hf_url: https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B-GGUF
hf_revision: c2e1703039380de4ce6820e97afd185682d3c16c
hf_ref: main
hf_cache_snapshot_path: /models/.cache/huggingface/hub/models--deepreinforce-ai--Ornith-1.0-35B-GGUF/snapshots/c2e1703039380de4ce6820e97afd185682d3c16c
file: ornith-1.0-35b-Q4_K_M.gguf
status: not_active
reason: current vLLM GGUF plugin path exposed /v1/models but failed semantic generation smoke; active working runtime uses the official FP8 vLLM model instead.
smoke:
english_final_answer: passed
korean_final_answer: passed
pi_direct_cli: passed
output_throughput:
method: completion_tokens divided by end-to-end request wall time, max_tokens=768
average_completion_tok_s: 29.8
run_completion_tok_s:
- 29.65
- 30.62
- 29.15
note: vLLM logs showed aggregate generation throughput around 50-61 tok/s with two running requests.
ornith_lemonade_direct_profile:
observed_at: "2026-07-12"
provider: ornith-lemonade
status: removed_from_pi_models_json_2026_07_12_runtime_still_active_as_onexplayer_iop_ornith_provider
family: spark_ornith
api: openai-completions
base_url: http://192.168.0.59:13305/v1
model_id: Ornith-1.0-35B-GGUF-llamacpp-tp1-Q5_K_M
display_name: Ornith 1.0 35B Q5 Direct Lemonade
context_window: 262144
max_tokens: 32768
reasoning: true
config_file: /config/.pi/agent/models.json
default_profile_changed: true
pi_default_provider_after_add: iop
pi_default_model_after_add: ornith:35b
endpoint_policy: Pi no longer connects directly to the OneXPlayer Lemonade OpenAI-compatible endpoint. This runtime remains reachable through IOP Edge under ornith:35b.
api_key_value_tracked: false
runtime_alignment:
lemonade_runtime_model: Ornith-1.0-35B-GGUF-llamacpp-tp1-Q5_K_M
lemonade_response_model: ornith-1.0-35b-Q5_K_M.gguf
quantization: Q5_K_M
ctx_size: 524288
kv_policy: unified_kv_with_np_omitted
observed_slot_n_ctx: 262144
iop_capacity_guard: 3
long_context_capacity: 2
smoke:
endpoint_direct_chat_completions: passed
request_model: Ornith-1.0-35B-GGUF-llamacpp-tp1-Q5_K_M
response_model: ornith-1.0-35b-Q5_K_M.gguf
finish_reason: stop
content: "4"
completion_tokens: 2
separation_note: The host Pi default is Laguna S 2.1 through IOP Edge. Keep Laguna, Qwen, Ornith, and dev-corp Gemma parser/template/runtime settings separate.
agy:
status: not_configured
note: No agy host profile is recorded in the dev inventory.
dev-corp:
source_inventory: agent-test/inventory-dev-corp.yaml
agents:
claude:
status: not_configured
codex:
status: not_configured
pi:
status: not_configured
agy:
status: not_configured