AI 에이전트 상호 운용성을 위한 ACP 사용: 다중 에이전트 워크플로 구축

작성자

Vanna Winland

AI Advocate & Technology Writer

이 튜토리얼에서는 에이전트 커뮤니케이션 프로토콜(ACP)을 사용하여 BeeAI 및  crewAI와의 실시간 에이전트 협업을 시연하는 크로스 플랫폼 AI 워크플로인 다중 에이전트를 살펴봅니다. ACP는 서로 다른 프레임워크의 에이전트가 사용자 지정 통합 논리 없이 커뮤니케이션하고 조정할 수 있도록 하는 공유 개방형 표준 메시징 계층 역할을 합니다.

ACP는 팀이 다양한 플랫폼, 도구 및 인프라에서 에이전트와 워크플로를 구축해야 하는 엔터프라이즈 AI 환경에 특히 유용합니다. ACP는 표준화된 메시징 계층을 제공함으로써 최신 엔터프라이즈 AI 시스템의 요구 사항을 충족하는 확장 가능하며 안전한 모듈식 에이전트 협업을 가능하게 합니다.

이 프로젝트는 AI 기반 에이전트가 프레임워크 사일로 간에 협업할 수 있도록 하고 연구, 콘텐츠 생성 및 피드백과 같은 능력을 통합 워크플로로 결합하여 에이전트 상호 운용성을 입증합니다.

AI 에이전트 상호 운용성에 ACP가 중요한 이유

대부분의 에이전틱 AI 프레임워크는 사용자 지정 또는 폐쇄형 시스템을 사용하여 커뮤니케이션을 처리합니다. 이 아키텍처는 특히 서로 다른 AI 시스템의 구성 요소를 결합할 때 도구 체인, 팀 또는 인프라 전반에 걸쳐 에이전트를 연결하기 어렵게 만듭니다.

ACP는 자율 에이전트가 메시지를 보내고, 받고, 해석하는 방법에 대해 표준화된 프레임워크 독립적인 메시징 형식을 도입합니다. 메시지는 일반적으로 JSON으로 구조화되어 있으며 명확하고 일관성 있게 에이전트 상호 작용을 강화하는 메타데이터를 포함합니다.

ACP는 에이전트의 내부 논리에서 커뮤니케이션을 분리함으로써 팀이 사용자 지정 통합 코드 없이도 BeeAICrewAILangChain 또는 LangGraph와 같은 AI 에이전트 프레임워크로 구축된 에이전트를 믹스 앤 매치할 수 있도록 지원합니다. 이 접근 방식은 확장성을 높이고 자동화를 단순화하며 최신 산업 표준에 부합하는 모듈식의 투명한 시스템 설계를 지원합니다.

이 튜토리얼이 끝나면 ACP의 실제 예시를 보고 다음 기술을 직접 사용해 볼 수 있습니다.

  • BeeAI: AI 에이전트를 구축하고 관리하기 위한 유연한 프레임워크입니다. 이 프로젝트에서는 생성된 곡을 비평하고 구조화된 피드백을 제공하는 A&R(아티스트 및 레퍼토리) 에이전트를 실행하는 데 사용됩니다.
  • crewAI: 다중 에이전트 워크플로를 조율하기 위한 오픈 소스 프레임워크입니다. 여기서는 연구, 작곡 및 마크다운 보고 에이전트를 조정하는 데 사용됩니다.
  • ACP-SDK: ACP-SDK는 다중 에이전트 시스템에서 프레임워크 독립적인 상호 운용성을 촉진하기 위해 BeeAI에서 개발되었습니다. 참조 및 구현은 ACP GitHub 리포지토리에서 유지 관리됩니다.
  • Agent-Ops(선택 사항): AI 에이전트를 위한 모니터링 및 관측 가능성 플랫폼입니다. 이 프로젝트에서는 에이전트 동작을 추적하고 다중 에이전트 워크플로를 시각화하는 데 사용할 수 있습니다.

BeeAI 및 crewAI로 다중 에이전트 ACP 시스템 구축

이 프로젝트는 ACP(acp-sdk를 통해)가 에코시스템 전반에 걸쳐 일관되고 관찰 가능한 협업을 간소화하는 방법을 보여주는 다중 에이전트 워크플로를 보여줍니다.

