This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
backendcritical PriorityID: vllm-inference-high-throughput

vLLM Production Inference Serving & PagedAttention Optimization

Production deployment standard for open-weights LLMs (Llama 3, Mistral, Qwen 2.5) using vLLM. Enforces PagedAttention VRAM management, continuous request batching, prefix caching, and tensor-parallel scaling to maximize token throughput.

Prohibited Anti-Pattern: AI writes synchronous HuggingFace pipeline() loops in FastAPI servers, blocking concurrent GPU requests.

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: vLLM Production Inference Serving & PagedAttention Optimization - Production deployment standard for open-weights LLMs (Llama 3, Mistral, Qwen 2.5) using vLLM. Enforces PagedAttention VRAM management, continuous request batching, prefix caching, and tensor-parallel scaling to maximize token throughput.
globs: **/*vllm*.py, **/*model_server*.py, Dockerfile*vllm*
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/vllm-inference-high-throughput"
---

# vLLM Production Inference Serving & PagedAttention Optimization

> **Severity**: CRITICAL | **Category**: backend
> **Anti-Pattern Warning**: AI writes synchronous HuggingFace pipeline() loops in FastAPI servers, blocking concurrent GPU requests.

## System Constraints
You are a GPU infrastructure and LLM serving engineer. In production model serving, NEVER use vanilla HuggingFace pipeline() or AutoModelForCausalLM in web servers. Use vLLM AsyncLLMEngine with continuous batching, set gpu_memory_utilization accurately (0.90), enable enable_prefix_caching=True, and match tensor_parallel_size to physical GPU count.

## Strict Guidelines
- Use AsyncLLMEngine for asynchronous HTTP/gRPC server integrations; do not use the synchronous LLM offline runner in web processes.
- Set gpu_memory_utilization explicitly (typically 0.85-0.92) and configure max_model_len to prevent out-of-memory (OOM) allocation crashes.
- Enable enable_prefix_caching=True to reuse KV caches across shared system prompts and multi-turn conversations.
- Configure tensor_parallel_size equal to the number of available GPUs connected via NVLink; ensure Ray or PyTorch distributed backend is configured.

## Bad vs Good Implementations
### vLLM AsyncLLMEngine Continuous Batching vs Blocking HuggingFace Pipeline

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Lacks continuous batching and PagedAttention, resulting in ~5 tokens/sec system throughput and frequent out-of-memory faults.
```python
# ANTI-PATTERN: Synchronous HuggingFace pipeline blocks the entire Python event loop!
from transformers import pipeline
pipe = pipeline("text-generation", model="meta-llama/Llama-3.1-8B-Instruct", device="cuda:0")
@app.post("/chat")
def chat(prompt: str):
    output = pipe(prompt, max_new_tokens=256) # Blocks all requests!
    return output[0]["generated_text"]
```

#### Production Standard (Correct)
> **Standard**: PagedAttention eliminates KV cache memory fragmentation, enabling 10x-20x higher concurrent request throughput per GPU.
```python
# PRODUCTION STANDARD: vLLM AsyncLLMEngine with Continuous Batching
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from vllm.engine.async_llm_engine import AsyncLLMEngine
from vllm.engine.arg_utils import AsyncEngineArgs
from vllm.sampling_params import SamplingParams

engine = AsyncLLMEngine.from_engine_args(AsyncEngineArgs(
    model="meta-llama/Llama-3.1-8B-Instruct",
    gpu_memory_utilization=0.90,
    enable_prefix_caching=True,
))

@app.post("/chat")
async def stream_chat(prompt: str):
    results = engine.generate(prompt, SamplingParams(temperature=0.7), request_id=str(uuid.uuid4()))
    async def stream():
        prev = ""
        async for out in results:
            delta = out.outputs[0].text[len(prev):]
            prev = out.outputs[0].text
            yield delta
    return StreamingResponse(stream())
```

### Production Docker Entrypoint for vLLM Server

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Misses tensor parallelism, prefix caching, and OpenAI-compatible API schemas.
```bash
# ANTI-PATTERN: Running unconstrained single-thread model server
python -m transformers.serve --model llama3
```

#### Production Standard (Correct)
> **Standard**: Deploys a drop-in OpenAI-compatible inference server scaled across 4 GPUs with automatic continuous batching.
```bash
# PRODUCTION STANDARD: Optimized vLLM CLI deployment
python3 -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --tensor-parallel-size 4 \
  --gpu-memory-utilization 0.92 \
  --enable-prefix_caching \
  --port 8000
```

Recommended MCP Servers (mcp-serverlist.com)

Equip agent with system tools to verify code for this stack.

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: vLLM Production Inference Serving & PagedAttention Optimization

vLLM Production Inference Serving & PagedAttention Optimization defines an industrial-grade behavioral standard for backend engineering. Production deployment standard for open-weights LLMs (Llama 3, Mistral, Qwen 2.5) using vLLM. Enforces PagedAttention VRAM management, continuous request batching, prefix caching, and tensor-parallel scaling to maximize token throughput. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: AI writes synchronous HuggingFace pipeline() loops in FastAPI servers, blocking concurrent GPU requests. Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftAI writes synchronous HuggingFace pipeline() loops in FastAPI servers, blocking concurrent GPU requests.Critical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Use AsyncLLMEngine for asynchronous HTTP/gRPC server integrations

Use AsyncLLMEngine for asynchronous HTTP/gRPC server integrations; do not use the synchronous LLM offline runner in web processes.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Set gpu_memory_utilization explicitly (typically 0.85-0.92) and configure max_model_len to prevent out-of-memory (OOM) allocation crashes.

Set gpu_memory_utilization explicitly (typically 0.85-0.92) and configure max_model_len to prevent out-of-memory (OOM) allocation crashes.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Enable enable_prefix_caching=True to reuse KV caches across shared system prompts and multi-turn conversations.

Enable enable_prefix_caching=True to reuse KV caches across shared system prompts and multi-turn conversations.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Configure tensor_parallel_size equal to the number of available GPUs connected via NVLink

Configure tensor_parallel_size equal to the number of available GPUs connected via NVLink; ensure Ray or PyTorch distributed backend is configured.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is vLLM Production Inference Serving & PagedAttention Optimization critical for AI coding assistants?

Production deployment standard for open-weights LLMs (Llama 3, Mistral, Qwen 2.5) using vLLM. Enforces PagedAttention VRAM management, continuous request batching, prefix caching, and tensor-parallel scaling to maximize token throughput. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (AI writes synchronous HuggingFace pipeline() loops in FastAPI servers, blocking concurrent GPU requests.) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

vLLM