ACP(에이전트 통신 프로토콜)를 사용한 다중 에이전트 시스템 구축

ACP(에이전트 통신 프로토콜)를 사용한 다중 에이전트 시스템 구축

인공지능의 세계가 확장됨에 따라 개발자들은 단일에서 벗어나고 있습니다. AI 여러 전문 에이전트가 협력하여 문제를 해결하는 복잡한 다중 에이전트 시스템에 대한 모델입니다.

이러한 변화는 엄청난 과제를 안겨줍니다. 서로 다른 팀이 서로 다른 도구를 사용하여 개발했을 수 있는 이러한 다양한 에이전트들이 서로 효과적으로 소통하도록 하려면 어떻게 해야 할까요? 바로 이 부분에서 표준화된 프로토콜이 필수적입니다. 

에이전트 통신 프로토콜 (ACP)은 에이전트 간 통신을 위한 통합 언어를 제공하여 시스템의 확장성, 유연성 및 관리 용이성을 향상시키는 솔루션을 제공합니다.

이 가이드는 에이전트 통신 프로토콜을 사용하여 확장 가능한 다중 에이전트 통신 시스템을 구축하는 방법에 대한 자세한 안내를 제공합니다.

에이전트 통신 프로토콜(ACP)이란 무엇입니까?

ACP(Agent Communication Protocol)는 통신 방식을 표준화하기 위해 설계된 개방형 프로토콜입니다. AI 자치령 대표 서로 소통합니다. 영어나 중국어처럼 소프트웨어 에이전트를 위한 공통어라고 생각하면 됩니다.

건축 조명 f865806d00
이미지 출처: IBM 꿀벌AI 프로젝트

이 솔루션은 에이전트가 어떤 프로그래밍 언어 나 프레임워크로 구축되었는지 에 관계없이 원활하게 협업할 수 있도록 통합 인터페이스를 제공합니다 . 이는 에이전트 통합을 위해 종종 에이전트가 업데이트될 때마다 오류가 발생하는 취약한 맞춤형 코드를 작성해야 하는 다중 에이전트 시스템 개발의 주요 문제점을 해결합니다.

image?url=https%3A%2F%2Fresearch 웹사이트 제품 CMS 업로드.s3.us.cloud 객체 저장소.appdomain.cloud%2FBee AI 애니메이션 8a662c5834

IBM Research에서 개발했으며 현재 Linux Foundation의 일부입니다. 꿀벌AI 프로젝트ACP는 간단하면서도 강력한 클라이언트-서버 아키텍처를 기반으로 구축되었습니다. AI 클라이언트 클라우드 호스팅 도구를 통해 실시간 모듈식 작업 실행이 가능합니다. 작동 방식은 다음과 같습니다.

An AI 에이전트(Crew와 같은 프레임워크로 구축됨)AI 또는 Smolagents)는 ACP 서버 내부에 "포장"되어 있습니다.
이 서버는 호스트 역할을 하며, 에이전트를 검색하고 접근할 수 있게 해줍니다.
ACP 클라이언트 역할을 하는 다른 에이전트나 프로세스는 이 서버에 표준화된 요청을 보내 호스팅된 에이전트와 상호 작용할 수 있습니다.

이 구조는 전체 시스템을 다시 작성하지 않고도 에이전트를 새 버전이나 다른 프레임워크 기반으로 구축된 완전히 다른 에이전트로 쉽게 교체할 수 있음을 의미합니다.

ACP의 핵심 원칙

ACP를 구현하려면 기본 구성 요소를 이해해야 합니다. 이 프로토콜은 몇 가지 핵심 구성 요소를 통해 커뮤니케이션을 표준화하여 모든 메시지가 체계적이고 명확하며 실행 가능하도록 보장합니다.

1

ACPMessage 데이터 클래스

프로토콜의 핵심은 다음과 같습니다. ACPMessage 데이터 클래스. 이는 에이전트 간에 전송되는 모든 메시지에 대한 표준화된 형식입니다. 모든 통신 패킷에 필요한 정보가 포함되어 올바르게 이해되고 라우팅되도록 보장합니다. 일반적인 ACPMessage 포함 :

발신자와 수신자: 메시지를 보낸 사람과 해당 메시지를 받는 사람을 식별합니다.
수행적: 메시지의 가장 중요한 부분은 발신자를 나타냅니다.'s 의도.
콘텐츠 : 실제로 전송되는 데이터 또는 지침입니다.
대화 ID: 관련 메시지를 단일 대화 스레드로 그룹화하는 고유 식별자입니다.
2