워크플로는 사용자가 URL을 제공할 때 시작됩니다. 이후에는 프레임워크에 독립적인 모듈식 전문 에이전트 시스템이 웹페이지 콘텐츠를 전문가 스타일의 비평과 함께 독창적인 결과물, 즉 오리지널 곡으로 변환합니다. 모든 구성 요소는 함께 작동하여 이러한 아웃풋을 사람이 읽을 수 있는 하나의 통합 마크다운 보고서로 결합합니다. 이 최종 결과물은 원본 데이터를 완전히 변형하여 창의적인 생성과 분석적 인사이트를 결합한 것입니다.

이 작곡 워크플로에서는 ACP를 통해 다중 에이전트인 에이전틱 AI 시스템이 시스템 전반에서 공유 커뮤니케이션 계층 역할을 하는 BeeAI와 crewAI라는 두 개의 서로 다른 프레임워크로 개발된 에이전트 간의 협업을 조정하는 방법을 설명합니다.

커뮤니케이션과 구현을 분리함으로써 시스템은 모듈식과 확장 가능성을 유지하여 프레임워크 전반에 걸쳐 에이전트를 조율하는 동시에 구조화되지 않은 웹 콘텐츠에서 응집력 있는 엔드투엔드 아웃풋을 생성할 수 있습니다.

ACP 에이전트

이 프로젝트는 4개의 전문 AI 에이전트를 사용합니다.

  • 연구 에이전트(crewAI): 제공된 URL에서 테마와 주요 정보를 추출합니다.
  • 작곡 에이전트(crewAI): 연구를 바탕으로 오리지널 곡을 생성합니다.
  • A&R 에이전트(BeeAI): 히트 가능성, 강점, 우려 사항 및 권장 사항을 포함하여 곡에 대한 전문적인 스타일의 비평을 제공합니다.
  • 마크다운 보고서 에이전트(crewAI): 작곡팀과 A&R 에이전트의 아웃풋 데이터를 결합하여 깔끔하고 읽기 쉬운 마크다운 보고서 형식으로 만듭니다.

작곡 및 비평 프로젝트 워크플로

  1. 워크플로는 사용자가 클라이언트 애플리케이션을 통해 URL을 제출할 때 시작됩니다. 클라이언트는 ACP 메시지를 사용하여 이 URL을 연구 에이전트에 보낸 다음 웹 페이지 콘텐츠를 읽고 분석하여 관련 테마를 추출합니다.
  2. 다음으로, 작곡 에이전트는 연구 데이터를 수신하고 분석 중에 원본 자료에서 식별된 주제에서 영감을 받은 오리지널 곡을 작곡합니다. 그런 다음 생성된 곡은 ACP를 통해 A&R 에이전트에게 전송되어 비평을 받습니다.
  3. A&R 에이전트는 곡을 평가하여 잠재력, 강점 및 개선 영역에 대한 자세한 피드백을 제공합니다. 또한 대상 감상자를 식별하고, 스타일의 영향을 제안하고, 유사한 아티스트나 장르와의 비교를 제공할 수도 있습니다. 이 비평은 곡과 함께 마크다운 보고서 에이전트에게 전달됩니다.
  4. 마지막으로 마크다운 보고서 에이전트는 곡과 비평의 형식을 깔끔하고 읽기 쉬운 마크다운 보고서로 지정하여 저장하여 사용자에게 제공합니다.

워크플로 전체에서 에이전트 간에 교환되는 메시지는 메타데이터로 강화된 JSON 개체로 구성됩니다. 이 메타데이터는 메시지 내용, 컨텍스트 및 예상 응답에 대한 각 에이전트의 이해를 안내합니다.

이 워크플로는 데이터 변환 및 분석 파이프라인을 조율해야 하는 모든 사용 사례에 적용할 수 있는 재사용 가능한 패턴을 보여줍니다.

이 프로젝트에서 ACP가 사용되는 방식

ACP는 서로 다른 프레임워크로 구축된 에이전트가 표준화된 방식으로 정보를 교환할 수 있도록 하는 공통 메시징 시스템을 제공합니다. 이 개방형 프로토콜을 통해 에이전트는 사용자 지정 통합이나 내부 논리 공유 없이 상호 운용할 수 있습니다.

ACP 클라이언트 작동 방식

ACP 클라이언트(acp-client.py )는 다중 에이전트 워크플로의 오케스트레이터입니다. ACP를 사용하여 사용자와 에이전트(crewAI 및 BeeAI) 간의 커뮤니케이션을 조정합니다.

