본문 바로가기

개발이야기

Google Genkit Agents API 프리뷰 — `chat()` 하나로 풀스택 에이전트를 만드는 방법

반응형

핵심 요약

Google2026년 7월 오픈소스 프레임워크 GenkitAgents API 프리뷰를 공개했다(〈Google Developers Blog〉 2026.07.01, 〈InfoQ〉 2026.07). 메시지 히스토리, 도구 실행 루프, 스트리밍, 세션 영속화, Human-in-the-Loop(HITL)agent.chat() 하나로 묶었고, 서버 인프로세스HTTP remoteAgent 에서 동일 API를 쓴다. TypeScript·Go에서 먼저 제공되며 Python·Dart는 예정이다. v1.39.0에서는 기존 beta Chat API제거되고 Agents API완전 대체됐다(〈GitHub genkit-ai/genkit〉 2026.06.26). 풀스택 AI 앱을 Firebase·Cloud Run에 올리는 팀에게 상태ful 에이전트 구현 비용을 줄이는 선택지다.

무슨 일이 있었나

Agents API가 풀는 문제는 익숙하다. 멀티턴 에이전트를 직접 만들면 Redis 세션, 도구 승인 큐, 스트리밍 프로토콜, 중단·재개를 매번 붙여야 한다. Genkit은 이를 defineAgent 한 번에 구성한다.

핵심 기능 (〈Google Developers Blog〉 2026.07.01, 〈byteiota.com〉 2026.07)

| 기능 | 설명 |

| --- | --- |

| chat() / sendStream() | 멀티턴 대화, state·messages·sessionId 자동 관리 |

| SessionStore | 인메모리·파일·Firestore 등 플러그형 영속화 |

| Interrupts & resume | HITL 도구 승인 후 respond/restart |

| Detached turns | 백그라운드 턴 + heartbeat, 클라이언트 이탈에도 진행 |

| clientTransform | 서버→클라이언트 전 상태·스트림 redaction |

| remoteAgent() | 브라우저에서 서버와 동일 API로 HTTP 호출 |

| Middleware | retry, toolApproval, agents(서브에이전트 위임), skills |

마이그레이션 변화: Genkit 1.39.0 릴리스(2026.06.26)에서 Chat 클래스, ai.chat(), session.chat()삭제됐다. ai.defineAgent() + agent.chat() 로 옮겨야 하며, 이전 surface는 전부 beta였기 때문에 breaking change가 공식화됐다.

경쟁 맥락: LangChain, CrewAI, Semantic Kernel, Mastra, Pydantic AI 등과 영역이 겹친다. Google은 Genkit(셀프호스팅)Gemini API Managed Agents(호스팅형)이중 레이어로 밀고 있다(〈InfoQ〉 2026.07). Genkit의 차별점은 서버 로직 + 웹/모바일 typed SDK + 스트리밍 프로토콜한 프레임워크에 묶은 풀스택 접근이다.

실무에서 어떻게 쓰나

최소 흐름은 다음과 같다.

1. 서버: defineAgent로 모델·프롬프트·도구·stateSchema(Zod) 정의

2. 영속화 필요 시: SessionStore 연결 → sessionId재개

3. HITL: 위험 도구에 interrupt → 프론트가 승인 UIresume

4. 프론트: remoteAgent({ url })동일 chat() 호출

5. 배포: Firebase Functions / Cloud Run / Node·Go 런타임

서브에이전트는 별도 엔진이 아니다. agents middleware가 오케스트레이터에 delegate_to_* 도구를 주입하고, researcher → coder처럼 역할 분담도구 호출로 처리한다(〈DEV Community〉 2026.07). 아티팩트는 세션에 merge되어 후속 턴에서 공유된다.

Go 지원은 주목할 만하다. Go 생태계에서 HITL·세션·스트리밍프로덕션급으로 묶은 프레임워크가 적었는데, Genkit이 TS와 동시에 Go Agents API를 냈다(〈byteiota.com〉 2026.07).

체크포인트 (도입 전)

  • 프리뷰 리스크: 공식 문서에 minor 버전에서도 breaking change 가능(〈Google Developers Blog〉 2026.07.01)
  • Python·Dart 미지원: 팀 스택이 Flutter·Python 중심이면 대기 또는 하이브리드 필요
  • LangChain 대비: 커뮤니티 통합·레시피는 아직 LangChain이 넓음 — GCP·Firebase 밀착 팀에 유리
  • 보안: clientTransform으로 내부 상태·PII브라우저로 새지 않게 설계
  • Managed Agents와 역할 분담: 샌드박스·원격 MCP까지 Google이 맡길지, Genkit으로 직접 통제할지 결정

고유 인사이트: "에이전트 = 설정, 루프 = 프레임워크"

많은 팀이 에이전트 루프를 직접 while문으로 짜다 세션 끊김·HITL·스트리밍에서 버그가 난다. Genkit Agents API의 설계 포인트는 "같은 chat()이 인프로세스와 HTTP에서 동일" 하다는 것이다. 즉 프론트 프로토타입서버 배포로 옮길 때 인터페이스를 다시 짜지 않는다. 이는 MVP→프로덕션 구간에서 가장 비싼 재작업을 줄인다. 다만 프리뷰 단계이므로 핵심 비즈니스 로직도구·프롬프트 레이어에 두고, 전송·세션 레이어는 Genkit에 맡길지 추상화할지 팀 정책을 먼저 정하는 것이 안전하다.

마무리

Genkit Agents API상태ful 멀티턴 에이전트반복 보일러플레이트defineAgent + chat() 로 수렴시키는 Google의 풀스택 답이다. 1.39.0에서 구 Chat API 제거마이그레이션 시급성을 뜻한다. Firebase·GCP 스택 팀은 HITL·세션·스트리밍직접 구현하기 전에 프리뷰를 PoC로 돌려볼 가치가 있다. Python-only 팀은 릴리스 노트를 지켜보며 경계 레이어만 Genkit에 붙이는 하이브리드도 현실적인 선택이다.

참고 자료


※ 본 글은 정보 제공을 목적으로 한 개인 의견이며, 특정 종목의 매매를 권유하지 않습니다.

투자에 대한 판단과 책임은 투자자 본인에게 있습니다.