W&B Weave로 Amazon Bedrock Agents 모니터링하기
Amazon Bedrock와 W&B Weave를 활용해 자동화 워크플로를 위한 강력한 AI 에이전트를 구축하고 모니터링하는 방법을 알아보세요. 이 글은 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 알려주세요.
Created on September 12|Last edited on September 12
Comment
Amazon Bedrock Agents 복잡한 작업을 자동화하기 위한 강력한 도구로, 결합하여 사용하면 기반 모델, API, 그리고 지식 베이스. 이 에이전트들은 조직이 워크플로를 간소화하고, 사용자 질의에 응답하며, 기존 시스템에 AI 기능을 통합할 수 있도록 해줍니다.
이 글에서는 Bedrock Agents가 무엇인지, 어떻게 동작하는지, 그리고 내부 단계와 의사 결정을 추적하는 방법을 다음을 통해 활성화하는 방법을 살펴봅니다 W&B Weave이미 Amazon Bedrock Agents에 익숙하고 모니터링을 시작하는 방법만 알고 싶다면, 아래 버튼을 클릭하세요.
Jump to tutorial

목차
Amazon Bedrock Agents란 무엇인가요?Amazon Bedrock Agents는 어떻게 작동하나요?왜 Bedrock Agents를 모니터링해야 하나요?에이전트 모니터링을 위한 W&B Weave튜토리얼: W&B Weave로 Bedrock 에이전트 모니터링하기1단계: 환경 설정 2단계: “도구”와 “지식 베이스” 만들기 3단계: Lambda 함수 도구 만들기4단계: 에이전트 만들기 5단계: 날씨 도구 연결하기 6단계: 지식 베이스 연결 7단계: Bedrock 에이전트 호출하기 사용 사례 결론 관련 문서
Amazon Bedrock Agents란 무엇인가요?
Amazon Bedrock Agents는 기초 모델, API, 기타 데이터 소스와 상호작용하여 복잡한 작업을 처리하는 AI 기반 시스템으로, 사용자 질의를 추론하고 정보를 검색하며 특정 목표를 달성하기 위한 작업을 수행할 수 있도록 해줍니다.
이러한 기능은 워크플로를 간소화하고 운영 효율을 높이며, 더 정확한 응답과 계산, 그리고 다중 시스템 워크플로를 가능하게 합니다. 이를 위해 에이전트는 다양한 도구를 사용해 외부 시스템과 지식 베이스와 상호작용합니다. 또한 에이전트는 메모리를 활용해 과거 상호작용의 맥락을 유지함으로써, 더 일관되고 개인화된 사용자 경험을 제공합니다.
기초 모델, 프롬프트 템플릿, 지식 베이스, 액션 그룹, 메모리를 매끄럽게 통합함으로써 Amazon Bedrock Agents는 복잡한 워크플로를 자동화하고 AI 기반 애플리케이션의 효율을 높이는 견고한 프레임워크를 제공합니다. 예기치 않은 상황이나 오류도 처리하여 원활한 운영과 안정적인 성능을 보장합니다.
Amazon Bedrock Agents는 어떻게 작동하나요?
Amazon Bedrock Agents는 기초 AI 모델이 오케스트레이션하는 일련의 단계로 사용자 입력을 처리하여 동작합니다. 방대한 데이터셋으로 학습된 이 모델은 인간 언어의 미묘한 뉘앙스를 이해하고 에이전트의 행동을 안내합니다.
요청을 받으면 에이전트는 필요한 정보를 구성하기 위해 프롬프트 템플릿을 사용합니다. 그런 다음 관련 정보를 모아 둔 저장소인 지식 베이스를 조회해 맥락과 세부 정보를 가져옵니다. 외부 데이터가 필요하면 에이전트는 액션 그룹을 통해 API와 상호작용하여 실시간 데이터 조회, 레코드 업데이트, 알림 전송 같은 작업을 수행합니다.
이 과정 전반에서 에이전트는 선택적 메모리 기능을 활용해 이전 상호작용에서 얻은 정보를 보존할 수 있으며, 이를 통해 더 일관되고 개인화된 응답을 제공합니다. 이 메모리는 시간이 지날수록 에이전트가 맥락을 유지하고 사용자의 요구를 더 잘 이해하도록 돕습니다.
기초 모델, 프롬프트 템플릿, 지식 베이스, 액션 그룹, 메모리를 매끄럽게 통합함으로써 Amazon Bedrock Agents는 복잡한 워크플로를 자동화하고 AI 기반 애플리케이션의 효율을 높이는 견고한 프레임워크를 제공합니다. 예기치 않은 상황이나 오류도 처리하여 원활한 운영과 안정적인 성능을 보장합니다.
왜 Bedrock Agents를 모니터링해야 하나요?
Amazon Bedrock Agents는 기저 모델, 액션 그룹, 지식 베이스, 프롬프트 템플릿 등 수많은 구성 요소에 의존하는 복합 시스템입니다. 그 결과, 기저 모델 자체의 문제부터 지식 검색, 도구(툴) 연동, 의사 결정 로직의 문제에 이르기까지 에이전트 성능에 영향을 줄 수 있는 잠재적 장애 지점이 매우 많습니다. 이들 구성 요소 중 어느 한 곳에서라도 문제가 발생하면 에이전트의 추론, 정보 검색, 의사 결정 능력이 저하되어 결과적으로 최적 이하의 결과를 초래할 수 있습니다.
다행히 Bedrock Agents는 포괄적인 모니터링 기능을 제공하여 각 단계에서 에이전트의 ‘사고 과정’을 추적할 수 있습니다. 여기에는 API 호출, 지식 베이스에서 조회된 데이터, 그리고 각 의사 결정의 근거가 포함됩니다. 이러한 상세 트레이스를 분석하면 에이전트가 리소스를 어떻게 활용하는지에 대한 유용한 인사이트를 얻고, 병목 지점�� 식별하며, 성능을 최적화할 수 있습니다. 이 수준의 가시성은 문제를 선제적으로 해결하고, 에이전트의 설계를 다듬으며, 사용자에게 최상의 결과를 지속적으로 제공하도록 돕습니다.
에이전트 모니터링을 위한 W&B Weave
Amazon Bedrock Agents의 복잡한 동작을 모니터링하는 일은 쉽지 않지만, W&B Weave가 강력한 해법을 제공합니다. 이 라이브러리는 로깅 과정을 단순화하여 에이전트의 동작과 성능을 깊이 있게 파악할 수 있도록 돕습니다.
Weave를 에이전트 워크플로에 통합하면, 수행된 구체적인 API 호출, 지식 베이스에서 조회된 데이터, 모델의 중간 출력 등을 포함해 각 단계의 상세 정보를 자동으로 수집할 수 있습니다. @weave.op 데코레이터를 사용하면 Python 함수의 입력, 출력은 물론 코드 변경까지 자동으로 기록하여 손쉽게 추적할 수 있습니다.
Weave는 Bedrock의 기본 트레이싱 기능을 보완하여 에이전트 활동을 종합적으로 조망할 수 있게 해줍니다. 이 데이터는 Weave 플랫폼에서 손쉽게 시각���하고 분석할 수 있어 병목을 식별하고, 문제를 디버그하며, 성능을 최적화하는 데 도움이 됩니다. 심지어 당신은 LLM을 활용해 요약하기 복잡한 트레이스 객체를 요약하여 에이전트의 의사 결정 과정을 더 쉽게 이해하고 개선이 필요한 영역을 식별할 수 있게 합니다.
Weave를 사용하면 데이터에 기반한 의사 결정을 내리고 에이전트의 설계를 개선하며, 사용자에게 최상의 결과를 제공하도록 보장할 수 있을 만큼의 가시성과 인사이트를 확보할 수 있습니다.
튜토리얼: W&B Weave로 Bedrock 에이전트 모니터링하기
이 튜토리얼에서는 Amazon Bedrock Agents와 W&B Weave를 사용하여 에이전트를 구축하고 모니터링합니다. 우리 에이전트는 다음과 같은 질의를 처리하도록 설계됩니다. "내 각 매장의 날씨는 어떻죠?동적인 날씨 데이터와 사전에 정의된 매장 위치 지식 베이스를 결합하여.
에이전트는 도구를 사용해 날씨 정보를 가져오는 API와 연동하고, 매장 위치가 담긴 지식 베이스를 활용하여 관련성과 문맥을 갖춘 응답을 제공합니다. 이를 통해 에이전트가 사용자의 질의를 실행 가능한 데이터 기반 답변으로 연결하는 능력을 입증합니다.
1단계: 환경 설정
다른 AWS 프로젝트와 마찬가지로 AWS 계정이 필요합니다. Bedrock Agents에 접근하려면 IAM 권한을 올바르게 구성해야 하며, 루트 계정과는 별도의 IAM 관리자 역할을 사용하거나 다음을 연결하는 방식으로 설정할 수 있습니다. AmazonBedrockFullAccess 에이전트를 사용할 역할에 해당 정책을 연결하십시오. 관리자 계정을 간편하게 생성할 수 있도록 사용할 수 있는 스크립트를 제공했으며, 해당 링크를 여기 첨부하겠습니다.
또한 로컬 시스템에 boto3를 설치하고 구성해야 합니다. boto3 설정 방법에 대한 자세한 내용은 제 다른 글을 참고하세요. 여기, 이를 통해 boto3를 설정할 수 있습니다. 이 튜토리얼에서 설치해야 할 pip 패키지는 다음과 같습니다:
pip install boto3 weave
2단계: “도구”와 “지식 베이스” 만들기
권한 구성이 완료되면 에이전트의 기본 리소스를 생성하겠습니다. 여기에는 어떤 위치든 동적으로 날씨를 조회할 수 있게 해 주는 “도구”와 매장 위치를 담은 지식 베이스가 포함됩니다. 이 구성 요소들을 통해 에이전트는 날씨 데이터와 매장 위치를 결합하여 사용자 질의에 정확하고 관련성 높은 응답을 제공할 수 있습니다.
먼저 S3 버킷을 생성합니다. 이 버킷에는 Bedrock 에이전트의 지식 베이스로 사용할 텍스트 문서를 저장합니다. 이 문서에는 에이전트가 쉽게 참조할 수 있도록 포맷된 매장 위치 목록이 포함됩니다. 지식 베이스는 각 매장 위치의 날씨를 판단하는 등 의미 있고 문맥을 반영한 응답을 제공하도록 에이전트를 돕는 핵심 구성 요소입니다.
이 단계를 자동화해 줄 스크립트는 다음과 같습니다:
import boto3import botocore.exceptions# Initialize AWS clientsbedrock = boto3.client('bedrock', region_name='us-east-2') # Adjust region as necessarys3 = boto3.client('s3', region_name='us-east-2')# Step 1: Create the Text Filedef create_text_file(file_path):print("Creating text file...")data = ["Store: Walmart, City: New York","Store: Target, City: Los Angeles","Store: Costco, City: Chicago","Store: Best Buy, City: Houston","Store: IKEA, City: Seattle"]with open(file_path, "w") as file:file.write("\n".join(data))print(f"Text file created: {file_path}")# Step 2: Create S3 Bucket (if it doesn't exist)def create_bucket(bucket_name, region='us-east-2'):try:print(f"Checking if bucket '{bucket_name}' exists...")s3.head_bucket(Bucket=bucket_name)print(f"Bucket '{bucket_name}' already exists.")except botocore.exceptions.ClientError:print(f"Bucket '{bucket_name}' does not exist. Creating it...")s3.create_bucket(Bucket=bucket_name,CreateBucketConfiguration={'LocationConstraint': region})print(f"Bucket '{bucket_name}' created successfully.")# Step 3: Upload the Text File to S3def upload_file_to_s3(bucket_name, file_path, s3_key):print("Uploading file to S3...")s3.upload_file(file_path, bucket_name, s3_key)print(f"File uploaded successfully: s3://{bucket_name}/{s3_key}")return f"s3://{bucket_name}/{s3_key}"# Step 4: Main Function to Orchestrate the Processdef main():# Update these variablesbucket_name = "mybucket-agent-12345" # Replace with a globally unique S3 bucket namefile_path = "stores_and_cities.txt" # Local file path for the text files3_key = "stores/stores_and_cities.txt" # Path to store the file in the S3 bucket# Step 1: Create the text filecreate_text_file(file_path)# Step 2: Create the bucket if it doesn't existcreate_bucket(bucket_name)# Step 3: Upload the file to S3upload_file_to_s3(bucket_name, file_path, s3_key)if __name__ == "__main__":main()
3단계: Lambda 함수 도구 만들기
다음으로 특정 도시 이름을 입력받아 날씨 정보를 가져오는 Lambda 함수를 생성하겠습니다. 이 함수는 Bedrock 에이전트의 “도구”로 동작하며, 요청 시 실시간 날씨 데이터를 동적으로 조회할 수 있도록 합니다. Lambda 함수는 에이전트의 요청을 처리하고, 날씨 API를 호출한 뒤, 지정한 도시에 대한 현재 날씨 정보를 반환합니다.
함수를 만들려면 먼저 AWS 콘솔에서 Lambda 함수로 이동합니다. 그런 다음 “Create function” 버튼을 클릭하세요. 함수의 매개변수를 선택할 수 있는 새 화면으로 이동합니다. 이 튜토리얼에서는 기본 Python 런타임을 선택하겠습니다.

