feat(grpc): add RL lifecycle control - #22
Draft
connorcarpenter15 wants to merge 4 commits into
Draft
Conversation
Signed-off-by: Connor Carpenter <connorc@nvidia.com>
Signed-off-by: Connor Carpenter <connorc@nvidia.com>
Signed-off-by: Connor Carpenter <connorc@nvidia.com>
Signed-off-by: Connor Carpenter <connorc@nvidia.com>
This was referenced Aug 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
vllm.ControlgRPC service with pause/resume, sleep/wake, weight-transfer lifecycle, and weight-version RPCs.Why this change
The Rust frontend currently exposes inference and discovery over gRPC, but Dynamo's Rust vLLM sidecar cannot drive the RL lifecycle without falling back to the separate development HTTP server. These RPCs provide the native control path needed for trusted sidecars while preserving vLLM's existing engine-core and worker APIs.
Companion Dynamo sidecar integration: connorcarpenter15/dynamo#9.
Duplicate search
I searched open vLLM pull requests by title and body for RL, RLHF, gRPC Control, pause generation, weight transfer, and weight version. I did not find an open PR implementing this RL control surface. vllm-project#48033 provides the underlying Rust gRPC frontend and vllm-project#51178 adds explicit data-parallel routing; this change builds on the former and deliberately leaves protobuf field 10 available for the latter rather than duplicating either PR.
Validation
cargo check -p vllm-server -p vllm-engine-core-client— passed.cargo fmt --all -- --check— passed.cargo +1.96.1 clippy -p vllm-server -p vllm-engine-core-client --all-targets -- -D warnings— passed. The repository-pinned Rust 1.95 toolchain did not have its Clippy component installed, so the installed newer toolchain was used.cargo test -p vllm-server grpc::tests::control_ -- --nocapture— passed, 5 tests.LD_LIBRARY_PATH=/nix/store/si4q3zks5mn5jhzzyri9hhd3cv789vlm-gcc-15.2.0-lib/lib cargo test -p vllm-engine-core-client python_msgpack_fixtures_match_rust_encoding -- --nocapture— passed, 1 test.UV_CACHE_DIR=/tmp/vllm-rl-uv-cache uv run --no-sync python -m compileall -q vllm/v1/engine— passed.uv run --no-sync python -m pytest tests/v1/engine/test_engine_core_client.py -q— not run because the fresh local uv environment did not contain pytest.Model evals
Not run. This is a control-plane/protocol change and does not alter inference numerics; engine-core wire behavior is covered with scripted mock-engine tests.
AI assistance disclosure
This implementation was prepared with OpenAI Codex assistance. A human reviewer must review every line of the change before merge.