Elasticsearch는 업계 최고 수준의 생성형 AI 도구 및 다양한 공급업체와 기본적으로 연동됩니다. Elastic 벡터 데이터베이스를 활용해 진행 중인 RAG 기본 넘어서기 또는 프로덕션 수준 앱 구축 웨비나를 확인해 보세요.
사용 사례에 가장 적합한 검색 솔루션을 구축하려면 무료 클라우드 체험판을 시작하거나 로컬 기기에서 Elastic을 지금 사용해 보세요.
AI 에이전트에 대한 아이디어가 있으신가요? 아마 데이터와 관련된 일일 겁니다. 에이전트가 유용한 행동을 시작하려면 결정을 내려야 하고, 그 결정을 제대로 내리려면 적절한 데이터가 필요하기 때문입니다.
Elastic Agent Builder를 사용하면 데이터 기반 AI 에이전트를 쉽게 구축할 수 있습니다. 이 블로그 게시물에서 그 방법을 알려드리겠습니다. Elastic에 저장된 데이터에 액세스하는 MCP 도구로 에이전트를 생성하는 데 필요한 모든 단계를 살펴본 후, Strands Agents SDK와 그의 Agent2Agent(A2A) 기능을 사용하여 에이전트를 운영해 보겠습니다. Strands Agents SDK는 멀티 에이전트 AI 개발 플랫폼으로, 최소한의 코드만으로 원하는 결과를 얻을 수 있는 에이전틱 앱을 구축할 수 있습니다.
RPS+ 게임을 플레이하는 AI 에이전트를 만들어 보세요. RPS+는 기존 가위바위보 게임에 새로운 변형을 더한 게임으로, 플레이어에게 몇 가지 추가 선택지를 제공합니다.
필수 구성 요소
이 블로그 게시물의 단계를 따라 진행하려면 다음과 같은 준비 사항이 필요합니다.
- 로컬 컴퓨터에서 실행 가능한 텍스트 편집기
- 이 블로그 게시물의 예제 지침에는 Visual Studio Code를 사용합니다.
- 로컬 컴퓨터에 설치된 Python 3.10 이상
서버리스 프로젝트 만들기
우선 Elastic Agent Builder가 포함된 Elasticsearch Serverless 프로젝트가 필요합니다.
cloud.elastic.co로 이동해 새로운 Elasticsearch Serverless 프로젝트를 생성하세요.

인덱스 생성 및 데이터 추가
다음으로 Elasticsearch 프로젝트에 몇 가지 데이터를 추가해 보겠습니다. Developer Tools를 열고 명령어를 실행하여, 새 인덱스를 만들고 일부 데이터를 삽입할 수 있습니다. 최상단 탐색 메뉴에서 Developer Tools를 선택하세요.

다음 PUT 명령어를 복사하고 Developer Tools 콘솔의 요청 입력 영역에 붙여넣으세요. 이 명령문은 “game-docs”라는 이름의 Elasticsearch 인덱스를 생성합니다.
Developer Tools에서 해당 명령문 오른쪽에 표시되는 Send request(요청 전송) 버튼을 클릭하세요. Developer Tools의 응답 영역에서 game-docs 인덱스가 생성되었음을 확인하는 알림이 표시될 겁니다.

game-docs라는 이름의 인덱스는 현재 만들고 있는 게임의 데이터를 저장하기에 좋은 장소입니다. 그럼 rps+-md라는 이름의 문서를 이 인덱스에 추가하여, 게임에 필요한 모든 데이터를 저장해 보겠습니다. 다음 PUT 명령어를 복사하여 Developer Tools 콘솔에 붙여넣으세요.
해당 명령문 옆에 있는 Send request(요청 전송) 버튼을 클릭하여 실행하고 rps+-md 문서를 game-docs 인덱스에 추가하세요.

이제 쿼리할 데이터가 준비되었습니다. Agent Builder를 사용하면 이 과정이 그 어느 때보다 간단해집니다.
최상단 탐색 메뉴에서 Agents(에이전트)를 선택하세요.

그런 다음 기본 Elastic AI 에이전트에게 "What data do I have?(내가 가진 데이터는 무엇인가요?)"라고 묻기만 하면 됩니다.

Elastic AI 에이전트는 데이터를 평가하고 현재 보유한 데이터에 대한 간결한 설명을 제공합니다.
도구 만들기
Elastic에 데이터가 준비되었으니 이제 활용해 보겠습니다. Agent Builder는 에이전트가 작업에 필요한 올바른 컨텍스트를 갖출 수 있도록 데이터에 접근하게 도와주는 MCP 도구를 생성하는 기능을 내장하고 있습니다. 게임 데이터를 조회하는 간단한 도구를 만들어 보겠습니다.
Agent Builder 작업 메뉴를 클릭하세요.

메뉴 옵션에서 View all tools(모든 도구 보기)를 선택하세요.

