Skip to content

MAF-20668: docs(skills): correct the KV cache events guidance in guide-odin - #174

Merged
seongsu-dev merged 2 commits into
mainfrom
MAF-20668-retire-inferencepool-guide
Aug 18, 2026
Merged

MAF-20668: docs(skills): correct the KV cache events guidance in guide-odin#174
seongsu-dev merged 2 commits into
mainfrom
MAF-20668-retire-inferencepool-guide

Conversation

@seongsu-dev

Copy link
Copy Markdown
Contributor

Summary

Four claims in skills/guide-odin/SKILL.md had gone stale against the runtime-bases they describe. Verified against moreh-dev/moai-inference-preset, which odin's preset-distribution PRD names as the source of truth for presets:

# ISVC_ENABLE_PREFIX_CACHE turns on the engine prefix cache and KV
# cache events. No explicit endpoint: vLLM offsets the KV-events
# port by data_parallel_rank (tcp://*:5557 -> 5557+rank), and the
# heimdall sidecar subscribes at engine_kv_port+rank to match — so a
# constant config is per-rank-safe; a per-rank endpoint double-offsets.
Line Was Is
env table ISVC_USE_KV_EVENTS, default false ISVC_ENABLE_PREFIX_CACHE, default true (all four vllm runtime-bases: ${ISVC_ENABLE_PREFIX_CACHE:-true})
KV events section enable with ISVC_USE_KV_EVENTS: "true" on by default; the variable turns it off
KV events section "the current preset still resolves this ZMQ endpoint from inferencePoolRefs … the pod exits with an error if either is missing" no endpoint is set; vLLM offsets 5557 by data-parallel rank and the sidecar subscribes at the matching offset. Nothing else has to be set on the InferenceService
gateway binding aside "(The older inferencePoolRefs / InferencePool mechanism is deprecated; use the label.)" removed — the field is being taken out of the Odin API reference

ISVC_USE_KV_EVENTS and inferencePoolRef both return zero matches across the preset repository, which is indexed (a 5557 search returns the two DP runtime-bases).

The claim that the ZMQ topic embeds spec.model.name is dropped rather than reworded: nothing in the runtime-bases sets a topic, and I could not verify the format. An unverified format is worse than none.

Left in place deliberately

InferencePool still appears in three places that should keep it:

  • skills/guide-heimdall/evals/evals.json — a negative assertion, that the guide does not use InferencePool. Removing it removes a check.
  • website/blog/2025-11-11-…mdx — a dated post. Rewriting its manifests would falsify the record.
  • website/versioned_docs/version-v0.4.0/**, version-v0.5.0/** — frozen snapshots; website/AGENTS.md forbids editing them.

Not in this PR

website/docs/reference/odin/api-reference.mdx still carries the inferencePoolRefs row and its sub-table. That content sits inside an AUTO-GENERATED block, so hand-editing it would be overwritten on the next docs sync. The generator is being changed to leave out any field whose description opens a Deprecated: paragraph — odin's says the field "is ignored at runtime" — and the sync will remove the row and sub-table on its next run.

Test

skills/ is not part of the Docusaurus site, so no website build is involved.

…e-odin

Four claims in guide-odin had gone stale against the runtime-bases they describe.
The presets are distributed from moreh-dev/moai-inference-preset, and its four vllm
runtime-bases say:

    # ISVC_ENABLE_PREFIX_CACHE turns on the engine prefix cache and KV
    # cache events. No explicit endpoint: vLLM offsets the KV-events
    # port by data_parallel_rank (tcp://*:5557 -> 5557+rank), and the
    # heimdall sidecar subscribes at engine_kv_port+rank to match

So: the toggle is ISVC_ENABLE_PREFIX_CACHE and it defaults to true, not
ISVC_USE_KV_EVENTS defaulting to false; and the "legacy coupling" that required
inferencePoolRefs for KV events is gone — inferencePoolRefs appears nowhere in the
preset repository, so a pod no longer exits without it.

The guidance now describes the rank offset and why one constant configuration is
correct for every rank. The claim that the ZMQ topic embeds spec.model.name is
dropped rather than carried forward: nothing in the runtime-bases sets a topic, and
an unverified format is worse than none.

The aside pointing at inferencePoolRefs as the deprecated alternative goes too. The
field is being removed from the Odin API reference, so the guide no longer needs to
steer readers away from it.

Left in place deliberately: the eval assertion in guide-heimdall, which checks that
the guide does NOT use InferencePool; the 2025-11 blog post, a dated artifact; and
the versioned_docs snapshots, which AGENTS.md forbids editing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 18, 2026 12:58
@seongsu-dev
seongsu-dev requested a review from a team as a code owner August 18, 2026 12:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Odin guide skill documentation to reflect current vLLM runtime-base behavior for prefix cache + KV cache events, removing stale guidance around deprecated inferencePoolRefs-based configuration.

Changes:

  • Replaces ISVC_USE_KV_EVENTS with ISVC_ENABLE_PREFIX_CACHE (default true) in the environment variable table.
  • Updates the “KV cache events” section to document that KV events are on by default and can be disabled via ISVC_ENABLE_PREFIX_CACHE=false.
  • Removes the deprecated inferencePoolRefs / InferencePool aside from the AIGateway binding section.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread skills/guide-odin/SKILL.md Outdated
"`ISVC_ENABLE_PREFIX_CACHE` turns them off" reads as though setting the variable at
all disables the feature, whichever value it carries. The runtime-base tests
`[ "${ISVC_ENABLE_PREFIX_CACHE:-true}" = "true" ]`, so the value decides and an
unset variable leaves the feature on.

Names the value in the sentence, and adds that any value other than `true` disables
— a reader who sets "1" expecting it on would otherwise turn it off.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 18, 2026 13:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Suppressed comments (1)

skills/guide-odin/SKILL.md:535

  • In this section, “value is exactly true” could be misread as referring to a YAML boolean rather than the string value Kubernetes passes to the container. Since env.value is always a string, consider explicitly calling out that only the string "true" enables the feature, and that the default when unset is "true".
The runtime-base enables them only when the value is exactly `true`, so any other value disables them — leaving the variable unset is what keeps them on.

@seongsu-dev
seongsu-dev merged commit 52f1fbf into main Aug 18, 2026
4 checks passed
@seongsu-dev
seongsu-dev deleted the MAF-20668-retire-inferencepool-guide branch August 18, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants