Bedrock Invoke Agent 도구

Bedrock Invoke Agent 도구 (BedrockInvokeAgentTool)

CrewAI의 BedrockInvokeAgentTool은 크루(Crew) 안에서 Amazon Bedrock Agents를 호출해 그 기능을 활용할 수 있게 해주는 도구예요. AWS 가드레일을 재사용하고 응답을 워크플로로 스트리밍할 수도 있어서, AWS 환경과의 하이브리드 에이전트 워크플로를 구성할 때 아주 유용합니다.

출처: 문서

본문

BedrockInvokeAgentTool은 CrewAI 에이전트가 Amazon Bedrock Agents를 호출하고 그 기능을 워크플로 안에서 활용할 수 있게 해줍니다.

설치 (Installation)

uv pip install 'crewai[tools]'

사전 요구사항 (Requirements)

  • AWS 자격 증명 설정(환경변수 또는 AWS CLI를 통해)
  • boto3와 python-dotenv 패키지
  • Amazon Bedrock Agents 접근 권한

사용법 (Usage)

CrewAI 에이전트와 함께 이 도구를 사용하는 방법은 다음과 같습니다.

from crewai import Agent, Task, Crew
from crewai_tools.aws.bedrock.agents.invoke_agent_tool import BedrockInvokeAgentTool

# 도구 초기화
agent_tool = BedrockInvokeAgentTool(
    agent_id="your-agent-id",
    agent_alias_id="your-agent-alias-id"
)

# 이 도구를 사용하는 CrewAI 에이전트 생성
aws_expert = Agent(
    role='AWS Service Expert',
    goal='Help users understand AWS services and quotas',
    backstory='I am an expert in AWS services and can provide detailed information about them.',
    tools=[agent_tool],
    verbose=True
)

# 에이전트를 위한 태스크 생성
quota_task = Task(
    description="Find out the current service quotas for EC2 in us-west-2 and explain any recent changes.",
    agent=aws_expert
)

# 에이전트로 크루 생성
crew = Crew(
    agents=[aws_expert],
    tasks=[quota_task],
    verbose=2
)

# 크루 실행
result = crew.kickoff()
print(result)

도구 인자 (Tool Arguments)

Argument Type Required Default Description
agent_id str Yes None Bedrock 에이전트의 고유 식별자
agent_alias_id str Yes None 에이전트 별칭(alias)의 고유 식별자
session_id str No timestamp 세션의 고유 식별자
enable_trace bool No False 디버깅용 트레이스 활성화 여부
end_session bool No False 호출 후 세션 종료 여부
description str No None 도구에 대한 커스텀 설명

환경변수 (Environment Variables)

BEDROCK_AGENT_ID=your-agent-id           # agent_id 전달의 대안
BEDROCK_AGENT_ALIAS_ID=your-agent-alias-id # agent_alias_id 전달의 대안
AWS_REGION=your-aws-region               # 기본값 us-west-2
AWS_ACCESS_KEY_ID=your-access-key        # AWS 인증에 필요
AWS_SECRET_ACCESS_KEY=your-secret-key    # AWS 인증에 필요

고급 사용법 (Advanced Usage)

세션 관리가 포함된 멀티 에이전트 워크플로

from crewai import Agent, Task, Crew, Process
from crewai_tools.aws.bedrock.agents.invoke_agent_tool import BedrockInvokeAgentTool

# 세션 관리로 도구 초기화
initial_tool = BedrockInvokeAgentTool(
    agent_id="your-agent-id",
    agent_alias_id="your-agent-alias-id",
    session_id="custom-session-id"
)

followup_tool = BedrockInvokeAgentTool(
    agent_id="your-agent-id",
    agent_alias_id="your-agent-alias-id",
    session_id="custom-session-id"
)

final_tool = BedrockInvokeAgentTool(
    agent_id="your-agent-id",
    agent_alias_id="your-agent-alias-id",
    session_id="custom-session-id",
    end_session=True
)

# 각 단계별 에이전트 생성
researcher = Agent(
    role='AWS Service Researcher',
    goal='Gather information about AWS services',
    backstory='I am specialized in finding detailed AWS service information.',
    tools=[initial_tool]
)

analyst = Agent(
    role='Service Compatibility Analyst',
    goal='Analyze service compatibility and requirements',
    backstory='I analyze AWS services for compatibility and integration possibilities.',
    tools=[followup_tool]
)

summarizer = Agent(
    role='Technical Documentation Writer',
    goal='Create clear technical summaries',
    backstory='I specialize in creating clear, concise technical documentation.',
    tools=[final_tool]
)

# 태스크 생성
research_task = Task(
    description="Find all available AWS services in us-west-2 region.",
    agent=researcher
)

analysis_task = Task(
    description="Analyze which services support IPv6 and their implementation requirements.",
    agent=analyst
)

summary_task = Task(
    description="Create a summary of IPv6-compatible services and their key features.",
    agent=summarizer
)

# 에이전트와 태스크로 크루 생성
crew = Crew(
    agents=[researcher, analyst, summarizer],
    tasks=[research_task, analysis_task, summary_task],
    process=Process.sequential,
    verbose=2
)

# 크루 실행
result = crew.kickoff()

사용 사례 (Use Cases)

하이브리드 멀티 에이전트 협업 (Hybrid Multi-Agent Collaborations)

  • CrewAI 에이전트가 AWS에서 서비스로 실행되는 관리형 Bedrock 에이전트와 협업하는 워크플로 만들기
  • 민감 데이터 처리는 AWS 환경 안에서 수행하고 다른 에이전트는 외부에서 동작하게 하는 시나리오 구현
  • 분산 지능 워크플로를 위해 온프레미스 CrewAI 에이전트와 클라우드 기반 Bedrock 에이전트 연결하기

데이터 주권과 규정 준수 (Data Sovereignty and Compliance)

  • 데이터에 민감한 에이전틱 워크플로는 AWS 환경 안에 유지하면서 외부 CrewAI 에이전트가 작업을 조율하게 하기
  • 민감 정보를 AWS 계정 안에서만 처리해 데이터 상주(거주지) 요구사항을 준수하기
  • 조직의 비공개 데이터에 접근할 수 없는 일부 에이전트가 있는 안전한 멀티 에이전트 협업 구현

원활한 AWS 서비스 통합 (Seamless AWS Service Integration)

  • 복잡한 통합 코드 없이 Amazon Bedrock Actions를 통해 모든 AWS 서비스에 접근하기
  • 자연어 요청으로 CrewAI 에이전트가 AWS 서비스와 상호작용하게 하기
  • Bedrock Knowledge Bases, Lambda 등 AWS 서비스와 상호작용하도록 사전 구축된 Bedrock 에이전트 기능 활용하기

확장 가능한 하이브리드 에이전트 아키텍처 (Scalable Hybrid Agent Architectures)

  • 계산 집약적 작업은 관리형 Bedrock 에이전트에 넘기고 가벼운 작업은 CrewAI에서 실행하기
  • 로컬 CrewAI 에이전트와 클라우드 기반 Bedrock 에이전트 간에 워크로드를 분산해 에이전트 처리 확장하기

조직 간 에이전트 협업 (Cross-Organizational Agent Collaboration)

  • 우리 조직의 CrewAI 에이전트와 파트너 조직의 Bedrock 에이전트 간의 안전한 협업 구현
  • 민감 데이터를 노출하지 않고 Bedrock 에이전트의 외부 전문성을 워크플로에 통합하기
  • 보안과 데이터 통제를 유지하면서 조직 경계를 넘는 에이전트 생태계 구축하기

더 알아보기 (Learn more)