생성을 클릭하면 소스 코드 편집기가 표시됩니다. 아래 코드를 편집기에 붙여넣고 “배포” 버튼을 클릭하세요:
import jsonimport urllib.requestimport urllib.parseimport urllib.errorimport redef lambda_handler(event, context):def build_response(body, status="success"):return {'response': {'actionGroup': event.get('actionGroup', 'unknown_actionGroup'),'function': event.get('function', 'unknown_function'),'functionResponse': {'responseBody': {"TEXT": {"body": body}}}},'messageVersion': event.get('messageVersion', '1.0')}# Extract 'city' from parameterscity = next((p['value'] for p in event.get('parameters', []) if p.get('name') == 'city'), None)if not city:return build_response('Error: Missing "city" parameter in request.')if not re.match(r'^[A-Za-z\s\-]+$', city):return build_response('Error: Invalid city name provided.')try:# Fetch weather dataurl = f"https://wttr.in/{urllib.parse.quote(city)}?format=j1"with urllib.request.urlopen(url) as response:if response.status == 200:data = json.loads(response.read())current = data.get('current_condition', [{}])[0]weather = (f"Weather in {city}:\n"f"Temperature: {current.get('temp_C', 'N/A')}°C\n"f"Description: {current.get('weatherDesc', [{'value': 'N/A'}])[0].get('value', 'N/A')}\n"f"Humidity: {current.get('humidity', 'N/A')}%")return build_response(weather)else:return build_response(f"Error: Failed to fetch weather data. Status code: {response.status}")except urllib.error.HTTPError as e:return build_response(f"HTTP Error: {e.reason}")except urllib.error.URLError as e:return build_response(f"URL Error: {e.reason}")except Exception as e:return build_response(f"Internal Server Error: {str(e)}")