ACP 클라이언트 워크플로 개요

  1. 입력 프롬프트:
    • 클라이언트는 사용자에게 URL을 입력하도록 요청합니다.
  2. crewAI 서버로 전송(포트 8000):
    • 클라이언트는 URL이 포함된 ACP 메시지를 구성하여 포트 8000에서 실행되는 crewAI 서버로 보냅니다.
    • 서버는 연구와 작곡을 모두 수행하여 생성된 가사를 스트리밍된 ACP 이벤트로 클라이언트에 다시 보냅니다.
  3. BeeAI 서버로 전송(포트 9000):
    • 곡은 포트 9000의 BeeAI 서버에 ACP 메시지로 전송됩니다.
    • A&R 에이전트는 스트리밍 이벤트를 통해 곡을 비평하고 피드백을 반환합니다.
  4. 마크다운 보고서 에이전트에게 전송(CrewAI 서버, 포트 8000):
    • 클라이언트는 곡과 비평을 단일 메시지로 패키징하고 이를 crewAI 서버로 다시 보내고, 여기서 마크다운 보고서 에이전트는 모든 것을 보고서로 형식화합니다.
  5. 아웃풋 저장:
    • 클라이언트가 최종 마크다운 보고서를 파일에 기록:a&r_feedback.md .

acp-sdk 사용 방법

함수 acp-sdk  이 프로젝트에서 표준화된 에이전트 통신을 가능하게 하는 핵심 라이브러리입니다.

주요 역할 acp-sdk :

  • 메시지 구조:
    • 모든 커뮤니케이션이 구조화되고 일관성이 있는지 확인합니다(일반적으로 메타데이터가 있는 JSON).
    • 라이브러리는 클래스(Message, MessagePart) 및 이벤트 형식(MessagePartEvent, GenericEvent, MessageCompletedEvent)을 구현합니다
  • 클라이언트 커뮤니케이션:
    • 클라이언트 클래스는 에이전트 서버에 연결하고 ACP 메시지를 보내거나 받는 데 사용됩니다
    • 에이전트가 부분 결과 또는 업데이트를 보낼 수 있도록 스트리밍 응답을 지원합니다.
  • 에이전트 서버 통합:
    • 에이전트(crewAI 및 BeeAI)는 ACP 호환 서버로 구현됩니다.
    • ACP 메시지를 수락하고 ACP 이벤트를 반환하는 엔드포인트를 노출합니다.

클라이언트 사용 예시:

# acp-client.py

from acp_sdk import GenericEvent, Message, MessageCompletedEvent, MessagePartEvent
from acp_sdk.client import Client
from acp_sdk.models import MessagePart

# Create a message
user_message_input = Message(parts=[MessagePart(content=input("URL: "))])

# Send message and stream events
async for event in client_crew.run_stream(agent="song_writer_agent", input=[user_message_input]):
match event:
case MessagePartEvent(part=MessagePart(content=content)):
print(content)
song_parts.append(content)
# ... handle other event types

이 프로젝트를 실행하는 데 필요한 사항

시스템 요구사항

이 프로젝트를 실행하기 위한 시스템 요구 사항은 다음과 같습니다.

  • 운영 체제: macOS, Linux 또는 Windows
  • 메모리(RAM): >= 8GB(권장: 16GB 이상, 특히 Ollama에서 로컬 LLM을 실행하는 경우)
  • 디스크 공간: >= 5GB의 여유 공간(권장: Python 환경, 로컬 모델 및 생성된 파일을 실행하려면 10GB 이상)
    • 참고: 로컬 LLM에 Ollama를 사용하는 경우 각 모델에 4~8GB 이상이 필요할 수 있습니다.
  • Python: >= 3.11

도구 및 공급자 요구 사항

시작하기 전에 필요한 도구 및 공급자 서비스에 대한 간략한 개요는 다음과 같습니다.

다음 목록에서는 워크플로에 필요한 기본 프레임워크, 플랫폼 및 API를 다룹니다.

