/ 오픈소스 / agentscope-java

agentscope-java

분산형 엔터프라이즈급 AI 에이전트를 구축하기 위한 프로덕션 준비 완료 Java 프레임워크로, 권한 제어, 샌드박싱, 세션 복구를 지원합니다.

JavaFramework
⭐ GitHubhttps://github.com/agentscope-ai/agentscope-java
4,973
스타 수
+0
스타 증가율
2026년 8월 10일
최근 업데이트
3
클릭 수

1. 프로젝트 개요

AgentScope Java는 분산형 엔터프라이즈급 AI 에이전트를 구축하기 위한 프로덕션 준비 완료 Java 프레임워크로, 장기 실행 및 안전하게 제어되는 실행을 기본 지원합니다. 에이전트 개발을 프로토타이핑 수준을 넘어 운영 가능한 멀티 테넌트 프로덕션 환경으로 끌어올립니다.

2. 배경 및 포지셔닝

  • 핵심 사명: 대부분의 에이전트 프레임워크는 단일 에이전트가 데모에서 "작동"하도록 만드는 데 집중합니다. AgentScope Java(버전 2.0)는 작동하는 프로토타입과 프로덕션에서 안정적으로 실행될 수 있는 시스템 사이의 격차를 해소하기 위해 만들어졌습니다. 관찰 가능성, 권한 제어, 샌드박싱, 분산 세션 복구를 부차적인 고려 사항이 아닌 핵심 사항으로 다룹니다.
  • 유사 프로젝트와의 차별점: AgentScope Java는 LLM 호출을 단순히 감싸는 얇은 래퍼가 아니라, 기존 ReAct(추론-행동) 루프 위에 "하네스"를 계층화합니다. 미들웨어 훅, 타입 기반 이벤트 스트림, 인간 개입 승인 게이트, 플러그형 샌드박스(로컬, Docker, Kubernetes 또는 클라우드)를 추가합니다. JVM 생태계를 위해 기본적으로 설계되어 이미 Java/Spring 기반 백엔드 인프라를 운영 중이고 해당 생태계를 벗어나지 않으면서 엔터프라이즈급 에이전트 기능을 원하는 팀에 자연스럽게 적합합니다.

3. 기능 분류

  • ⚙️ 기반 프레임워크 — 에이전트 구축을 위한 핵심 기본 요소. 대표적인 예: 에이전트 상태 스트리밍을 위한 28가지 타입 기반 이벤트, 통합 콘텐츠 블록(텍스트/파일/이미지/오디오/비디오), ReAct 실행 루프, 기본 상호작용 패턴으로서의 인간 개입. 목적: 임시 JSON 페이로드 대신 에이전트 동작에 대한 일관되고 타입 기반의 어휘를 개발자에게 제공합니다.
  • 🧩 하네스 엔지니어링 — 핵심 루프 위에 계층화된 미들웨어. 대표적인 예: 자체 진화형 스킬 저장소, 계층형 메모리(대화 기록 + 선별된 마크다운 + 사실 로그), 하위 에이전트 생성, 자동 컨텍스트 관리, 다단계 작업을 위한 "플랜 모드". 목적: 핵심 프레임워크 코드를 수정하지 않고 에이전트가 추론하고 행동하는 방식을 확장하고 사용자 지정합니다.
  • 🏢 엔터프라이즈 배포 — 에이전트를 대규모로 실행하기 위한 기능. 대표적인 예: 멀티 테넌트 격리, 보안 샌드박싱, 세분화된 권한 제어, 무중단 롤링 업데이트를 위한 교차 복제본 세션 복구. 목적: 실제 프로덕션 트래픽 뒤에서 에이전트를 안전하고 복원력 있게 실행합니다.
  • 🔌 통합 — 외부 세계와의 모듈형 커넥터. 대표적인 예: LLM 공급자(OpenAI, Anthropic, DashScope, Gemini, DeepSeek, Ollama), 엔터프라이즈 IM 채널(DingTalk, Feishu, WeCom), 상호운용성 프로토콜(A2A, AG-UI). 목적: 사용자 지정 글루 코드 없이 에이전트를 기존 모델 공급업체 및 커뮤니케이션 도구에 연결합니다.
  • 💾 상태 및 영속성 — 에이전트 및 세션 상태 저장을 위한 백엔드. 대표적인 예: 인메모리, JSON 파일, MySQL, Redis, PostgreSQL. 목적: 에이전트가 재시작 또는 복제본 간에 상태를 재개하고 복구할 수 있도록 합니다.

