Google Genkit Agents API란 무엇인가
Google이 오픈소스 프레임워크인 Genkit의 Agents API를 TypeScript와 Go를 대상으로 프리뷰 공개했다. 이 프레임워크의 핵심은 복잡한 에이전트 구현에 필요한 여러 요소들을 단일 인터페이스 뒤에 통합했다는 점이다. 메시지 히스토리 관리, 툴 루프, 스트리밍, 상태 영속성이라는 네 가지 핵심 기능이 chat() 하나로 추상화된다.
기존에 에이전트 기반 워크플로우를 직접 구현하려면 대화 히스토리를 별도 저장소에 유지하고, 툴 호출 루프를 수동으로 관리하며, 스트리밍 응답과 상태 동기화를 따로 처리해야 했다. Genkit Agents API는 이런 반복적인 보일러플레이트를 프레임워크 레벨에서 흡수한다.
const session = ai.createSession();
const chat = session.chat({ system: "You are a helpful assistant." });
const response = await chat.send("주문 상태를 확인해줘");
Detached Turns: 연결 단절 이후에도 지속되는 작업
백엔드 개발 관점에서 가장 주목할 만한 기능은 Detached Turns다. 일반적인 HTTP 요청-응답 모델에서는 클라이언트 연결이 끊기면 서버 측 작업도 함께 중단되거나, 별도의 비동기 처리 인프라를 직접 구축해야 한다. Detached Turns는 클라이언트 연결 해제 후에도 에이전트 작업이 독립적으로 지속될 수 있도록 지원한다.
이는 장시간 실행되는 작업, 예를 들어 외부 API 폴링이나 복잡한 멀티스텝 툴 체이닝에서 특히 유효하다. 클라이언트는 연결을 끊은 뒤 나중에 세션 상태를 조회해 결과를 받아올 수 있으므로, 타임아웃 처리나 폴링 로직을 애플리케이션 레이어에서 별도로 구현할 필요가 줄어든다.
Interruptible Tools: Human-in-the-Loop 승인 흐름
Interruptible Tools는 에이전트 실행 도중 인간의 승인 단계를 삽입할 수 있는 메커니즘이다. 예를 들어 결제 처리, 데이터 삭제, 외부 시스템 변경처럼 자동 실행이 위험한 작업에서 에이전트가 일시 중단되고 사람의 확인을 기다린 뒤 재개되는 흐름을 구성할 수 있다.
특히 재개 시 위조 방지 검증(anti-forgery validation) 을 수행한다는 점이 실무적으로 중요하다. 중단된 작업을 재개할 때 외부에서 악의적으로 변조된 요청이 삽입되는 것을 방지하는 장치다. 민감한 비즈니스 로직을 에이전트로 자동화할 때 보안 측면의 신뢰성을 확보할 수 있다.
const approvalTool = ai.defineTool(
{ name: "processRefund", interruptible: true },
async (input) => {
// 실행 전 인간 승인 요청 → 재개 시 검증 후 처리
return await refundService.execute(input);
}
);
정리
chat()단일 인터페이스로 메시지 히스토리, 툴 루프, 스트리밍, 상태 영속성을 통합 관리해 에이전트 구현의 보일러플레이트를 대폭 줄인다.- Detached Turns로 클라이언트 연결 종료 후에도 에이전트 작업이 지속되어, 장시간 비동기 워크플로우를 별도 인프라 없이 처리할 수 있다.
- Interruptible Tools는 민감한 작업에 인간 승인 단계를 삽입하고 위조 방지 검증을 제공해, 자동화와 안전성을 동시에 확보한다.