embabel/embabel-agent

Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/

Embabel Agent Framework – 빠른 개요

무엇인가요 – JVM에서 에이전트 기반 애플리케이션을 구축하기 위한 Java/Kotlin 라이브러리입니다. 목표, 작업, 조건, 그리고 도메인 모델을 정의하면, 프레임워크가 자동으로 계획하고 실행하는 작업 시퀀스(LLL 호출 포함)를 생성하여 목표를 달성합니다.

왜 중요한가요 – 기존의 대부분의 LLM 중심 코드는 원시 HTTP 호출과 비즈니스 로직을 혼합하여 테스트, 재사용, 확장이 어렵게 됩니다. Embabel은 계획 계층을 코드에서 분리하여 강타입, Spring 호환 컴포넌트를 제공하며, GOAP, Utility AI와 같은 고급 AI 계획 알고리즘을 기본으로 지원합니다.


핵심 개념

개념 역할
에이전트 도메인 모델 위에서 작동하는 작업, 목표, 조건의 집합을 포함하는 컨테이너입니다.
작업 단일 단계 – 순수한 Java/Kotlin 코드, LLM 프롬프트, 또는 도구 기반 작업이 될 수 있습니다.
목표 에이전트가 도달하려는 원하는 최종 상태입니다.
조건 각 작업 실행 후 재검사되는 전제 조건/후행 조건이며, 재계획을 유도합니다.
계획 동적으로 생성된 작업 시퀀스; 각 단계 후에 재생성됩니다 (OODA 루프).
AgentPlatform 3가지 모드로 에이전트를 실행하는 런타임 – Focused (명시적 호출), Closed (의도에 맞는 에이전트 선택), Open (목표를 탐지하고 즉시 맞춤형 에이전트를 생성).

주요 기능 (README에 기재된 내용)

  • 동적 계획 – Goal-Oriented Action Planning (GOAP) 또는 Utility AI를 사용; 단순한 정적 상태 머신이 아님.
  • 강타입 – 작업, 목표, 조건은 일반적인 Kotlin/Java 클래스이므로 IDE 리팩터링 및 컴파일 타임 체크가 가능합니다.
  • Spring 통합 – 에이전트는 Spring 빈으로 사용 가능하며, 의존성 주입, AOP, 트랜잭션 관리 등의 이점을 누릴 수 있습니다.
  • LLM 혼합Ai 래퍼를 통해 OpenAI, 로컬 모델 등 어떤 LLM도 호출 가능; 간단한 단계에는 저비용 로컬 모델, 창의적인 작업에는 대규모 모델을 조합할 수 있습니다.
  • 확장 가능한 계획 – 계획 알고리즘이 플러그인 가능; GOAP, Utility AI, 또는 자체 알고리즘을 교체할 수 있습니다.
  • 테스트 가능성 – 작업은 일반 메서드처럼 단위 테스트 가능; 프레임워크는 엔드투엔드 에이전트 테스트도 지원합니다.
  • 다양한 실행 모드 – 결정론적 "Focused" 호출에서 탐색적 "Open" 모드까지, 에이전트 간 작업 조합이 가능합니다.
  • 미래 대비 – 로드맵에는 다른 Embabel 인스턴스와의 연합 및 다중 목표 프로세스의 진화가 포함되어 있습니다.

일반적인 사용 사례

  • LLM을 프로세스의 일부(예: 요약, 분류)에 사용해야 하는 기업 워크플로우 (기존 Java/Kotlin 서비스와 함께 사용).
  • 사용자 의도를 목표로 매핑하고 시스템이 동적으로 계획을 조립하는 채팅 기반 어시스턴트.
  • 웹 검색, 데이터베이스 접근, LLM 추론을 결합하는 도구 증강 에이전트.
  • 비용 인식 AI 파이프라인 – 단순한 변환에는 저비용 로컬 모델, 필요 시에만 대규모 모델로 전환.

시작하기 (README에서)

  1. 제공된 GitHub 템플릿을 사용해 프로젝트 생성:
    • Java: https://github.com/embabel/java-agent-template
    • Kotlin: https://github.com/embabel/kotlin-agent-template
  2. Maven 종속성 추가 (버튼에 종속성 좌표 표시):
    <dependency>
      <groupId>com.embabel.agent</groupId>
      <artifactId>embabel-agent-api</artifactId>
      <version>…</version>
    </dependency>
    
  3. 에이전트 작성 – Spring 스타일의 어노테이션(@Agent, @Action, @Goal, @Condition) 또는 Kotlin DSL(agent { … }) 중 하나 사용.
  4. 실행 – AgentPlatform이 계획을 실행합니다. 간단한 데모는 OPENAI_API_KEY와 Maven 설치만 필요합니다.
  5. 예제 탐색 – Embabel Agent Examples 리포지토리와 Tripper 여행 계획자 데모(풀스택 앱)를 확인하세요.

생태계 및 도구

  • 문서 – 실시간 문서: https://docs.embabel.com/embabel-agent/guide/…
  • 빌드 및 CI – Maven, GitHub Actions, SonarCloud 품질 게이트, Docker 이미지
  • 프로파일링 – YourKit 및 JProfiler 통합 (버튼은 개발 시 사용 중임을 나타냄)
  • 커뮤니티 – 지원 및 토론용 Discord 서버 (discord.gg/t6bjkyj93q)
  • 관련 프로젝트 – Spring AI 기반, 기존 Spring Boot 서비스와 상호 운용 가능

라이선스

Apache 2.0 – 상업적 사용을 허용하는 유연한 오픈소스 라이선스입니다.


결론 – Embabel은 JVM에서 LLM 증강형, 목표 중심 에이전트를 구축하기 위한 진정한 생산 환경 대응 프레임워크입니다. 계획을 추상화하고 코드를 강타입으로 유지하며 Spring 생태계에 자연스럽게 통합되어, 기존 스택을 포기하지 않고도 지능적이고 재사용 가능한 에이전트 흐름을 원하는 Java/Kotlin 팀에게 매력적인 선택입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트