Eino 개요 — Go LLM 프레임워크의 가치와 구조

Eino 개요

Eino 는 Go 언어 기반의 LLM 애플리케이션 개발 프레임워크입니다. LangChain/LlamaIndex 에서 영감을 받았고, 매우 단순하고 확장 가능하며 신뢰성 있는 설계를 지향합니다.

출처: Eino: Overview — 공식문서

제공하는 가치

  • 컴포넌트(component) — 재사용·조합이 쉬운 추상화와 구현. 각 추상화마다 바로 쓸 수 있는 구현이 여럿 있습니다.
  • ADK(Agent Development Kit) — AI 에이전트를 만드는 고수준 추상화. 멀티에이전트 오케스트레이션, 인간-인-더-루프 인터럽트, 사전 제작 에이전트 패턴 지원.
  • 오케스트레이션 — 타입 체크·스트림 처리·동시성 관리·애스펙트 주입·옵션 할당 같은 무거운 부분을 처리.
  • DevOps 도구 — 시각 개발·디버깅부터 온라인 트레이싱·평가까지.

세 가지 오케스트레이션 API

API 특징
Chain 앞으로만 진행하는 단순 체인형 유향 그래프
Graph 순환/비순환 모두 가능. 유연하고 강력
Workflow 구조체 필드 수준 데이터 매핑이 가능한 DAG
chain, _ := NewChain[map[string]any, *Message]().
    AppendChatTemplate(prompt).AppendChatModel(model).Compile(ctx)
chain.Invoke(ctx, map[string]any{"query": "what's your name?"})

ADK 로 ReAct 에이전트

ChatModelAgent 는 ReAct 루프를 내부에서 처리하고, 각 추론 단계를 이벤트로 방출합니다. 하위 에이전트로 제어를 넘기거나(sub-agents), 에이전트를 도구로 감싸거나(tool-wrapping), 아무 지점에서나 인터럽트 후 checkpoint 에서 재개합니다.

agent, _ := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
    Name: "assistant", Description: "A helpful assistant that can use tools",
    Model: chatModel, ToolsConfig: ...,
})
runner := adk.NewRunner(ctx, adk.RunnerConfig{Agent: agent})

프레임워크 구조

  • Eino — 타입 정의, 스트림 처리, 컴포넌트 추상화, 오케스트레이션, 콜백.
  • EinoExt — 컴포넌트 구현, 콜백 핸들러, 예제, 평가자·프롬프트 최적화 도구.
  • EinoExamples — 예제 애플리케이션·모범 사례 저장소.

Go 1.18 이상이 필요합니다.

더 알아보기