4단계: 에이전트 만들기
다음으로 에이전트를 생성하겠습니다.
먼저 Amazon Bedrock 콘솔로 이동해 “Agents”를 검색합니다. 새 에이전트를 생성하는 옵션을 클릭하면 에이전트 구성 화면으로 이동합니다. StoreWeatherAgent처럼 고유한 에이전트 이름을 입력하고, foundation model을 선택합니다. 여기서는 새로운 Nova Pro를 사용합니다.


모델을 선택했으면 에이전트의 동작을 정의하는 구성 단계로 이동합니다. Instructions 섹션에서 에이전트가 사용자 질의를 어떻게 처리해야 하는지 규정합니다. 예를 들어, 특정 도시의 날씨 정보를 가져오기 위해 날씨 확인 도구를 사용하도록 지시하고, 매장 위치를 파악하기 위해 지식 베이스를 참조하도록 설정할 수 있습니다.
5단계: 날씨 도구 연결하기
다음으로 에이전트에 도구를 연결해야 합니다.
Tools 섹션에서 앞서 생성한 Lambda 함수를 추가합니다. Lambda 도구를 추가하는 동안 city라는 매개변수를 구성하세요. 이 매개변수는 호출 시 도시 이름을 동적으로 전달받기 위해 필요합니다. 매개변수 유형은 문자열로 설정하고, 필수로 표시하여 올바르게 동작하도록 하세요.