4. 주요 하이라이트

  • 타입 기반 이벤트 스트림 — 28가지 고유 이벤트 유형으로 프런트엔드와 오케스트레이터가 자유 형식 텍스트 로그를 파싱하는 대신 에이전트가 실시간으로 수행하는 작업을 정확하고 구조화된 방식으로 파악할 수 있습니다.
  • 설계 단계부터의 인간 개입 — 권한 시스템을 통해 운영자는 개별 도구 호출이 실행되기 전에 선택적으로 승인하거나 거부할 수 있습니다. 이는 실제 세계에서 조치를 취할 수 있는 에이전트에게 중요합니다.
  • 미들웨어 기반 확장성 — AOP 스타일 훅이 추론-행동 루프를 5가지 서로 다른 단계에서 가로채므로 팀은 핵심을 포크하지 않고도 로깅, 가드레일 또는 사용자 지정 로직을 추가할 수 있습니다.
  • 유연한 샌드박싱 — 도구 실행은 로컬, Docker, Kubernetes 또는 AgentRun 클라우드 환경에서 격리할 수 있어 워크로드의 민감도에 맞게 격리 수준을 조정할 수 있습니다.
  • 멀티 에이전트 오케스트레이션 — 기본 agent_spawnagent_send 기본 요소가 상위-하위 에이전트 간 실시간 이벤트 전달과 함께 하위 에이전트 패턴을 지원합니다.
  • 분산 세션 복구 — Redis, MySQL, PostgreSQL, OSS 또는 COS를 백킹 스토어로 사용하여 세션 상태가 복제본 재시작 및 롤링 배포에서도 유지될 수 있습니다.

5. 역할별 사용 사례

  • 일반 개발자: Python 서비스에 연결하는 대신 익숙한 Maven 종속성을 사용하여 Java/Spring 애플리케이션에서 직접 에이전트 기능(챗봇, 작업 자동화, 도구 사용 어시스턴트)을 구축합니다.
  • DevOps/SRE: 세션 상태와 진행 중인 작업이 재배포 시 손실되지 않고 복제본 간에 복구될 수 있으므로 롤링 업데이트 뒤에서 에이전트를 안심하고 배포합니다.
  • 프로젝트 관리자: 권한 시스템과 이벤트 스트림을 사용하여 민감한 에이전트 작업에 인간 검토 게이트를 적용하고, 에이전트가 행동하기 전에 무엇을 하는지 파악할 수 있습니다.

6. 시작하기

  • 필요한 항목 찾는 방법: 저장소의 모듈 구조(agentscope-core, agentscope-harness, agentscope-extensions, agentscope-examples)를 살펴보거나 java.agentscope.io에서 전체 문서를 읽으세요.
  • 설치/통합 방법: JDK 17+ 필요. 하네스 모듈을 Maven 종속성으로 추가하세요:
    <dependency>
        <groupId>io.agentscope</groupId>
        <artifactId>agentscope-harness</artifactId>
        <version>2.0.1</version>
    </dependency>
    
    그런 다음 에이전트를 생성하세요:
    HarnessAgent agent = HarnessAgent.builder()
        .name("assistant")
        .model("dashscope:qwen-plus")
        .workspace(Paths.get(".agentscope/workspace"))
        .build();
    
    agent.call(new UserMessage("Hello!"), ctx).block();
    
  • 기여 방법: github.com/agentscope-ai/agentscope-java에서 저장소를 포크하고, 기여 지침을 검토한 후 풀 리퀘스트를 여세요. 더 큰 기여 전에 Discord, DingTalk 또는 WeChat을 통해 커뮤니티에 참여하여 논의하세요.

7. 프로젝트 구조

agentscope-java/
├── agentscope-core/               # 핵심 프레임워크: 이벤트, 콘텐츠 블록, ReAct 루프
├── agentscope-harness/            # 프로덕션 하네스: 미들웨어, 메모리, 플랜 모드
├── agentscope-extensions/         # LLM 공급자 및 채널 통합
├── agentscope-service/            # 컨트롤 플레인 및 대시보드
├── agentscope-distribution/       # 배포 패키징
├── agentscope-dependencies-bom/   # 중앙 집중식 종속성 버전 관리
├── agentscope-examples/           # 예제 구현 및 빠른 시작 코드
└── docs/                          # 문서 소스