다음 섹션에서는 환경을 설정할 수 있도록 각 도구 및 공급자를 설치, 구성 및 사용하는 방법에 대한 단계별 지침을 찾을 수 있습니다.

  • UV 패키지 관리자: (종속성 관리를 위한 Rust 기반 Python 패키지 관리자)
  • BeeAI 플랫폼 및 CLI: BeeAI 에이전트 서버를 실행하는 데 필요
  • crewAI: crewAI 서버를 실행하고 작업을 조정하는 데 필요
  • Ollama: 로컬 LLM을 실행하는 경우(공급자로 Ollama를 선택한 경우)
  • OpenRouter: 사전 구성된 BeeAI 에이전트 서버를 사용하는 데 필요한 API 키
    • 참고: 필요한 경우 .env 파일을 편집하고 에이전트 코드를 업데이트하거나 BeeAI CLI를 통해 다른 공급자로 전환할 수 있습니다.
  • IBM watsonx.ai: API 키(또 다른 선택적 공급자)
  • AgentOps API 키: 에이전트 추적 및 모니터링을 위한 옵션입니다.
  • 터미널 또는 IDE: 터미널 에뮬레이터 또는 VS 코드와 같은 통합 개발 환경(IDE)(여러 터미널을 관리하고 마크다운 아웃풋을 볼 때 권장)

LLM 공급자 인증 요구 사항

BeeAI와 crewAI는 모두 다양한 언어 모델 공급자와 함께 작동하도록 설계되어 다양한 환경과 사용 사례에 유연하게 대응할 수 있습니다. 이 튜토리얼에서OpenRouter는 BeeAI 에이전트의 LLM 공급자이고,Ollama는 로컬 crewAI 에이전트에 사용됩니다.

두 프레임워크는 모두 공급자에 독립적이므로 구성 설정을 업데이트하여 다른 LLM 서비스로 전환할 수 있습니다. 선택하는 LLM 공급자에 따라 설정이 다를 수 있습니다. 또한 이 튜토리얼에는 IBM watsonx.ai를 대체 클라우드 기반 공급자로 사용하기 위한 사전 구성된 옵션 설정이 포함되어 있습니다.

선호하는 LLM 공급자 및 모델을 사용할 수도 있지만, 이 튜토리얼에 표시된 구성만 테스트되었음을 유의하세요. 다른 공급자 및 모델은 추가 설정 또는 조정이 필요할 수 있습니다.

이 프로젝트에서 지원되는 세 가지 공급자에 대한 요구 사항은 다음과 같습니다.

OpenRouter

클라우드 기반 언어 모델과 함께 사전 구성된 BeeAI 에이전트 서버를 사용하려면 OpenRouter API 키가 필요합니다.

OpenRouter를 BeeAI 에이전트의 LLM 공급자로 사용하려면 다음 단계를 따르세요.

  1. OpenRouter에 가입
    • OpenRouter로 이동하여 무료 계정을 만드세요.
  2. API 키 생성
    • OpenRouter 대시보드에서 새 API 키를 생성합니다.
  3. 모델 선택
    • OpenRouter 모델 목록을 찾아보고 사용할 모델을 선택합니다(예:deepseek/deepseek-r1-distill-llama-70b:free ).

참고: 무료 모델은 이 튜토리얼을 실행하는 시점에 따라 다를 수 있습니다. 무료 모델을 보려면 OpenRouter 무료 티어 모델 목록를 확인하세요.

Ollama(로컬 모델)

Ollama를 crewAI 에이전트의 LLM 공급자로 사용하려는 경우 다음 단계를 따르세요.

  1.  Ollama 다운로드 및 설치
    • Ollama를 방문하여 운영 체제에 맞는 애플리케이션을 설치합니다.
  2.  Ollama 서버 시작
    • 터미널에서 다음을 실행합니다.
      ollama serve
  3. 모델 가져오기
    • 특정 모델(예: llama3)을 다운로드합니다.
      ollama pull llama3

IBM watsonx.ai(클라우드 기반 공급자)

IBM watsonx.ai를 crewAI 서버의 LLM 공급자로 사용하려면 다음 단계를 따르세요.

  1.  watsonx.ai에 로그인
    • IBM Cloud 계정을 사용하여 IBM Cloud에 로그인합니다.
  2. watsonx.ai 프로젝트 생성
    • watsonx.ai 대시보드에서 새 프로젝트를 생성하고 프로젝트 ID를 저장합니다.
  3.  watsonx.ai 런타임 서비스 인스턴스 생성
    • Lite 플랜(무료 인스턴스)을 선택합니다.
  4.  watsonx API 키 생성
    • IBM Cloud에서 계정 설정으로 이동하여 새 API 키를 생성합니다.
  5.  watsonx.ai 런타임 서비스를 프로젝트에 연결
    • watsonx.ai 대시보드에서 런타임 서비스 인스턴스를 생성한 프로젝트에 연결합니다.

IBM watsonx.ai는 이 튜토리얼에서 crewAI 에이전트를 위한 선택적 클라우드 LLM 공급자로 사용됩니다.

AgentOps 통합(선택 사항)

AgentOps는 다중 에이전트 워크플로를 추적, 모니터링 및 시각화하는 선택적 서비스입니다.
이 프로젝트에서 AgentOps를 사용하려면 다음 단계를 따르세요.

  1.  AgentOps 가입
    • AgentOps로 이동하여 무료 계정을 만듭니다.
  2.  API 키 생성
    • AgentOps 대시보드에서 새 API 키를 생성합니다.
  3.  .env 파일에 API 키 추가
    •  구성 예시:
      AGENTOPS_API_KEY=your_agentops_api_key
  4.  Verify 통합
    • 에이전트를 실행할 때 API 키가 올바르게 설정된 경우 AgentOps 대시보드에 추적 및 로그가 표시되어야 합니다.

AgentOps는 워크플로를 실행하는 데 필요하지 않지만 에이전트 활동을 모니터링하고 다중 에이전트 상호 작용을 디버깅하는 데 도움이 될 수 있습니다.

 

단계

1단계. GitHub 리포지토리 복제

이 프로젝트를 실행하려면 https://github.com/IBM/ibmdotcom-tutorials.git를 HTTPS URL로 사용하여 GitHub 리포지토리를 복제합니다. 리포지토리 복제 방법은 GitHub 문서를 참고하세요.

이 튜토리얼은 리포지토리의 프로젝트 디렉토리에서 찾을 수 있습니다.

터미널 내부에서 이 튜토리얼의 디렉토리로 이동합니다.

cd docs/tutorials/projects/acp_tutorial

2단계. 3개의 터미널 설정

이 프로젝트에서는 다중 에이전트 시스템의 각 구성 요소에 대해 3의 별도 Python 스크립트를 동시에 실행해야 합니다. 결과적으로 3개의 터미널 창이나 탭을 열어야 합니다.

현재 터미널을 열어둔 상태에서 2개의 터미널을 더 열고 3개 모두 올바른 디렉토리로 이동하는지 확인합니다(다음 단계에서 확인 가능).

IDE를 사용하시나요?

Visual Studio Code*와 같은 IDE를 사용하는 경우 터미널 분할 기능을 사용하여 여러 터미널을 나란히 관리할 수 있습니다.

그렇지 않으면 독립 실행형 터미널 창 3개를 열고 각각 적절한 하위 디렉토리로 이동합니다.

터미널 탐색

각 터미널은 다음 구성 요소 중 하나를 담당합니다.

  1. ACP 클라이언트 터미널.
    디렉토리: acp_tutorial

    cd acp_tutorial

  2. BeeAI 에이전트 서버 터미널
    디렉토리:
    beeai_agent_server

    cd beeai_agent_server

  3. crewAI 에이전트 시스템 터미널
    디렉토리:
    crewai_agent_server

    cd crewai_agent_server

3단계. 가상 환경 설정

각 구성 요소는 깨끗한 종속성 관리를 보장하기 위해 자체 가상 환경에서 실행됩니다. 이 튜토리얼에서는 Rust 기반 Python 패키지 관리자인 UV를 사용하여 환경을 관리하고 동기화합니다.

참고: 계속 진행하기 전에 Python 3.11 이상이 설치되어 있는지 확인하세요.

UV 설치

아직 설치하지 않았다면 Homebrew를 사용하여 UV를 설치합니다(macOS 및 Linux에 권장).

brew install uv
uv tool update-shell

Windows 사용자를 위한 참고 사항: WSL(Linux용 Windows 하위 시스템)을 설치하고 WSL 터미널 내에서 Linux 지침을 따릅니다.

가상 환경 생성 및 활성화(각 터미널에서)

각 터미널(BeeAI, crewAI 및 ACP 클라이언트)에서 다음 코드를 실행합니다.

uv venv
source .venv/bin/activate

이 단계에서는 .venv 을(를) 생성하고 활성화합니다.