+ New Tool(새 도구)을 클릭하세요.

Create Tool(도구 생성) 양식에서 도구 유형으로 ES|QL을 선택하고 다음 값을 입력하세요.
Tool ID(도구 ID)에 다음을 입력하세요.
Description(설명)에 다음을 입력하세요.
Configuration(구성)의 경우 ES|QL 쿼리 텍스트 영역에 다음 쿼리를 입력하세요.
완성된 Create tool(도구 생성) 양식은 다음과 같아야 합니다. Save(저장)를 클릭하여 도구를 만드세요.

이제 새로운 도구가 준비되었습니다. 도구는 단순히 보관해 두기보다는 가치 있게 활용해야겠죠. 새로 만든 사용자 지정 도구를 사용할 수 있는 에이전트를 만들어 보겠습니다.
에이전트를 생성하고 도구를 할당하기
Agent Builder를 사용하면 매우 간단하게 에이전트를 만들 수 있습니다. 몇 가지 세부 정보와 함께 에이전트 지침을 입력하기만 하면 됩니다. 이제 에이전트를 만들어보겠습니다.
Manage agents(에이전트 관리)를 클릭하세요.

+ New agent(새 에이전트)를 클릭하세요.

다음 정보를 New Agent(새 에이전트) 양식에 입력하세요.
Agent ID(에이전트 ID)에 아래 텍스트를 입력하세요.
Custom Instructions(사용자 지정 지침) 텍스트 영역에 다음 지침을 입력하세요.
Display name(표시 이름)에 아래 텍스트를 입력하세요.
Display description(표시 설명)에 아리 텍스트를 입력하세요.
Tools(도구) 탭을 클릭하여 이전에 만든 사용자 지정 도구를 에이전트에 제공하세요.

앞서 만든 example.get_game_docs 도구만 선택하세요.

Save(저장)를 클릭하여 새 에이전트를 만드세요.

새 에이전트를 테스트해 보겠습니다. 에이전트 목록에서 원하는 에이전트와 채팅을 시작할 수 있는 편리한 링크가 있습니다.

"start game(게임 시작)"을 입력하기만 하면 게임이 시작됩니다. 잘 작동하는군요.

에이전트의 응답 상단에 게임 개체 선택 항목이 표시되는 것을 볼 수 있습니다. 이를 통해 에이전트의 선택을 확인하고 게임이 예상대로 작동하는지 확인할 수 있습니다. 하지만 상대방의 선택을 미리 알면 가위바위보 게임이 재미있지는 않습니다. 게임을 최종 형태로 다듬고 완성도를 높이기 위해 코드로 에이전트를 제어할 수 있는 에이전트 오케스트레이션 플랫폼을 사용할 수 있습니다.
이제 Strands Agents SDK가 등장합니다.
Strands Agents SDK

새로운 에이전트 개발 프레임워크를 사용해 보고 싶으시다면, Strands Agents SDK가 시도해 볼 만한 가치가 있습니다. Strands Agents SDK는 AWS에서 오픈 소스 Python 구현으로 출시되었으며(2025년 5월), 이제 Typescript 버전도 제공됩니다.
Python에서 Strands Agents SDK 시작하기
코딩 준비를 시작해 보죠. 이제 Strands Agents를 사용해 A2A 프로토콜로 RPS+ 에이전트를 제어하는 예제 앱을 복제하고 실행하는 과정을 빠르게 살펴보겠습니다. 플레이어가 선택을 한 후에 에이전트의 선택이 공개되도록 RPS+ 게임을 좀 더 세밀하게 조정해 보겠습니다. 결국 추측과 예상치 못한 결과가 바로 가위바위보와 같은 게임을 재미있게 만드는 요소이기 때문입니다.
로컬 컴퓨터에서 Visual Studio Code를 열고 새 터미널을 여세요.

새로 열린 터미널에서 다음 명령어를 실행해 Elasticsearch Labs 리포지토리를 복제하세요.
다음 cd 명령어를 실행하여 elasticsearch-labs 디렉토리로 이동하세요.
이제 다음 명령어를 실행하여 Visual Studio Code에서 리포지토리를 여세요.
Visual Studio 파일 탐색기에서 supporting-blog-content와 agent-builder-a2a-strands-agents 폴더를 펼친 다음 elastic_agent_builder_a2a_rps+.py 파일을 여세요. Visual Studio Code에서 파일을 열면 다음과 같이 보입니다.

