songrongzhen/easy-agent

easy-agent是Agent组件,零改造接入,为存量系统赋予智能体(Agent)能力。

해결하는 문제

Easy Agent는 Java 애플리케이션을 위한 개발 컴포넌트로, AI 에이전트를 구축하는 과정을 간소화합니다. 개발자는 대규모 언어 모델(LLM)을 위한 비즈니스 로직을 쉽게 도구로 노출하고, 로컬 문서를 사용하여 검색 증강 생성(RAG)을 구현하며, 모델 컨텍스트 프로토콜(MCP)을 통해 도구 서비스를 제공할 수 있습니다.

작동 방식

이 프로젝트는 Spring Boot Starter로 구축되어 Spring 생태계와 깊이 통합되어 있습니다. 어노테이션과 SPI의 조합을 사용하여 AI 기능을 관리합니다:

  • 도구 등록: @EasyTool로 표시된 메서드는 자동으로 탐지되어 ToolRegistry에 등록되며, LLM 또는 MCP 클라이언트에서 호출할 수 있습니다.
  • MCP 서버: 등록된 도구를 클라이언트(예: Claude Code)에 공개하는 가벼운 MCP HTTP 서버(JSON-RPC 2.0)를 구현합니다.
  • RAG 엔진: 클래스패스 또는 URL에서 PDF, Excel, HTML 파일을 로드하여 DocumentChunk 객체로 청크화하고 메모리에 저장합니다(일부 PGVector용 플레이스홀더 포함). 임베딩, 코사인 유사도, TF-IDF 등 다양한 검색 전략을 지원합니다.
  • LLM 통합: OpenAI 호환 API용 통합 HTTP 클라이언트를 제공하며, DashScope, DeepSeek, Ollama, OpenAI 등 다양한 제공업체를 지원하고, 자동 도구 호출 루프 및 재시도 메커니즘을 내장하고 있습니다.
  • 스킬 생성: 등록된 도구를 기반으로 비즈니스 특화 Skill Markdown 파일을 생성할 수 있는 메타 도구를 제공합니다.

대상 사용자

Spring Boot 3.5+ 및 JDK 17+를 사용하여 기존 비즈니스 애플리케이션에 에이전트 기능을 추가하고자 하는 Java 개발자.

주요 특징

  • 영향 최소화: 비즈니스 코드 구조를 변경하지 않고 @EasyTool를 사용해 기존 서비스 메서드를 AI 도구로 변환 가능.
  • MCP 지원: AI IDE 및 클라이언트와의 원활한 통합을 위한 모델 컨텍스트 프로토콜(MCP)의 네이티브 구현.
  • 유연한 RAG: 로컬 PDF/Excel 파일의 자동 인덱싱과 런타임 시 HTML 지식 기반의 추가를 지원.
  • 다중 모델 호환성: 하나의 구성으로 여러 OpenAI 호환 제공업체를 지원하며, 모델에서 제공업체로의 자동 매핑을 제공.
  • 거버넌스: 허용 목록과 차단 목록을 사용하여 MCP를 통해 노출할 도구를 세밀하게 제어 가능.

관련

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