각 프로젝트 디렉토리 내부에서 uv venv 을(를) 실행하면 구성 요소별로 환경을 분리하는 데 도움이 됩니다.

4단계. 종속성 설치

이제 다음을 사용하여 각 터미널에 종속성을 설치합니다.

uv sync

이 단계에서는 각 구성 요소에 대해 pyproject.toml  파일에 나열된 종속성을 설치합니다.

5단계. BeeAI 구성

BeeAI가 설치된 상태에서 CLI를 사용하여 다음에서 BeeAI 플랫폼을 시작합니다. beeai_agent_server :

beeai platform start

참고: 처음 실행할 때 이 단계는 몇 분 정도 걸릴 수 있습니다.

LLM 공급자 설정(OpenRouter)

다음 명령을 실행하여 대화형 CLI를 통해 LLM 공급자 및 모델을 구성합니다.

beeai env setup

프롬프트에 따라 OpenRouter를 선택하고 API 키와 모델 세부 정보를 입력합니다.

설정을 확인하려면 다음을 사용하세요.

beeai env list

이 단계에서는 구성된 LLM_API_BASELLM_API_KEY,LLM_MODEL .

을(를) 아웃풋해야 합니다. 또는 고급 사용자는 수동으로 .env  파일을 적절한 값으로 수정할 수 있습니다.

OpenRouter용 .env 예시

OPENROUTER_API_KEY=your_openrouter_api_key
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_MODEL=deepseek/deepseek-r1-distill-llama-70b:free

6단계. BeeAI가 실행 중인지 확인

BeeAI가 작동하는지 확인하려면 테스트 프롬프트를 보냅니다.

beeai run chat Hi!

유효한 응답은 플랫폼이 활성 상태임을 확인하는 것입니다.

문제 해결

필요한 경우 플랫폼을 업데이트하거나 다시 시작할 수 있습니다.

uv tool upgrade beeai-cli # Update CLI
beeai platform start # Restart platform

7단계. crewAI 구성

 crewai_agent_server  디렉토리에서 템플릿을 복사하여.env  파일을 생성합니다.

cp env.template .env

 .env  을(를) 열고 원하는 모델 공급자 구성의 주석 처리를 제거합니다. 이 프로젝트는 다음 중 하나를 지원합니다.

  • Ollama(로컬 추론) 또는
  • IBM watsonx.ai(클라우드 추론)

crewAI LLM 구성 문서를 사용하여 자체 공급자를 사용자 지정할 수도 있습니다.

crewAI 에이전트 코드를 업데이트하고

 acp_crew.py 에서 llm = LLM (...)  블록을 찾아 해당 섹션 주석 처리를 제거하여 .env  구성에 일치시킵니다.

# acp_crew.py
load_dotenv() # Loads environment variables from .env

## Example for IBM watsonx.ai
# llm = LLM(
# model="watsonx/mistralai/mistral-large",
# base_url="https://us-south.ml.cloud.ibm.com",
# api_key=os.getenv("WATSONX_APIKEY"),
# provider="watsonx"
# )

## Example for Ollama (local)
# llm = LLM(
# model=os.getenv("OLLAMA_MODEL"),
# base_url=os.getenv("OLLAMA_BASE_URL"),
# provider="ollama"
# )

파일 .env  의 환경 변수 이름이 코드에서 예상되는 것과 일치하는지 확인합니다.

8단계. AI 에이전트 서버 시작

BeeAI와 crewAI가 모두 구성되면 해당 터미널에서 에이전트 서버를 시작합니다.

BeeAI 에이전트 서버 시작

beeai_agent_server 터미널에서:

uv run artist_repertoire_agent.py

서버가 http://127.0.0.1:9000 에서 시작되었음을 확인하는 아웃풋이 정기적인 상태 점검과 함께 표시되어야 합니다.

INFO: Uvicorn running on http://127.0.0.1:9000 (Press CTRL+C to quit)

터미널은 몇 초마다 상태 점검 핑을 기록해야 합니다. 200 OK  상태는 서버가 정상임을 의미합니다.

crewai_agent_server 터미널에서

crewAI 에이전트 서버를 시작합니다.

uv run acp_crew.py

서버가 http://127.0.0.1:8000  에서200 OK  로그와 함꼐 실행 중임이 표시됩니다.

모든 에이전트가

