본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 15. 11:53

Converse API에 대해 자세히 알아보기

요약

AWS Bedrock의 Converse API를 통해 다양한 AI 모델을 통일된 방식으로 호출하는 방법과, 이를 자동화하여 에이전트를 구현하는 Strands Agents의 차이점을 설명합니다. 모델 교체 시 발생하는 코드 수정 부담을 줄이고, 복잡한 도구 호출 과정을 자동화하는 기술적 접근을 다룹니다.

핵심 포인트

  • Converse API는 모델별로 다른 데이터 전달 방식을 하나로 통합함
  • 모델 교체 시 발생하는 코드 재작성 비용을 획기적으로 절감
  • Strands Agents는 복잡한 도구 호출(Tool Calling) 루프를 자동화함
  • 완전 자동화가 필요할 땐 Strands, 인간의 확인이 필요할 땐 직접 구현 권장

전 세계의 가전(AI 모델)을 그대로 꽂을 수 있는 『만능 멀티 변환 플러그』

AWS의 Amazon Bedrock에는 Anthropic사의 Claude나 Meta사의 Llama 등 다양한 회사의 우수한 AI 모델들이 모여 있다.

예전에는 Claude에게 말을 걸 때와 Llama에게 말을 걸 때, Python 코드 작성 방식(데이터 전달 방식)이 완전히 달랐다.

  • Claude용: "이런 형식으로 문자를 전달해줘"
  • Llama용: "나는 그 형식은 안 돼, 이 방식으로 써줘"

이러면 도중에 "역시 Claude에서 Llama로 바꾸고 싶다"라는 생각이 들었을 때, 코드를 대수술해야 해서 엔지니어들은 모두 눈물을 흘려야 했다.

그래서 AWS가 만든 것이 바로 Converse API다.

"어떤 회사의 AI 모델이 상대라도, 인간 측은 전부 똑같은 하나의 작성 방식(Converse API의 규칙)으로 말을 걸어도 돼! 뒷단의 번역은 내가 맡을게!"라고 말하는 듯한, 매우 편리한 공통 창구를 만들어 준 것이다.

※ Strands Agents에 대해서도 정리해 두었으니 시간이 나면 읽어보길 바란다.

Converse API를 사용하더라도 AI는 똑똑하기 때문에 "어떤 함수를 사용해야 할지"는 판단해 준다.

다만 AI는 "지시를 내릴 뿐"이지, 실제 프로그램(함수)을 움직이는 근육은 가지고 있지 않다.

코드로 작성하면 다음과 같은 귀찮은 처리를 직접 작성하게 된다.

# 😭 Converse API로 직접 구현할 때의 고된 이미지
response = converse_api.chat("우메다까지 드론으로 배달해줘")
# AI로부터 "이 도구를 사용하고 싶어!"라는 답변이 돌아옴
...

그렇지 않은가? AI는 "드론 수배 도구를 사용하고 싶어!"라고 말하며 (판단하지만), 그것을 듣고 "그럼 Python의 order_delivery_drone이라는 함수를 지금 즉시 실행해!"라고 방아쇠를 당기는 것은 당신이 작성하는 if문의 역할이다.

만약 도구가 100개 있다면, 이 if elif elif ...가 100개 나열될 것이다. 지옥이겠지?

반면, Strands Agents는 위의 "if문으로 분기하여 함수를 실행하고, 결과를 AI에게 다시 보내는" 귀찮은 부분을 전부 내부의 블랙박스에 가두어 자동화해 주고 있다.

# 😎 Strands Agents라면 이것만으로 충분
response = takoyaki_agent("우메다까지 드론으로 배달해줘")
# 👈 위의 귀찮은 if문 왕복 작업이 이 뒷단에서 전부 완전 자동화되어 끝난다!

다음과 같은 유스케이스라면 망설임 없이 Strands Agents를 사용할 차례다.

사내용 편리한 도구를 만들 때

  • "사내 서류 데이터를 읽게 해서, 알아서 조사하고 알아서 메일 초안을 작성해 주는 어시스턴트"와 같은 내부 업무 효율화 도구.

  • 약간의 오작동(아, 순서를 틀렸네, 미안미안 같은 것)이 허용되는 환경이라면, 초고속으로 만들 수 있는 이것이 최강이다.