퍼포먼스

수행 동사는 메시지의 목적을 정의하는 동사입니다. 수신자에게 어떤 종류의 행동이나 반응이 예상되는지 알려줍니다. 일반적인 수행 동사는 다음과 같습니다.

질문: 정보를 요청합니다.
의뢰: 에이전트에게 특정 작업을 수행하도록 요청합니다.
알리다: 응답을 기대하지 않고 정보를 제공합니다.
가입 : 주제에 대한 향후 업데이트를 요청합니다.
방송: 사용 가능한 모든 에이전트에게 메시지를 보냅니다.
3

ACPAgent

The ACPAgent 시스템에 참여하는 모든 에이전트의 기본 클래스입니다. 에이전트를 정의합니다.'s 신원 및 핵심 기능(예: 전송 및 수신) ACPMessages각 에이전트는 시스템에서 메시지를 라우팅하는 데 필요한 고유한 이름이나 ID를 가지고 있습니다.

4

ACP메시지브로커

여러 에이전트가 있는 시스템에서는 모든 메시지 트래픽을 처리할 중앙 우체국이 필요합니다. ACPMessageBroker 이 목적을 달성합니다.'s 에이전트로부터 메시지를 수신하고 올바른 수신자에게 전달되도록 보장하는 중앙 라우팅 구성 요소입니다. 이 브로커 아키텍처는 시스템의 확장성과 관리 용이성을 높이는 데 핵심적인 역할을 합니다.

첫 번째 ACP 시스템을 위한 코딩 가이드

ACP 시스템

자, 이제 직접 파이썬 으로 간단한 ACP(Academic Communication Practices) 규격 준수 메시징 시스템을 만들어 보겠습니다. 이 튜토리얼에서는 기존 구현에서처럼 자연어 처리를 위해 Google의 Gemini API를 사용합니다 .

1단계: 환경 설정

먼저 Google과 상호 작용하기 위해 필요한 Python 라이브러리를 설치해야 합니다.'s 생성적인 AI 모델.

pip install google-generativeai

요청을 인증하려면 API 키를 구성해야 합니다 .

2단계: 핵심 ACP 구성 요소 정의

이제 ACP의 핵심 개념들을 파이썬 코드 로 구현해 보겠습니다 . 먼저 메시지 구조를 정의하는 것부터 시작할게요.

# Define the ACP Message Structure using a dataclass
from dataclasses import dataclass, field
from typing import Any, Dict, Optional
import uuid

@dataclass
class ACPMessage:
    """A standard message format for Agent Communication Protocol."""
    sender: str
    receiver: str
    performative: str
    content: Any
    message_id: str = field(default_factory=lambda: str(uuid.uuid4()))
    conversation_id: Optional[str] = None
    metadata: Dict[str, Any] = field(default_factory=dict)

    def create_reply(self, sender: str, performative: str, content: Any) -> 'ACPMessage':
        """Helper to create a reply to this message."""
        return ACPMessage(
            sender=sender,
            receiver=self.sender,
            performative=performative,
            content=content,
            conversation_id=self.conversation_id or self.message_id
        )

다음으로 정의합니다. ACPAgent 클래스. 각 에이전트는 수신 메시지를 처리하기 위한 이름과 메서드를 갖습니다.

# Define the base class for an ACP Agent
class ACPAgent:
    """Base class for an agent in an ACP system."""
    def __init__(self, name, broker):
        self.name = name
        self.broker = broker
        self.broker.register_agent(self)

    def send_message(self, message: ACPMessage):
        """Sends a message through the broker."""
        print(f"[{self.name}] Sending message to {message.receiver}: {message.performative}")
        self.broker.route_message(message)

    def receive_message(self, message: ACPMessage):
        """Processes an incoming message."""
        print(f"[{self.name}] Received message from {message.sender}: {message.performative}")
        # Agent-specific logic goes here
        pass

마지막으로, 우리는 다음을 생성합니다. ACPMessageBroker 의사소통을 관리합니다.

