genkit
무엇인가
Genkit은 모델 제공자와 애플리케이션 코드 사이에 놓이는 서버 사이드 SDK 모음이자 CLI 도구다. 텍스트·이미지 생성, 구조화 출력, 도구 호출, 프롬프트 템플릿, 대화 상태 저장, RAG, 다단계 워크플로를 같은 API 표면으로 다룬다. 언어별 SDK가 동일한 개념과 기능 집합을 공유하는 것을 전제로 설계됐다.
어떻게 동작하나
실행 단위는 플로우(flow)다. CLI의 `genkit start`가 애플리케이션 프로세스를 감싸 실행하면서 텔레메트리와 로그를 수집하고 로컬 개발자 UI를 함께 띄운다. 개발자 UI에서는 플로우·프롬프트·쿼리를 전용 플레이그라운드에서 실행하고, 지난 실행의 단계별 트레이스를 열어 보고, 평가 결과와 성능 지표를 확인한다. 모델 호출은 제공자 패키지가 맡고, SDK가 멀티모달 입출력과 구조화 출력 스키마를 그 위에서 정규화한다.
무엇과 다른가
제공자 SDK를 직접 호출하는 구성과의 차이는 교체 비용에 있다. 모델을 바꿀 때 앱 코드가 아니라 제공자 패키지만 갈아 끼우면 되고, 같은 플로우 정의가 JavaScript/TypeScript·Go·Python·Dart에서 같은 이름과 형태로 유지된다. 프롬프트 템플릿 라이브러리와 달리 실행 추적·평가·텔레메트리가 CLI와 로컬 UI에 붙어 있어 개발 루프가 SDK 밖으로 나가지 않는다.
어떻게 쓰나
설치는 `npm install -g genkit-cli`로 CLI를 깔고, 사용할 언어의 Genkit SDK와 모델 제공자 패키지를 프로젝트에 추가한 뒤 제공자 API 키로 초기화하는 순서다. 이후 `genkit start -- <명령>`으로 앱을 감싸 실행한다. 배포 대상은 Cloud Functions for Firebase, Google Cloud Run, 또는 해당 언어를 실행할 수 있는 임의 환경이며, Next.js·React·Angular·iOS·Android에는 클라이언트 SDK와 헬퍼로 붙인다.
전제와 한계
언어별 성숙도가 다르다. JavaScript/TypeScript와 Go는 프로덕션 수준이고, Python은 베타로 넓은 기능을 갖추되 프로덕션 준비 단계에 가깝고, Dart는 프리뷰로 핵심 기능만 동작한다. 설계 전제는 서버 사이드 배포이며, 제공자에 따라 인증 방식이 갈린다(Vertex AI 등). 프로덕션 모니터링 대시보드는 Firebase 콘솔에 있다.
유사 도구
- DEEIX-Chat여러 모델 제공자를 하나의 진입점으로 묶어 멀티모달 채팅, 파일 RAG, MCP 도구, 과금, 감사를 한 제품에 담은 Go 기반 자체 호스팅 AI 플랫폼이다.
- gateway1,600개 이상 LLM과 40개 이상 가드레일을 하나의 OpenAI 호환 API로 중계하는 TypeScript 기반 AI 게이트웨이다. 재시도·폴백·로드밸런싱을 설정으로 처리한다.
- OmniRoute여러 LLM 제공자를 하나의 엔드포인트로 중계하는 MIT 라이선스 AI 게이트웨이다. 무료 티어 할당량을 계산해 소진 시 자동으로 다른 제공자로 폴백한다.
- bifrost23개 이상 LLM 제공자를 하나의 OpenAI 호환 API로 중계하는 Go 기반 AI 게이트웨이다. 5천 RPS에서 요청당 11µs 오버헤드를 추가한다.
- OpenLLM오픈소스 LLM을 한 줄 명령으로 OpenAI 호환 API 서버로 띄우는 Python CLI다. 내장 채팅 UI와 Docker·Kubernetes·BentoCloud 배포 경로를 함께 갖춘다.
- autogen여러 AI 에이전트를 계층형 API로 조립해 대화·코드 실행·분산 런타임을 구성하는 Python 멀티에이전트 프레임워크다.