본문으로 건너뛰기
AWS ML Blog조회 1

Amazon Bedrock에서 프로그래밍 방식의 도구 호출(PTC) 구현하기

LLM이 도구를 하나씩 호출하는 대신 Python 코드를 작성해 실행하는 PTC 방식을 통해 토큰 소비와 지연 시간을 획기적으로 줄이는 구현 방법을 소개합니다.

섹션별 상세

01
전통적인 도구 호출 방식은 각 단계마다 모델 추론이 필요하여 토큰 소비와 지연 시간이 누적되는 병목이 발생한다.
전통적인 도구 호출 방식과 PTC 방식의 차이를 보여주는 다이어그램.
Diagram전통적인 방식은 매 단계마다 모델 추론이 필요하지만, PTC는 모델이 코드를 작성하고 샌드박스에서 실행하여 모델 추론 횟수를 최소화함을 보여준다.
02
PTC는 모델이 Python 코드를 생성하고 샌드박스 환경에서 이를 실행하여, 중간 데이터를 컨텍스트에 포함하지 않고 최종 결과만 반환한다.
python
import asyncio
import json
# Step 1: Get team members
team_json = await get_team_members(department="engineering")
team = json.loads(team_json)
# Step 2: Fetch all expense records in parallel
expense_tasks = [ get_expenses(employee_id=m["id"], quarter="Q3") for m in team ]
expenses_results = await asyncio.gather(*expense_tasks)
# Step 3: Filter and check budgets
exceeded = []
for member, exp_json in zip(team, expenses_results):
    expenses = json.loads(exp_json)
    total_travel = sum( e["amount"] for e in expenses if e["category"] == "travel" and e["status"] == "approved" )
    if total_travel > 5000:
        budget_json = await get_custom_budget(user_id=member["id"])
        budget = json.loads(budget_json)
        limit = budget["budget_limit"]
        if total_travel > limit:
            exceeded.append({ "name": member["name"], "spent": total_travel, "limit": limit, "exceeded_by": total_travel - limit })
# Step 4: Only the summary enters the model's context
print(f"{len(exceeded)} members exceeded budget:")
print(json.dumps(exceeded, indent=2))

PTC를 사용하여 도구 호출을 병렬로 처리하고 데이터를 필터링하는 Python 코드 예시

PTC의 작동 원리를 보여주는 아키텍처 다이어그램.
DiagramPTC 오케스트레이터가 모델 API와 샌드박스 실행 환경 사이에서 어떻게 코드를 전달하고 결과를 처리하는지 보여준다.
03
테스트 결과 PTC 적용 시 토큰 소비가 87-92% 감소했으며, 대규모 데이터 처리 시 자연어 기반 처리보다 정확도가 높게 나타났다.
04
ECS 기반 자가 호스팅 방식은 Docker 샌드박스를 직접 제어하여 보안과 커스텀 패키지 설치에 유연성을 제공한다.
ECS 컨테이너를 사용한 PTC 구현 아키텍처.
DiagramAWS 서비스(ECS, Lambda, EC2)가 PTC 오케스트레이터로서 어떻게 Amazon Bedrock과 연동되는지 보여준다.
05
Amazon Bedrock AgentCore Code Interpreter는 인프라 관리 없이 PTC를 구현할 수 있는 관리형 환경을 제공한다.
AgentCore Code Interpreter를 사용한 PTC 구현 아키텍처.
Diagram관리형 서비스인 AgentCore를 사용하여 별도의 인프라 관리 없이 PTC를 구현하는 방식을 보여준다.
06
Anthropic SDK 호환 프록시를 사용하면 기존 SDK 경험을 유지하면서 Amazon Bedrock의 모델과 PTC 기능을 활용할 수 있다.

용어 해설

프로그래밍 방식의 도구 호출(PTC)
LLM이 도구를 하나씩 호출하는 대신 Python 코드를 작성하여 샌드박스 환경에서 병렬로 실행하는 방식이다. 중간 결과를 컨텍스트에 포함하지 않고 최종 결과만 반환하여 토큰 소비와 지연 시간을 줄인다.
컨텍스트 윈도우(Context Window)
모델이 한 번에 처리할 수 있는 입력 토큰의 최대 범위다. PTC는 불필요한 중간 데이터를 이 윈도우에서 제외하여 효율성을 높인다.
샌드박스(Sandbox)
외부 코드나 프로세스를 안전하게 실행하기 위해 격리된 컴퓨팅 환경이다. 모델이 생성한 코드를 안전하게 실행하는 데 필수적이다.
프로세스 간 통신(IPC)
서로 다른 프로세스 간에 데이터를 주고받는 메커니즘이다. PTC에서 오케스트레이터와 샌드박스 컨테이너가 통신하는 데 사용된다.

기술

  • Amazon Bedrock
  • Python
  • Docker
  • Amazon ECS
  • Anthropic SDK

활용 사례

  • RAG 시스템
  • 데이터 처리
  • 다단계 프로세스 오케스트레이션
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 05. 20.수집 2026. 05. 20.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.