다음은 텍스트 편집기에서 볼 수 있는 elastic_agent_builder_a2a_rps+.py 내용입니다:
이 코드에서 어떤 일이 일어나고 있는지 살펴보도록 하겠습니다. main() 메서드에서 시작하여, 코드는 에이전트 URL과 API 키에 대한 환경 변수에 접근하는 것으로 시작합니다. 그런 다음 이러한 값을 사용하여 에이전트의 에이전트 카드를 가져오는 데 사용할 수 있는 httpx client를 만듭니다. 그런 다음 클라이언트는 에이전트 카드 세부 정보를 사용하여 '게임 시작' 요청을 에이전트에게 보냅니다. 여기서 한 가지 흥미로운 점은 "start game" 요청의 일부로 random_game_object 값을 포함한다는 점입니다. 이 값은 Python 표준 라이브러리의 random 모듈을 사용하여 생성된 임의의 숫자입니다. 이렇게 하는 이유는 AI 에이전트를 가능하게 하는 강력한 LLM들이 무작위성에 능숙하지 않다는 것이 밝혀졌기 때문입니다. 하지만 걱정 마세요. Python이 해결해 주니까요.
이어서 코드 설명을 계속하자면, 에이전트가 "start game" 요청에 응답한 후, 코드가 에이전트의 게임 객체 선택을 추출하여 agent_choice 변수에 저장합니다. 나머지 응답 내용은 최종 사용자에게 텍스트로 표시됩니다. 그러면 사용자는 게임 객체를 선택하라는 메시지를 받게 되며, 해당 입력은 에이전트로 전송됩니다. 그런 다음 코드는 에이전트의 게임 객체 선택과 함께 게임 결과에 대한 에이전트의 최종 결정을 표시합니다.
에이전트 URL과 API 키를 환경 변수로 설정하기
예제 앱이 로컬 컴퓨터에서 실행되므로 Agent Builder 에이전트와 통신하기 위해서는 에이전트의 A2A URL과 API 키를 Strands Agents SDK에 제공해야 합니다. 예제 앱은 .env라는 파일을 사용하여 이러한 값을 저장합니다.
env.example 파일의 복사본을 만들고 새 파일 이름을 .env로 지정하세요.

Elastic Agent Builder로 돌아가서 필요한 두 가지 값을 모두 얻을 수 있습니다.
페이지 오른쪽 상단의 Agent Builder 작업 메뉴에서 View all tools(모든 도구 보기)를 선택하세요.

Tools(도구) 페이지 상단의 MCP Server 드롭다운을 클릭하고 Copy MCP Server URL(MCP 서버 URL 복사)를 선택하세요.

MCP Server URL을 .env 파일에 붙여넣으세요. <YOUR-ELASTIC-AGENT-BUILDER-URL> 자리 표시자 값은 이 URL로 대체됩니다. 이제 URL을 한 가지 수정해야 합니다. 끝 부분의 텍스트 “mcp”를 “a2a”로 바꿔야 하는데, 이는 A2A 프로토콜이 Agent Strands SDK가 Elastic Agent Builder에서 실행 중인 에이전트와 통신하는 데 사용되기 때문입니다.
편집된 URL은 다음과 같이 표시될 것입니다.
Elastic Cloud에 있는 동안 얻어야 하는 또 다른 값은 API 키입니다. 최상단 탐색 메뉴에서 Elasticsearch를 클릭하세요.

Copy API Key(API 키 복사) 버튼을 클릭해 API 키를 복사하세요.

이제 Visual Studio Code로 돌아가 .env 파일에 API 키를 붙여넣어 <YOUR-ELASTIC-API-KEY> 자리 표시자 텍스트를 대체하세요. .env 파일은 다음과 같이 표시될 것입니다.

예제 앱 실행하기
Visual Studio Code에서 새 터미널을 여세요.

터미널에서 다음 cd 명령어를 실행하여 시작하세요.
다음 명령어를 실행하여 Python 가상 환경을 생성하세요.
사용 중인 컴퓨터의 운영 체제에 따라 다음 명령어를 실행해 가상 환경을 활성화하세요.
- macOS/Linux
- Windows
이 예제 앱은 Strands Agents SDK를 사용하며, 이제 SDK를 설치할 차례입니다. 다음 명령어를 실행하여 Strands Agents SDK와 필요한 모든 Python 라이브러리 종속성을 설치하세요.
이제 실행 준비를 끝내고 카운트다운을 시작할 시간입니다. 이 앱을 시작할 준비가 되었으니, 뒤로 물러나세요. 다음 명령어를 사용하여 실행해 보겠습니다.
이제 RPS+ 게임을 즐겨보세요. 정말 수고하셨습니다. 행운을 빕니다!

관련성 있는 컨텍스트를 활용해 AI 앱을 구축하기
이제 AI 에이전트를 구축할 수 있는 기술을 갖추게 되었습니다. 또한 Strands Agents SDK와 같은 에이전트 개발 프레임워크에서 A2A를 통해 Elastic Agent Builder 에이전트를 사용하는 것이 얼마나 쉬운지도 확인했습니다. Elastic을 사용하여 사용자 지정 데이터의 관련 컨텍스트와 연결된 AI 에이전트를 만들어 보세요.




