무거운 파이썬 상태 머신 만드는 거 지겨워서, 구조화된 JSON 추출을 위한 YAML 기반 에이전트 프레임워크를 만들었음
I got tired of building heavy Python state machines, so I built a YAML-first agent framework for structured JSON extraction
핵심 요약
복잡한 파이썬 상태 머신 대신 YAML로 에이전트를 정의하여 구조화된 JSON을 추출하는 오픈소스 프레임워크 'TrueNorth' 소개.
- YAML 기반 정의 — 에이전트의 스키마와 페르소나를 YAML로 간편하게 설정함.
- 로컬 실행 지원 — Ollama를 통해 오프라인 환경에서 데이터 프라이버시를 보장함.
- 환각 방지 기능 — 3단계 충돌 탐지 시스템으로 잘못된 정보 생성을 획기적으로 줄임.
- 토큰 압축 기술 — 대화 기록을 요약하여 컨텍스트 윈도우 오버플로우를 방지함.
다들 안녕, 지난 3개월 동안 TrueNorth라는 오픈소스(Apache 2.0) 프로젝트를 만들었어.
회사에서 계속 같은 문제에 부딪혔거든. LLM이 사람(의료 접수나 인사 담당자 같은)과 대화하게 하고, 대화를 유도한 뒤 마지막에 깔끔한 JSON 객체를 출력하게 만드는 거였지.
LangChain이나 LangGraph는 엄청 강력하지만, 이 특정 제품 문제에는 너무 과하다는 느낌이 들었어. 그냥 필요한 필드만 정의하고 대화 상태는 엔진이 알아서 처리하게 하고 싶었거든.
그래서 에이전트를 순수하게 YAML로 정의하는 프레임워크를 만들었어:
id: simple_intake
fields:
- name: user_goal
type: text
required: true
question: "What are you trying to build today?"
output:
format: json
내부 구조는 이래:
-
로컬 우선: Ollama를 통해 완전히 오프라인으로 실행됨(데이터 프라이버시에 좋음).
-
환각 방지: 3단계 충돌 탐지기를 구축해서 테스트 결과 잘못된 정보 생성을 18%에서 약 2%로 줄였음.
-
토큰 압축: 오래된 대화 기록을 자동으로 요약해서 밀도 높은 팩트 시트로 만듦. 덕분에 긴 세션에서도 컨텍스트 윈도우가 넘치지 않음.
아직 개발 중이라 버그가 많아. 이 커뮤니티가 에이전트 아키텍처를 누구보다 잘 알아서 여기 올렸어. YAML 스키마 설계나 코어 엔진에 대한 피드백을 받고 싶어. PR은 언제든 환영이야!
저장소: 서브레딧의 스팸 방지 규칙을 지키기 위해 첫 번째 댓글에 GitHub 링크를 남길게!

