피드로 돌아가기
Dev.toAI/ML
원문 읽기
10µs의 오버헤드로 LLM 스트리밍 JSON 절단 문제를 해결하는 Suture 프록시
Why your LLM tool calls silently break — and a ~10µs fix
AI 요약
Context
LLM의 Tool Calls나 Structured Output 스트리밍 시 max_tokens 도달 또는 소켓 연결 끊김으로 인한 JSON 절단 현상 발생. 단순한 괄호 닫기 식의 보정은 trailing comma, partial scalar, UTF-8 멀티바이트 분절 등으로 인해 구문 오류를 유발하는 한계 존재.
Technical Solution
- Byte-level State Machine 도입을 통한 JSON prefix 상태 추적 및 유효한 닫는 구문 자동 생성
- Reverse Proxy 구조 설계를 통한 클라이언트 코드 수정 없는 base_url 변경만으로 적용 가능한 투명성 확보
- Append-only Passthrough 메커니즘을 통해 정상 이벤트는 그대로 전달하고 스트림 종료 시점에만 보정 델타 추가
- Content-aware 필터링을 적용하여 tool-args 등 JSON 포함 필드만 선별적으로 복구함으로써 일반 텍스트 훼손 방지
- Gzip, Brotli 등 압축 프로토콜 디코딩 후 복구 및 재인코딩을 수행하는 온더플라이 처리 파이프라인 구축
- AWS Bedrock의 SigV4 서명 방식을 지원하여 프록시 계층에서의 자격 증명 노출 위험 제거
실천 포인트
1. LLM 스트리밍 응답의 JSONDecodeError 빈도 확인
2. 단순 괄호 추가 로직 대신 Byte-level 상태 추적 라이브러리 검토
3. 복구 로직 도입 시 UTF-8 멀티바이트 절단 및 Trailing Comma 처리 여부 검증
4. 인프라 변경 최소화를 위한 Reverse Proxy 패턴 적용 가능성 검토