주요 디렉터리: agentscope-core는 모든 에이전트가 기반으로 하는 기본 추상화를 보유합니다. agentscope-harness는 대부분의 애플리케이션 개발자가 직접 의존하는 모듈로, 프로덕션급 미들웨어로 핵심을 래핑합니다. agentscope-extensions는 새로운 LLM 공급자 또는 채널 통합이 추가되는 곳입니다.

8. 관련 생태계

  • 업스트림 종속성: LLM 공급자 — OpenAI, Anthropic, DashScope(Alibaba Cloud), Google Gemini, DeepSeek, Ollama(로컬 모델용).
  • 배포 대상: 샌드박싱용 Docker 및 Kubernetes, 상태 영속성용 Redis, MySQL, PostgreSQL, 분산 복구 데이터용 OSS 및 COS(클라우드 객체 스토리지).
  • 보완 도구: 채팅 기반 에이전트 배포를 위한 엔터프라이즈 IM 플랫폼 DingTalk, Feishu, WeCom, 다른 에이전트 생태계와의 상호운용성을 위한 A2A 및 AG-UI 프로토콜.
  • 자매 프로젝트: 이 Java 구현이 개념적으로 정렬된 원래 프레임워크인 AgentScope(Python)는 두 언어 생태계에서 작업하는 팀을 위한 것입니다.

9. 라이선스

Apache License 2.0에 따라 라이선스가 부여됩니다.

  • ✅ 상업 및 독점 제품을 포함한 사용, 수정, 배포가 무료입니다.
  • ✅ 기여자의 특허 사용 권한을 허용합니다.
  • ❌ 보증을 제공하지 않습니다. 소프트웨어는 "있는 그대로" 제공됩니다.
  • ℹ️ 수정된 파일은 저작자 표시 고지를 유지해야 하며, 재배포 시 라이선스 사본을 포함해야 합니다.

10. FAQ

Q: AgentScope Java를 사용하려면 Python을 알아야 하나요?
A: 아닙니다. AgentScope Java는 자체 Maven 아티팩트를 가진 네이티브 JVM 프레임워크(JDK 17+)입니다. Python 런타임이나 브리지가 필요 없습니다.

Q: 기본적으로 지원되는 LLM 공급자는 무엇인가요?
A: OpenAI, Anthropic, DashScope(Alibaba), Gemini, DeepSeek, Ollama가 모듈형 확장 통합으로 지원됩니다.

Q: 에이전트가 신뢰할 수 없거나 위험한 도구 호출을 안전하게 실행할 수 있나요?
A: 네. 기본 제공 권한 시스템을 통해 개별 도구 호출을 수동 승인으로 제한할 수 있으며, 작업 공간/샌드박스 계층을 통해 Docker, Kubernetes 또는 클라우드 샌드박스(AgentRun)에서 실행을 격리할 수 있습니다.

Q: 서비스 인스턴스가 재시작되거나 롤아웃되면 에이전트 상태는 어떻게 되나요?
A: 세션은 Redis, MySQL 또는 PostgreSQL에 영속화할 수 있으므로 진행 중인 작업을 잃지 않고 롤링 배포 중 교차 복제본 복구가 가능합니다.

Q: 여러 에이전트가 함께 작업하도록 조정하려면 어떻게 하나요?
A: agent_spawnagent_send 기본 요소를 사용하여 하위 에이전트를 만들고 실시간으로 이벤트를 전달하세요.

11. 빠른 링크

12. 요약

AgentScope Java는 타입 기반 이벤트, 권한 게이팅, 샌드박싱, 분산 세션 복구와 같은 프로덕션급 에이전트 인프라를 JVM 생태계에 기본으로 제공합니다. 별도의 Python 기반 스택을 도입하지 않고 장기 실행 엔터프라이즈급 AI 에이전트를 구축하려는 Java 및 Spring 팀과, 첫날부터 인간 감독 및 무중단 배포와 같은 운영 보장이 필요한 조직에 가장 적합합니다.