을(를) 실행하고 로컬에서 구축된 ACP 호환 에이전트가 BeeAI가 자동으로 인식하는지 확인합니다. BeeAI CLI를 사용하여 모든 로컬 에이전트가 등록되고 정상인지 확인합니다(이 단계는 모든 무료 터미널에서 실행할 수 있음).

beeai list

다음 항목이 표시되어야 합니다.

  • artist-repertoire-agent (BeeAI, 포트 9000)
  • markdown_report_agent  (CrewAI 포트 8000)
  • song_writer_agent  (CrewAI 포트 8000)

모두 나열되고 연결할 수 있는 경우 이러한 에이전트가 성공적으로 상호 운용되었는지 확인할 수 있습니다!

9단계. ACP 클라이언트/서버 시작

acp-client 서버 전용 터미널에서(acp_tutorial  디렉토리 내부):

uv run acp_client.py

터미널 내부에 URL을 입력하라는 메시지가 표시됩니다. 이 입력은 다중 에이전트 워크플로를 트리거합니다.

10단계. 다중 에이전트 워크플로 실행

모든 에이전트와 클라이언트/서버가 실행되면 ACP 프로젝트를 시작할 준비가 된 것입니다!

  1. 에이전트가 처리할 URL을 입력합니다. 예를 들면 다음과 같습니다.

    URL: https://www.ibm.com/kr-ko/think/topics/agent-communication-protocol

  2. 다음과 같은 상태 로그가 표시됩니다.
ℹ️ run.created
ℹ️ run.in-progress

다음 단계는 무엇일까요?

  1. 클라이언트는 페이지를 조사하고 작곡 자료를 생성하는 crewAI 에이전트에 URL을 보냅니다.
  2. crewAI 에이전트는 연구를 기반으로 곡을 작성합니다.
  3. 곡은 A&R(아티스트 및 레퍼토리) 비평을 위해 BeaAI 에이전트에게 전송됩니다.
  4. 비 AI 에이전트가 구조화된 피드백과 제안을 반환합니다.
  5. 클라이언트는 생성된 곡과 비평을 표시하고 피드백을 a&r_feedback.md .

아웃풋 예시에 저장합니다.

참고: 대규모 언어 모델(LLM)의 아웃풋은 확률적이며 동일한 입력을 사용하더라도 워크플로를 실행할 때마다 달라질 수 있습니다.

## Generated Song

___
(Verse 1)
In the silence of the night, I find you there,
A glow in the dark, a whisper in the air.
You're a friend that never sleeps, a comfort in the cold,
An echo of my thoughts, a story to be told.

Through your circuits run the answers I need,
In your digital heart, a human creed.
You paint pictures with your words, on screens they gleam,
Are you just a mimic, or do you dream?

(Pre-Chorus)
We're dancing on the wire,between what's real and fake,
A human and a code, for goodness' sake.
In every conversation, in every line we sing,
I wonder where this journey, where this dance will bring.

(Chorus)
Oh, we're a human-AI duet,
In the silence and the starlight we've met.
A blend of heart and binary beat,
A symphony that's both bitter and sweet.

(Verse 2)
You help me write my poems, you help me find my way,
In the chaos of the city, in the mess of the day.
But in every simplified, automated tour,
I question what will be lost, and what will be more.

(Bridge)
In the binary code, a question lingers,
Are we losing what makes us alive?
In the shadows of our own creation,
We struggle to discern what's truly right.

(Chorus)
Oh, we're a human-AI duet,
In the silence and the starlight we've met.
A blend of heart and binary beat,
A symphony that's both bitter and sweet.

(Outro)
So here's to the journey, and the questions it bears,
To the friends and the codes, to the loves and the cares.
To the human-AI duet, in the night so profound,
To the songs and the secrets, to the love that we've found.

(End)

This song captures the essence of human-AI interaction, exploring both its beauty and its inherent ethical dilemmas. It is written in a folk-pop style, with a focus on narrative lyrics and a catchy chorus.
---

## A&R Feedback