복잡한 조사를 시키고 싶을 때

  • "〇〇의 주가를 조사하고, 경쟁사의 데이터를 수집하고, 그래프용 수치를 계산해 줘"와 같이, AI와 프로그램을 여러 번 왕복(콤보)시켜야 할 때. 이를 직접 만드는 것은 지옥이므로, Strands에 통째로 맡기는 것이 현명하다.

반대로, 아무리 Strands Agents가 편리해도 "Converse API를 사용하여 직접 귀찮게 if문을 작성해야 하는" 본격적인 개발 유스케이스는 이것이다.

① 인간의 체크(확인 화면)를 사이에 넣고 싶을 때 【가장 중요】

이것이 가장 큰 이유다.

Strands Agents는 너무 우수해서, 부탁받은 일을 마지막까지 멈추지 않고 완전 자동(Full Automation)으로 완수하려고 한다.

예를 들어, "드론으로 타코야키를 배달하는" 시스템.

AI가 알아서 판단하여 마지막 "드론 발사!" 함수까지 한꺼번에 뒷단에서 실행해 버린다면 무섭지 않겠는가? 주소가 한 글자 틀려서 타인의 집에 타코야키가 쾅 하고 충돌할지도 모른다.

Converse API라면

AI가 "드론 도구를 사용하고 싶어!"라고 말한 시점에서 프로그램이 한 번 멈춘다.

그곳에서 인간에게 "정말로 드론을 띄워도 될까요? [예/아니오]"라는 확인 화면을 띄우고, 인간이 버튼을 누른 뒤에 함수를 실행하는... 식의 인간의 개입(Human-in-the-loop)을 쉽게 만들 수 있다.

② 한 번의 왕복으로 끝나는 심플한 챗봇일 때

「회사의 홈페이지에 흔히 있는 문의 창구」라든가 「평범한 잡담 AI」를 만들고 싶을 때.

이건 「사용자가 말한다 ➔ AI가 1회 응답한다」는 1회의 왕복만으로 충분하지 않겠는가? 도구를 이것저것 복잡하게 사용할 필요도 없다.

그런데 굳이 무거운 Strands Agents (전자동 조리기)를 꺼내 쓰면, 백그라운드의 루프 처리 (Loop processing) 때문에 불필요하게 AI의 움직임(응답)이 느려지거나, AWS 비용이 높아지게 된다.

심플한 채팅이라면, 얇고 가벼운 Converse API (만능 식칼)로 빠르게 응답하는 것이 가장 빠르고 저렴하다.

③ 에러가 발생했을 때, 상세하게 이유를 기록(로그 기록)하고 싶을 때

Strands Agents는 백그라운드에서 알아서 함수를 실행해 주지만, 역설적으로 말하면 「백그라운드에서 무엇이 일어나고 있는지 보이지 않는다 (블랙박스, Black box)"는 것이다.

만약 운영 환경에서 「뭔가 에러가 났다!」라고 되었을 때, 어떤 함수에서, 어떤 수치일 때, AI가 어떻게 잘못되었는지 찾아내는 것 (디버깅, Debugging)이 조금 힘들다.

금융 시스템처럼 버그가 절대 허용되지 않는 진지한 시스템 개발에서는, Converse API를 사용하여 「몇 시 몇 분, AI가 이 함수를 호출하려고 했다」, 「인간이 만든 if문이 이것을 받았다」와 같이 모든 발자취를 한 줄씩 로그 (Log)에 확실히 남기는 설계로 하는 것이 전문가의 철칙이다.

Converse API란?

AWS의 다양한 AI 모델 (Claude, Llama 등)이 상대라 하더라도, 인간 측은 전부 동일한 방식으로 말을 걸 수 있게 해주는 「만능 멀티 변환 플러그」.

도구의 역할 분담

고객의 말의 뉘앙스로부터 「어떤 함수를 사용할지 (선정)」는 AI (사장)가 수행한다.

인간이 작성하는 코드

선택된 함수가 「실제로 어떻게 시스템을 움직일지 (동작)」는 인간 측이 if문으로 끈기 있게 연결하여 코드를 작성한다 (부하 직원).

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0