# Define the Message Broker for routing messages
class ACPMessageBroker:
    """A central broker to route messages between agents."""
    def __init__(self):
        self.agents: Dict[str, ACPAgent] = {}

    def register_agent(self, agent: ACPAgent):
        """Adds a new agent to the network."""
        print(f"[Broker] Registering agent: {agent.name}")
        self.agents[agent.name] = agent

    def route_message(self, message: ACPMessage):
        """Routes a message to the intended recipient."""
        recipient_agent = self.agents.get(message.receiver)
        if recipient_agent:
            recipient_agent.receive_message(message)
        else:
            print(f"[Broker] Error: Agent '{message.receiver}' not found.")

3단계: 에이전트 생성 및 구현

프레임워크가 마련되었으니 이제 특화된 에이전트를 만들 수 있습니다. 질문에 답변하는 연구원 에이전트 와 연구원에게 질의하는 관리자 에이전트를 만들어 보겠습니다.

google.generative 가져오기ai 게나이로서

# Configure your Gemini API key
# genai.configure(api_key="YOUR_API_KEY")

class ResearcherAgent(ACPAgent):
    """An agent that uses a generative model to answer queries."""
    def __init__(self, name, broker):
        super().__init__(name, broker)
        # self.model = genai.GenerativeModel('gemini-pro')

    def receive_message(self, message: ACPMessage):
        super().receive_message(message)
        if message.performative == "QUERY":
            question = message.content
            # For demonstration, we'll use a canned response.
            # In a real scenario, you would call the model:
            # response_text = self.model.generate_content(question).text
            response_text = f"My analysis on '{question}' indicates a positive outlook."

            reply = message.create_reply(
                sender=self.name,
                performative="INFORM",
                content=response_text
            )
            self.send_message(reply)

class ManagerAgent(ACPAgent):
    """An agent that delegates tasks and queries other agents."""
    def receive_message(self, message: ACPMessage):
        super().receive_message(message)
        if message.performative == "INFORM":
            print(f"[{self.name}] Got a response: {message.content}")

    def start_task(self, topic: str):
        """Starts a new task by querying the researcher."""
        print(f"[{self.name}] Initiating research on: {topic}")
        query_message = ACPMessage(
            sender=self.name,
            receiver="Researcher_1",
            performative="QUERY",
            content=f"What is the market trend for {topic}?",
            conversation_id=str(uuid.uuid4())
        )
        self.send_message(query_message)

4단계: 시스템 실행

자, 하자's 모든 것을 하나로 합쳐서 실제로 어떻게 작동하는지 살펴보세요.

# Main execution block
if __name__ == "__main__":
    # 1. Initialise the broker
    message_broker = ACPMessageBroker()

    # 2. Create and register agents
    manager = ManagerAgent("Manager_Alpha", message_broker)
    researcher = ResearcherAgent("Researcher_1", message_broker)

    # 3. Kick off a task
    manager.start_task("AI-powered SEO tools")

이 코드를 실행하면 관리자 에이전트가 쿼리를 보내고, 브로커가 이를 연구원에게 전달하고, 연구원이 이를 처리하여 응답을 보내고, 브로커가 응답을 다시 관리자에게 전달하는 것을 볼 수 있습니다. 이 간단한 상호 작용은 견고하고 분리된 통신 흐름을 보여줍니다.

고급 워크플로를 통한 시스템 확장

ACP의 진정한 힘은 두 대의 에이전트에서 여러 대의 에이전트로 확장하여 복잡한 워크플로를 생성할 때 더욱 분명해집니다. 이 프로토콜은 순차적 및 계층적 체인과 같은 고급 패턴을 지원합니다.

순차적 워크플로: 초기 요청은 일련의 에이전트를 차례로 트리거합니다. 예를 들어, 매니저 에이전트 물어볼 수 있었다 연구원 데이터를 수집한 후 그 결과를 다음 사람에게 전달합니다. 글쓰기 에이전트 보고서를 작성하다.
계층적 워크플로: 최상위 수준 라우터 에이전트 복잡한 쿼리를 수신하고 이를 하위 작업으로 분할한 후 각 하위 작업을 적절한 전문 에이전트에게 위임합니다. 이는 다음과 같은 정교한 시스템에서 흔히 볼 수 있습니다. AI SEO 에이전트, 다른 에이전트가 처리할 수 있는 곳 자동화된 키워드 조사, 콘텐츠 최적화, 경쟁사 분석.

모듈식으로 상호 연결된 시스템을 구축할 수 있는 이러한 능력은 판도를 바꾸는 혁신입니다. 이를 통해 팀은 공통 프로토콜 덕분에 더 큰 시스템에 원활하게 연결될 수 있다는 확신을 가지고 자체 에이전트를 독립적으로 개발하고 유지 관리할 수 있습니다.