Bedrock 에이전트가 Lambda 함수를 호출할 수 있도록 하려면 다음으로 이동하세요 구성 > 권한 AWS의 섹션 Lambda 콘솔 날씨 Lambda 함수에 대해. Principal을 다음으로 설정하세요 bedrock.amazonaws.com, Bedrock 에이전트의 Source ARN을 지정하고 (Bedrock 콘솔에서 확인할 수 있음), 그리고 Action을 다음으로 정의합니다 lambda:InvokeFunction이 권한을 저장하면 에이전트가 Lambda 함수를 문제없이 호출할 수 있습니다.

6단계: 지식 베이스 연결
마지막으로 에이전트를 위한 지식 베이스를 구성하세요.
Bedrock 콘솔의 Knowledge Bases 섹션으로 이동해 새 지식 베이스를 생성하세요. 예를 들어 다음과 같은 이름을 입력합니다 knowledge-base-quick-start, 그리고 데이터 소스로 Amazon S3를 선택하세요. 매장 위치 데이터가 들어 있는, 앞서 생성한 S3 버킷을 지식 베이스의 대상으로 지정합니다. 텍스트 처리를 위해 기본 파서를 사용하고, 임베딩을 위한 청킹 전략을 설정한 뒤, 선호하는 임베딩 모델을 선택하세요. 구성을 검토한 후 지식 베이스를 생성합니다.


