본문으로 건너뛰기

SAIA: LLM 출력을 위한 타입 기반 계약 및 12가지 동사 라이브러리

SAIA는 LLM의 자유로운 텍스트 출력을 12가지 정형화된 동사와 타입 기반 계약으로 변환하여 예측 가능한 에이전트 동작을 구현하는 Python 라이브러리이다.

섹션별 상세

01
SAIA는 LLM의 프롬프트를 단순한 제안이 아닌 타입 기반 계약으로 취급한다. verify()는 불리언 값과 이유를, critique()는 약점 리스트를 반환하도록 설계되어 텍스트 파싱의 불확실성을 제거한다.
python
saia = SAIA.builder().backend(backend).build()
result = await saia.verify(generated_code, "no SQL injection vulnerabilities")
# result.passed = False, result.reason = "User input concatenated directly into query"

verify 동사를 사용하여 생성된 코드의 보안 취약점을 검증하는 예시

02
1987년의 SCUMM 엔진이 어드벤처 게임의 복잡한 퍼즐을 9개의 기본 동사로 해결했듯이, SAIA는 LLM 제어를 위해 12개의 핵심 동사를 제공한다. decompose, extract, synthesize 등의 동사는 각각 명확한 타입 정의를 가져 예측 가능한 에이전트 동작을 가능하게 한다.
python
subtasks = await saia.decompose("Build a web scraper")
results = [await saia.instruct(t) for t in subtasks]
output = await saia.synthesize(results, goal="single working Python script")

작업을 분해하고 각 결과를 합성하여 최종 결과물을 만드는 예시

03
complete() 메서드는 LLM의 실행 루프를 관리하는 컨트롤러 역할을 수행한다. LLM이 동일한 내용을 반복하거나, 모순된 답변을 하거나, 불필요하게 권한을 요청하는 고착 상태를 감지하여 적절한 힌트를 제공하고 정상 궤도로 복구시킨다.
python
result = await saia.complete("Analyze the files in /src and summarize")
# [1] read_file("/src")
# [2] "Should I continue?" -> nudged
# [3] read_file("/src/main.py")
# [4] done(summary="...")
# result.iterations = 4, result.score.nudges = 1

complete 컨트롤러를 사용하여 에이전트 루프를 관리하고 넛지를 적용하는 예시

SAIA 라이브러리의 작동 과정을 보여주는 터미널 데모 애니메이션이다.
Screenshot사용자의 요청에 따라 LLM이 작업을 분해하고 각 단계를 수행하며 최종 결과를 합성하는 과정을 시각적으로 보여준다. 루프 컨트롤러가 상태를 관리하는 실제 흐름을 파악하는 데 도움을 준다.
04
이 라이브러리는 약 2500줄의 순수 Python 코드로 작성되었으며 외부 런타임 의존성이 없다. Anthropic, OpenAI뿐만 아니라 Ollama나 vLLM과 같은 로컬 추론 엔진도 백엔드로 지원하여 환경에 구애받지 않는 유연한 배포가 가능하다.

용어 해설

타입 기반 계약(Typed Contract)
데이터의 구조와 타입을 명시적으로 정의하여 프로그램 간의 약속을 규정하는 방식이다. LLM의 자유로운 텍스트 출력을 특정 스키마로 강제하여 런타임 에러를 방지하고 시스템의 예측 가능성을 높인다.
백엔드 불가지론(Backend-agnostic)
특정 서비스나 기술 환경에 종속되지 않고 독립적으로 작동할 수 있는 특성을 의미한다. SAIA는 OpenAI, Anthropic, Ollama 등 다양한 LLM 백엔드를 동일한 인터페이스로 교체하여 사용할 수 있게 지원한다.
넛지(Nudge)
LLM이 작업 수행 중 루프에 빠지거나 멈췄을 때 시스템이 개입하여 올바른 방향으로 유도하는 기법이다. SAIA의 루프 컨트롤러는 상태를 감지하여 LLM이 작업을 완수할 수 있도록 적절한 힌트를 주입한다.
스컴 엔진(SCUMM)
1987년 루카스아츠에서 개발한 어드벤처 게임 제작용 엔진이다. 복잡한 게임 내 상호작용을 '열기', '닫기', '사용하기' 등 소수의 동사 세트로 단순화하여 게임 설계의 일관성을 확보한 것이 특징이다.

기술

  • Python
  • Anthropic API
  • OpenAI API
  • Ollama
  • vLLM

활용 사례

  • 코드 취약점 검증
  • 복잡한 작업 분해 및 수행
  • 에이전트 루프 제어

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 03. 03.수집 2026. 03. 03.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.