클로드 CLI v2.1.154, 로컬 vLLM 중단 — 한 줄 패치로 해결

Claude CLI v2.1.154는 워크플로우 지원을 도입했지만, 그 과정에서 세 가지 새로운 API 메시지 역할(ctx, msg, system)을 추가하여 로컬 vLLM 서버와의 호환성을 깨뜨렸습니다. 해결책은 vLLM의 Anthropic 프로토콜 정의에 한 줄을 변경하는 것입니다.
문제점
Claude CLI 버전 ≥2.1.154부터는 user와 assistant 외의 역할이 포함된 메시지를 전송합니다. vLLM의 Anthropic API 엔드포인트는 기존 두 역할만 허용했기 때문에, 로컬 vLLM 인스턴스를 가리키는 CLI 요청이 실패했습니다.
한 줄 패치
패치는 vllm/entrypoints/anthropic/protocol.py의 role 필드를 업데이트하여 새 역할을 허용합니다:
--- a/vllm/entrypoints/anthropic/protocol.py
+++ b/vllm/entrypoints/anthropic/protocol.py
@@ -65,7 +65,7 @@ class AnthropicContentBlock(BaseModel):
class AnthropicMessage(BaseModel):
"""메시지 구조"""
- role: Literal["user", "assistant"]
+ role: Literal["user", "assistant", "ctx", "msg", "system"]이게 전부입니다. 이 변경 사항을 적용한 후에는 최신 Claude CLI 워크플로우를 MiniMax-M2.7(저자가 테스트한 유일한 모델)과 같은 vLLM 기반 로컬 모델에서 사용할 수 있습니다.
vLLM에서 로컬 Anthropic 호환 엔드포인트를 실행 중이라면, 이 패치를 적용하여 Claude CLI ≥2.1.154에서 계속 작동하도록 하세요.
📖 전체 소스 읽기: r/LocalLLaMA
👀 See Also

레딧 사용자의 Claude Code 사용을 위한 10가지 실용적인 팁
레딧 사용자가 클로드 코드를 위한 구체적인 기술을 공유합니다. 여기에는 확장된 사고를 위한 '울트라씽크'와 함께 /effort high 사용하기, /fork로 독립된 대화 분기 생성하기, .claude/settings.json에서 커스텀 훅 설정하기 등이 포함됩니다.

컨텍스트를 별도 파일로 분할하여 Claude의 일관성을 높인 방법
Reddit 사용자가 Claude를 위한 실용적인 설정을 공유합니다: 컨텍스트를 about-me.md, my-voice.md, my-rules.md 파일로 분할하고, 먼저 계획을 세운 후 실행하는 흐름을 사용하며, 작업에 따라 모델을 전환하고, 완벽한 프롬프트 대신 피드백을 제공합니다.

AI로 10만 줄의 러스트 코드 작성: 계약, 명세 기반 개발, 그리고 성능
Cheng Huang는 AI 에이전트로 Rust 멀티팍소스 엔진을 구축하여 초당 30만 작업을 달성했습니다. 핵심 기술: AI가 작성한 코드 계약, 경량 스펙 주도 개발, 공격적 최적화.

코드 작성 전 클로드 코드로 하는 프리코딩 루틴: 5가지 MCP 서버
한 개발자가 5개의 MCP 서버(메모리, 코드베이스 그래프, Tavily 검색, Context7 문서)와 안전 후크를 사용하여 환각과 불필요한 수정을 극적으로 줄이는 60-90초 루틴을 공유합니다.