LocalAI 4.11.0이 10월 2일에 나왔습니다. 243개 PR, 353개 커밋, 15일 개발 기간의 큰 릴리즈입니다. 오디오 씬, failover, 운영 페이지가 잔뜩 들어있는데, 이 글은 하나만 봅니다. Decision Models와 /v1/systemone API.
어제 Strands Decider 글이 단일 모델 발표였다면, 오늘 보이는 더 큰 흐름은 decision model이 실제 inference 스택의 독립 primitive가 되고 있다는 것입니다.
뭐가 들어왔나: decisions는 선언하는 use case다
릴리즈 노트 기준으로 핵심만 추리면 이렇습니다.
| 항목 | 내용 |
|---|---|
| 선언 방식 | 모델이 known_usecases: [decisions]를 명시 (추론하지 않음, 채팅·분류와 분리) |
| API | POST /v1/systemone으로 구조화 choice·score·noul 요청 |
| 검증 | 64 KiB body 제한, 최대 64 questions, state·ID·옵션·level·noul 기준 검증 |
| UI | Decisions capability chip + 설치 가이드 노출 |
| 갤러리 모델 | Laya, GLiNER2.5-Decide, Qwen3-VL, Tev1, kev, Nimble, CLM 등 |
흐름:
모델이 decisions를 선언 → 갤러리에서 설치 → /v1/systemone으로 호출
→ 텍스트 생성 없이 선택·점수·추출 결과 수신
기존 /permute·/separate(NER·토큰 분류)는 그대로 있고, decisions가 별도 자리로 추가됐습니다. "채팅 모델에 결정을 시키는" 임시방편이 아니라 스택의 정식 계층이 된 것입니다.
같이 온 것: failover와 운영 페이지
Decision만 있는 게 아닙니다. 운영 관점에서 묶어볼 두 가지가 같이 왔습니다.
failover 체인:
- 하나의 모델 이름 뒤에 로컬·원격 타겟 순서열을 둔다
- 응답 확정 전 실패만 재시도 (검증 오류·클라이언트 취소는 제외)
- 상태·회복 추적 + 관리자 pin/unpin (MCP 도구·UI 지원)
- 응답 헤더에 실제 서빙 모델 표시
→ "결정 실패하면 다음 타겟"이 스택 기능이 됨
Operate → This machine:
- 단일 노드에서도 VRAM·RAM·CPU·모델 디스크 게이지
- 실행 중 모델 로그 조회·중지
→ 분산 모드 없이 로컬 운영이 가능
라우팅 글의 폴백과 옵저버빌리티 글의 execution 묶기가 로컬 스택 기능으로 내려온 모양입니다. 클라우드 전유물이었던 운영 패턴이 로컬로 내려옵니다.
왜 중요? 생성형 LLM을 고르는 일에서 빼야 한다
지금 많은 팀이 classification·routing·moderation·tool selection을 생성형 LLM에 시킵니다. 느리고 비쌉니다. LocalAI가 decisions를 1급으로 올렸다는 건 교체처가 표준 자리에 앉았다는 뜻입니다.
교체 우선순위 (싸고 쉬운 것부터):
1. moderation·스팸 판정 (예/아니오 + 확신도면 충분)
2. routing·분류 (선택지 고정, 점수 필요)
3. tool selection (후보 도구 중 선택)
4. zero-shot extraction (형식 정해진 추출)
→ 4개 다 텍스트 생성이 필수가 아님
Decider 글의 Mini Lab(일치율·지연·비용 비교)을 그대로 쓰면 됩니다. 모델만 Decider에서 LocalAI 갤러리 decisions 모델로 바뀌고, 호출처가 /v1/systemone이 됩니다.
CodeBridge Mini Lab: 생성 호출 1개를 decisions로 옮기기
① 생성형 LLM이 고르는 일 1개를 찾는다 (위 4개 중 1개)
② 2주간 로그: 호출 수·토큰·지연·비용
③ LocalAI decisions 모델로 같은 일을 돌린다:
[ ] 선택 일치율 (95% 이상 목표)
[ ] 지연·비용 차이
[ ] 확신도 낮은 경우의 상위 확인 경로
④ 판정: 일치하면 분리, failover 체인에 구성을 올린다
(로컬 1순위 + 원격 2순위 — 응답 확정 전 실패만 재시도)
DGX Spark 글의 로컬 경제학과도 이어집니다. decisions는 작아서 로컬에서 잘 돕니다. "항상 켜두는 판단"을 로컬에 두는 구조가 됩니다.
결론: 판단은 스택이다
한 줄로 정리합니다.
고르기는 모델이 아니라 스택의 기능이 됐다.
어제는 Decider라는 모델이 나왔고, 오늘은 decisions라는 계층이 생겼습니다. 순서가 중요합니다. 모델은 바뀌어도 계층은 남습니다. /v1/systemone 뒤에 무엇을 꽂을지는 나중에 정해도 됩니다. 오늘 할 일은 하나입니다. 우리 생성 호출 중 고르는 일 1개를 찾아내는 것. 그 1개가 로컬 스택으로 이사갈 첫 후보입니다.
함께 읽으면 좋은 글
참고 자료
이 주제를 직접 따라가며 배우고 싶다면
선택·위임·검증을 구조로 설계하는 연습이 필요하다면, 하네스·루프·그래프를 순서대로 쌓는 과정이 이 글의 decisions 분리와 바로 이어집니다.