지식 베이스 준비가 끝나면 에이전트에 연결하세요. 에이전트의 Knowledge Base 섹션에서 새 지식 베이스를 추가하고 사용 방식을 지정합니다. 예를 들어, 매장 날씨나 위치에 대한 질문에 응답할 때 매장 위치를 조회하도록 지시하세요.


마지막으로 에이전트를 저장하고 배포합니다. 배포가 완료되면 Amazon Bedrock 콘솔에서 바로 에이전트 기능을 테스트할 수 있습니다. 예를 들어 “뉴욕의 날씨는 어떤가요?” 또는 “내 모든 매장의 날씨는 어떤가요?”처럼 물어보세요. 에이전트는 도시 이름을 동적으로 Lambda 함수에 전달하고, 날씨 데이터를 조회한 뒤 지식 베이스의 매장 위치 데이터와 결합해 완전한 응답을 생성합니다.
에이전트를 생성하고 도구를 통합했으며 지식 베이스까지 연결했다면 이제 Bedrock Agent는 완전히 동작할 준비가 되었습니다. 다만 에이전트를 호출하거나 테스트하기 전에 별칭을 지정해야 합니다. 별칭은 일관된 식별자를 유지하면서 에이전트의 서로 다른 버전을 관리할 수 있도록 해 줍니다.
별칭을 만들려면 Bedrock Agent 콘솔의 Aliases 섹션으로 이동하세요. Create 버튼을 클릭하고 고유한 별칭 이름을 입력합니다(예: v1), 그리고 에이전트의 최신 버전과 연결하세요. 별칭을 지정하면 기본 구성이나 새 기능을 업데이트하더라도 에이전트를 호출하기 위한 안정적인 참조점으로 동작합니다. 별칭 구성을 저장하면 에이전트를 바로 사용할 수 있습니다.

