Intro

Koog?

  1. Simple API: 간단한 설정으로 단일 실행 에이전트를 빠르게 생성할 수 있는 고수준 인터페이스입니다.

  2. AI Agent: 복잡한 워크플로우와 고급 기능을 갖춘 커스텀 에이전트를 구축할 수 있는 유연한 프레임워크입니다.

이러한 접근 방식을 통해 개발자는 프로젝트의 요구사항에 맞게 적절한 수준의 복잡성을 선택하여 에이전트를 개발할 수 있습니다.

핵심 기능

  • 순수 코틀린 구현: 전체 에이전트 로직을 코틀린으로 작성하여, JVM 및 JS 환경에서 실행 가능합니다.

  • MCP(Model Control Protocol) 통합: 다양한 LLM(Large Language Model) 공급자와의 동적 모델 전환을 지원합니다.

  • 벡터 임베딩 지원: 의미 기반 검색 및 지식 검색을 위한 벡터 임베딩 기능을 제공합니다.

  • 커스텀 도구 생성: 외부 시스템 및 API와의 통합을 위한 도구를 생성하고 에이전트에 통합할 수 있습니다.

  • 지능형 히스토리 압축: 대화 컨텍스트를 유지하면서 토큰 사용을 최적화하는 다양한 전략을 제공합니다.

  • 스트리밍 API: 실시간 응답 처리 및 병렬 도구 호출을 지원하여, 반응형 에이전트를 구현할 수 있습니다.

  • 영속적인 에이전트 메모리: 세션 간 및 에이전트 간 지식 유지가 가능하여, 지속적인 학습과 개선이 가능합니다.

  • 종합적인 트레이싱: 에이전트 실행을 디버깅하고 모니터링할 수 있는 상세하고 구성 가능한 트레이싱 기능을 제공합니다.

  • 유연한 그래프 워크플로우: 직관적인 그래프 기반 워크플로우를 통해 복잡한 에이전트 동작을 설계할 수 있습니다.

  • 모듈형 기능 시스템: 컴포저블 아키텍처를 통해 에이전트 기능을 맞춤화할 수 있습니다.

  • 확장 가능한 아키텍처: 간단한 챗봇부터 엔터프라이즈 애플리케이션까지 다양한 워크로드를 처리할 수 있습니다.

  • 멀티플랫폼 지원: 코틀린 멀티플랫폼을 통해 JVM 및 JS 타겟에서 에이전트를 실행할 수 있습니다.

핵심 개념

에이전트(Agent)

에이전트는 도구와 상호 작용하고, 복잡한 워크플로우를 처리하며, 사용자와 소통할 수 있는 AI 엔티티입니다. Koog는 Simple API와 AI Agent의 두 가지 접근 방식을 통해 에이전트를 생성할 수 있습니다.

전략 그래프(Strategy Graph)

에이전트의 워크플로우는 전략 그래프로 구성되며, 이는 노드와 엣지로 이루어진 구조입니다.

  • 노드(Node): 특정 작업이나 변환을 나타내는 기본 단위입니다.

  • 엣지(Edge): 노드 간의 연결을 나타내며, 조건에 따라 흐름을 제어합니다.

  • 서브그래프(Subgraph): 자체적인 도구, 컨텍스트, 책임을 가진 독립적인 처리 단위입니다.

도구(Tool)

도구는 에이전트가 특정 작업을 수행하거나 외부 시스템에 접근할 수 있도록 하는 함수입니다. 에이전트는 도구의 이름, 설명, 매개변수 등의 메타데이터를 알고 있으며, 이를 통해 도구를 호출할 수 있습니다.

히스토리 압축(History Compression)

대화 히스토리를 압축하여 토큰 사용을 최적화하는 기능입니다. 다양한 압축 전략을 통해 대화 컨텍스트를 유지하면서도 효율적인 토큰 사용이 가능합니다.

기능(Feature)

에이전트의 기능을 확장하고 향상시키는 구성 요소입니다.

  • 이벤트 핸들러(EventHandler): 에이전트의 생명주기, 오류 처리, 도구 호출 등을 모니터링하고 대응할 수 있는 기능입니다.

  • 에이전트 메모리(AgentMemory): 에이전트가 대화 간 정보를 저장하고, 검색하며, 활용할 수 있도록 하는 기능입니다.

Last updated