현실 세계의 ACP: SEO의 사례

ACP가 SEO를 간편하게 만드는 방법

ACP의 원칙은 단순히 이론적인 것이 아니라 비즈니스 자동화에 직접적으로 적용될 수 있습니다. 검색 엔진 최적화 (SEO) 분야를 예로 들어보겠습니다 . 현대적인 SEO 전략은 키워드 분석, 콘텐츠 제작, 온페이지 최적화, 백링크 추적 등 여러 요소로 구성됩니다.

ACP 기반의 다중 에이전트 시스템은 이 전체 프로세스를 자동화할 수 있습니다. 다음과 같은 시스템을 상상해 보세요.

  1. An SEO 전략 에이전트 검색 추세를 모니터링하고 콘텐츠 격차를 파악합니다.
  2. A 키워드 리서치 에이전트 고가치의 기본을 찾는다 LSI 키워드.
  3. A 콘텐츠 작성 에이전트 전략가의 브리핑을 기반으로 기사를 생성합니다.
  4. An 온페이지 최적화 에이전트 콘텐츠의 가독성, 키워드 밀도, 의미적 관련성을 검사합니다.

ACP를 사용하면 이러한 에이전트는 원활하게 통신할 수 있습니다. 전략 에이전트는 REQUEST 키워드에 대한 조사 에이전트에게 키워드를 보내면 INFORM 작성 에이전트에게 결과를 담은 메시지를 전달합니다. 이러한 모듈화는 전체 SEO 워크플로우의 효율성과 확장성을 높여줍니다.

맺음말

협력 구축 AI 시스템 가장 흥미로운 분야 중 하나입니다 technology그러나 공통 통신 표준이 없으면 이러한 시스템은 맞춤형 통합으로 인해 복잡하고 혼란스러운 상황에 처할 위험이 있습니다. 에이전트 통신 프로토콜(ACP)은 이 문제에 대한 명확하고 강력하며 확장 가능한 솔루션을 제공합니다.

ACP는 간단한 클라이언트-서버 모델 과 잘 정의된 메시지 구조를 통해 에이전트 간 상호 작용 방식을 표준화함으로써 개발자가 유연하고 강력한 멀티 에이전트 애플리케이션을 구축할 수 있도록 지원합니다. 파이썬 가이드 에서 설명했듯이 기본적인 ACP 시스템 구현은 간단합니다.

이를 통해 소프트웨어 개발부터 SEO에 이르기까지 다양한 분야의 복잡한 작업을 처리할 수 있는 정교하고 계층적인 워크플로우를 구축할 수 있습니다. ACP와 같은 프로토콜을 도입하는 것은 지능형 에이전트들이 원활하게 협력하여 우리의 목표를 달성하는 미래를 향한 중요한 발걸음입니다.

댓글을 남겨주세요.

이메일 주소는 공개되지 않습니다. 필수 입력 항목은 * 로 표시되어 있습니다.

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터 처리 방식에 대해 알아보세요.

또한 Aimojo 부족!

매주 76,000명이 넘는 회원과 함께 비밀 팁을 받아보세요! 
🎁 보너스: $200를 받으세요AI 가입하시면 "마스터리 툴킷"을 무료로 드립니다!

탐색 AI 도구
액세스

AI ADA 및 EAA 규정 준수를 간편하게 구현하세요 모든 기업을 위한 자동화된 WCAG 개선 및 소송 지원

스피크온

말로 표현한 모든 생각을 세련되고 바로 전송할 수 있는 텍스트로 변환하세요. 세계 최초 AI 아이폰용 커뮤니케이터 하드웨어

킹크 AI

당신의 판타지, 당신의 규칙: 킨크 AI와 함께 BDSM 롤플레잉과 판타지 채팅을 즐겨보세요.

 

아이페칠리

오픈 소스 AI 비즈니스 자동화를 다시 컴퓨터 위에 구현해주는 에이전트 지역 최초 AI 연구, 문서 및 예약된 워크플로를 위한 작업 공간입니다.

불린 AI

어떤 사진이든 순식간에 화제의 Bulin 47 프리스타일 공연으로 바꿔보세요 The AI 상징적인 거리 풍경 하나를 위해 제작된 비디오 생성기입니다.

© 저작권 2023 - 2026 | AI 프로 | ♥로 만들었습니다