7단계: Bedrock 에이전트 호출하기
Bedrock 에이전트를 호출하려면 AWS SDK for Python(boto3)를 사용해 Bedrock Agent Runtime API와 상호 작용하면 됩니다. 시스템에서 boto3를 설정하는 방법에 대한 자세한 내용은 다음을 참고하세요. 또 다른 글 저는 AWS Bedrock를 사용해 이를 수행하는 방법을 정리했습니다. 호출 과정은 에이전트의 고유 식별자, 별칭, 세션 정보와 함께 쿼리를 에이전트에 보내는 방식으로 이루어집니다. 또한 트레이스 모드를 활성화하면 에이전트가 사용한 도구, 실행 순서, 연결된 지식 베이스와의 상호 작용 등 실행 과정에 대한 상세한 디버깅 정보를 확인할 수 있습니다.
다음 스크립트는 Bedrock Agent Runtime 클라이언트에 대한 연결을 초기화하고 에이전트를 호출합니다. 만약 enable_trace 모드를 활성화하면 실행 중 에이전트가 수행한 단계가 상세 추적 데이터로 반환됩니다. 이 추적 정보는 매우 유용하지만 구조가 복잡해 수동으로 해석하기가 어렵습니다.
이 과정을 단순화하고 API의 트레이스 페이로드 구조가 변경될 가능성에 대비해 견고함을 확보하기 위해, 저는 기초 모델인 Nova Pro를 사용해 트레이스를 간결하고 일관된 설명으로 요약했습니다.
💡
이 접근 방식은 엔지니어링 부담을 줄이면서 에이전트의 동작에 대한 유용한 인사이트를 제공합니다.
import boto3import jsonimport weaveweave.init("bedrock_invoke_agent") # Initialize weave trackingdef format_prompt_for_traces(traces, input_text):"""Formats the traces into a prompt for the LLM.Parameters:traces (list): List of traces to be summarized.Returns:str: The formatted prompt."""return f"""<|begin_of_text|><|start_header_id|>user<|end_header_id|>Please analyze the following traces from an agent and provide a step-by-step summary:Original user input: {input_text}Traces:{json.dumps(traces, indent=4)}The summary should clearly outline:- The main steps executed- Any tools used- Results retrieved from knowledge base- Final outcomeGenerate a coherent and concise summary.<|eot_id|><|start_header_id|>assistant<|end_header_id|>"""def summarize_traces_with_llm(traces, input_text):"""Summarizes traces using an LLM.Parameters:traces (list): The list of trace dictionaries.Returns:str: A summary of the traces or an error message if summarization fails."""try:# Initialize the Bedrock runtime clientclient = boto3.client(service_name="bedrock-runtime", region_name="us-east-1")prompt = format_prompt_for_traces(traces, input_text)# Prepare messages for Nova Pro APImessages = [{"role": "user","content": [{"text": prompt}]}]# Invoke the modelprint("Invoking Nova Pro model for summarization...")response = client.converse(modelId="us.amazon.nova-pro-v1:0",messages=messages)# Extract response contentprediction = response["output"]["message"]["content"][0]["text"].strip()return predictionexcept Exception as e:print(f"Error during LLM summarization: {e}")return "Error summarizing traces."@weave.opdef invoke_agent(agent_id, agent_alias_id, session_id, input_text, enable_trace=False):"""Invokes an Amazon Bedrock agent with optional debugging.Parameters:agent_id (str): The unique identifier of the agent.agent_alias_id (str): The alias of the agent.session_id (str): The session ID for maintaining context.input_text (str): The prompt or query to send to the agent.enable_trace (bool): Whether to enable trace mode for debugging.Returns:dict: A dictionary with 'response', 'traces', and a summary."""try:# Initialize the Bedrock runtime clientbedrock_client = boto3.client("bedrock-agent-runtime", region_name="us-east-2")print("Invoking agent...")print(f"Agent ID: {agent_id}, Alias ID: {agent_alias_id}, Session ID: {session_id}")print(f"Input Text: {input_text}, Enable Trace: {enable_trace}")# Call the invoke_agent APIresponse = bedrock_client.invoke_agent(agentId=agent_id,agentAliasId=agent_alias_id,sessionId=session_id,inputText=input_text,enableTrace=enable_trace # enable tracing)# Initialize variables for response and tracecompletion = ""trace_data = []# Iterate over the response streamfor event in response["completion"]:try:if "chunk" in event:completion += event["chunk"]["bytes"].decode()else:trace_data.append(event) # Collect non-chunk trace dataexcept Exception as e:print(f"Error processing event: {event}. Exception: {str(e)}")# Summarize traces using the LLMsummary = summarize_traces_with_llm(trace_data, input_text)# Return both response, trace data, and summaryreturn {"response": completion,"traces": trace_data,"summary": summary}except Exception as e:print("Exception occurred:")return {"error": str(e),"response": None,"traces": None,"summary": "Error during invocation or summarization."}if __name__ == "__main__":# Replace with your agent detailsagent_id = "RTWDM0FTEU" # Your agent IDagent_alias_id = "JFMNFQSLDS" # Your agent alias IDsession_id = "default-session" # A unique session IDinput_text = "what is the weather in each of the locations of my stores?"enable_trace = True # Toggle tracingprint(f"Invoking agent with input: '{input_text}'")# Call the invoke_agent functionresult = invoke_agent(agent_id, agent_alias_id, session_id, input_text, enable_trace)# Output the resultsprint("Agent Response:")print(result["response"])print("\nTraces:")print(json.dumps(result["traces"], indent=4))print("\nSummary:")print(result["summary"])
스크립트를 실행한 뒤에는 Weave 안에서 트레이스를 확인할 수 있습니다.
여기서는 Weave 안에서 입력과 출력은 물론 트레이스와 트레이스 요약도 함께 기록합니다. 이를 통해 에이전트의 최종 응답뿐 아니라 그 응답에 도달하기까지의 추론 과정과 단계도 모두 살필 수 있습니다. 이러한 수준의 가시성은 디버깅 시 매우 중요하며, 에이전트가 입력을 어떻게 처리하고 도구 및 지식 베이스와 어떻게 상호 작용하는지를 상세히 파악할 수 있게 해줍니다.
예를 들어, LLM이 생성한 트레이스 요약은 에이전트가 수행한 핵심 단계뿐 아니라 호출된 특정 도구, 가져온 데이터, 실행 중에 내려진 중간 의사결정까지 함께 보여줍니다. 이러한 인사이트는 버그를 식별하고 에이전트의 로직을 검증하는 데 매우 유용합니다.
또한 Weave를 통해 이 데이터를 시각화하면 패턴과 이상 징후를 실시간으로 빠르게 파악할 수 있어, 에이전트를 개선하기 위한 데이터 기반 의사결정을 내릴 수 있습니다. 예를 들어 특정 도구 호출이 반복적으로 오류를 유발한다면, 해당 문제를 신속하게 분리해 해결할 수 있습니다.
마찬가지로 트레이스 요약을 추적하면 에이전트의 워크플로에서 최적화나 개선이 필요한 영역을 발견할 수 있습니다.


