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 에이전트의 외부 전문성을 워크플로에 통합하기
- 보안과 데이터 통제를 유지하면서 조직 경계를 넘는 에이전트 생태계 구축하기