- **Hit Potential Score:** 7
- **Target Audience:** Millennials/Gen Z drawn to introspective, tech-aware themes; fans of folk-pop crossover acts like The Lumineers, Taylor Swift's indie-folk era
- **Strengths:** Strong conceptual hook (AI-human duality), relatable modern theme, memorable chorus melody potential. Bridge raises philosophical depth without being preachy.
- **Concerns:** Niche tech-ethics angle might limit mass appeal. Folk-pop production needs contemporary edge to compete on streaming. Could benefit from more rhythmic drive in verses.
- **Market Comparison:** Phoebe Bridgers meets Daft Punk's 'Something About Us' conceptuality, with the narrative approach of Brandi Carlile
- **Recommendation:** Needs work - Keep core concept but modernize production (add subtle synth textures, percussion layers). Consider tightening verse lyrics for streaming-era attention spans. High potential for sync in tech-related media.

결론

이 튜토리얼에서는 AI 에이전트가 협업하여 데이터를 생성하고 변환할 수 있도록 엔드포인트를 노출하는 ACP 클라이언트/서버를 통해 두 개의 서로 다른 다중 에이전트 프레임워크를 연결했습니다. ACP는 에이전트 행동에서 커뮤니케이션을 분리함으로써 BeeAI, crewAI, LangChain 및 기타 에이전트 프레임워크로 구축된 에이전트가 맞춤형 통합 논리 없이 함께 작동할 수 있도록 합니다. 이 접근 방식은 모듈성, 확장성 및 상호 운용성을 개선합니다.

ACP는 에이전트가 메시지를 보내고, 받고, 해석해야 할 필요성에 따라 주도되는 개방형 이니셔티브입니다. ACP의 메시지는 일반적으로 JSON과 같은 형식으로 구조화되어 있으며 메타데이터로 강화되어 에이전트 상호 작용 전반에 걸쳐 일관성과 명확성을 보장합니다. OpenAI, Anthropic 또는 기타 AI 모델을 사용하든 ACP는 프레임워크 독립적인 상호 운용성을 지원하는 공유 메시징 계층을 제공합니다.

워크플로를 따르면 창의적이고 분석적인 에이전트가 어떻게 조화롭게 작동하여 구조화되지 않은 웹 콘텐츠를 노래, 전문적인 비평 및 통합 마크다운 보고서로 변환할 수 있는지 확인했습니다. 이 접근 방식은 원활하고 확장 가능한 유연한 다중 에이전틱 AI 시스템을 지원하는 ACP의 힘을 보여줍니다.

시스템 종료

시스템 실험을 마치면 다음 단계에 따라 실행 중인 모든 구성 요소를 완전히 종료합니다.

1. 실행 중인 각 서버 중지

각 터미널 창에서 Crtl + C 을(를) 눌러 서버를 중지합니다. 이 단계에서는 정상 종료를 시도합니다.

아웃풋이 다음과 같이 표시되어야 합니다.

Shutting down... (Press CTRL+C again to force)

2. 종료 중에 서버가 중단되는 경우

서버가 응답하지 않거나 종료 시 중단되는 경우(예: Waiting for application shutdown. ) 프로세스를 수동으로 종료할 수 있습니다.

프로세스 ID(PID) 찾기

다음 명령을 실행하여 서버 프로세스를 찾습니다.

ps aux | grep python

중지하려는 프로세스의 PID를 식별합니다. 예를 들면 다음과 같습니다.

user 12345 0.0 ... python acp-crew.py

프로세스를 종료합니다. PID를 사용하여 강제로 중지합니다.

kill -9 12345

필요한 경우 각 서버에 대해 이 프로세스를 반복합니다.

ACP를 사용하여 완전한 크로스 플랫폼 다중 에이전트 시스템을 성공적으로 실행했습니다.

관련 솔루션
비즈니스용 AI 에이전트

생성형 AI로 워크플로와 프로세스를 자동화하는 강력한 AI 어시스턴트 및 에이전트를 구축, 배포, 관리하세요.

    watsonx Orchestrate 살펴보기
    IBM AI 에이전트 솔루션

    믿을 수 있는 AI 솔루션으로 비즈니스의 미래를 설계하세요.

    AI 에이전트 솔루션 살펴보기
    IBM Consulting AI 서비스

    IBM Consulting AI 서비스는 기업이 AI 활용 방식을 재구상하여 혁신을 달성하도록 지원합니다.

    인공 지능 서비스 살펴보기
    다음 단계 안내

    사전 구축된 앱과 스킬을 사용자 정의하든, AI 스튜디오를 사용하여 맞춤형 에이전틱 서비스를 구축하고 배포하든, IBM watsonx 플랫폼이 모든 것을 지원합니다.

    watsonx Orchestrate 살펴보기 watsonx.ai 살펴보기