W&B Weave와 Bedrock Agents의 통합은 에이전트 성능을 모니터링하기 위한 강력한 프레임워크를 제공합니다. 입력 질의부터 트레이스 수준의 추론까지 모든 상호 작용을 포착하고 접근 가능하게 하여, 견고한 모니터링과 디버깅, 그리고 에이전트 성능의 반복적 개선을 가능하게 합니다.
AI 에이전트가 점점 더 강력해질수록, 이러한 강력한 에이전트 워크플로의 신뢰성을 보장하기 위해 Weave 같은 도구의 중요성은 더욱 커질 것입니다.
💡
사용 사례
Amazon Bedrock로 구동되는 특화 에이전트는 복잡한 작업을 자동화하고 인간의 능력을 확장함으로써 다양한 산업을 혁신할 준비가 되어 있습니다.
- 상상해 보세요 코드 디버거 에이전트 오류를 식별하는 데 그치지 않고 코드 저장소와 문서를 참조해 자동으로 수정안까지 생성합니다.
- 또는 a 리서치 코파일럿 에이전트 새로운 출판물을 지속적으로 분석하고, 관련 연구 공백을 식별하며, 잠재적인 연구 방향까지 제안합니다.
- 에서 고객 서비스에서는 AI로 구동되는 에이전트가 제품 정보 제공, 주문 추적부터 복잡한 기술 문제 해결까지 폭넓은 문의를 처리할 수 있습니다.
이러한 에이전트를 모니터링하면 기업은 고객의 공통 불편 지점을 파악하고, 응답을 최적화하며, 일관되고 높은 품질의 서비스를 보장할 수 있습니다.
이들은 전문화된 에이전트가 워크플로를 어떻게 혁신할 수 있는지 보여 주는 몇 가지 예에 불과합니다. 이러한 에이전트를 효과적으로 모니터링하면 다양한 도메인 전반에서 정확성, 효율성, 지속적인 개선을 보장할 수 있습니다.
결론
Amazon Bedrock Agents는 워크플로를 간소화하고 효율성을 높이는 지능적이고 문맥을 이해하는 솔루션을 구축할 수 있는 강력한 플랫폼을 제공합니다. 실시간 데이터 페칭, W&B Weave와 같은 도구를 활용한 견고한 모니터링, 그리고 상세한 트레이스 분석을 결합하면, 이러한 AI 기반 시스템의 잠재력을 최대한 끌어낼 수 있습니다.
워크플로가 복잡해질수록 에이전트의 동작을 모니터링하고 분석하는 일은 신뢰성을 보장하고 성능을 최적화하며 변화하는 요구에 대응하기 위해 필수적입니다. 연구, 고객 서비스, 그 밖의 어떤 도메인을 위한 전문 에이전트를 구축하든, Bedrock은 혁신과 성공을 이끌 수 있는 유연성과 지능을 제공합니다.
가능성을 탐색할 준비가 되셨나요? 지금 바로 여러분만의 Amazon Bedrock Agents를 구축해 보세요.
관련 문서
How to fine-tune a large language model (LLM)
Discover the process of fine-tuning large language models (LLMs) to enhance their performance for specific tasks or domains. Learn about methods, best practices, and challenges associated with LLM fine-tuning.
Evaluating LLMs on Amazon Bedrock
Discover how to use Amazon Bedrock in combination with W&B Weave to evaluate and compare Large Language Models (LLMs) for summarization tasks, leveraging Bedrock’s managed infrastructure and Weave’s advanced evaluation features.
Building and evaluating a RAG system with DSPy and W&B Weave
A guide to building a RAG system with DSPy, and evaluating it with W&B Weave.
Building an LLM Python debugger agent with the new Claude 3.5 Sonnet
Building a AI powered coding agent with Claude 3.5 Sonnet!
Add a comment