스크립트
00:00:00이번 주에 업무 개선을 위해 에이전트를 사용하는 방법에 대한 강연을 정말 많이 보셨을 겁니다.
00:00:21코드를 배포하거나 CI 프로세스를 개선하는 일이든, 읽기 귀찮은 이메일에 답장하는 일이든 말이죠.
00:00:28오늘은 그런 평범한 강연이 아닙니다. 오늘은 제가 예전에 가졌던 개인적인 창작 열정을 되살리기 위해
00:00:37어떻게 에이전트를 만들었는지 보여드리겠습니다. 이건 제 헤드폰입니다. 보시다시피 상태가 그리 좋지 않은데요.
00:00:47여러분은 이 아주 오래되고 구리구리한 헤드폰이 에이전트 및 커머스와 무슨 상관이 있는지 궁금하실 겁니다.
00:00:54설명해 드리기 위해 제 이야기를 조금 해보겠습니다. 제가 IT 업계에 있기 아주 오래전에 저는 음악을 했습니다.
00:01:01투어 밴드 활동도 했고, 앨범도 몇 개 녹음했었죠.
00:01:09그러다 늘 그렇듯 커리어와 가정 때문에 음악을 못 하게 되었습니다.
00:01:15그러다 최근에 친구들과 다시 음악을 시작하게 되면서 족히 10년 만에 악기를 다시 잡게 되었고, 세션 녹음을
00:01:21시작하게 되었는데 그때 저 헤드폰으로는 안 되겠다는 걸 깨달았습니다. 평범한 사람이었다면
00:01:32유튜브나 레딧 같은 곳을 찾아보고 조사를 좀 한 다음, 아마존이나 베스트바이로 달려가서 헤드폰을 샀겠죠?
00:01:40하지만 저는 스트라이프에서 일합니다. 그래서 대신 에이전틱 커머스 에이전트를 직접 만들어서
00:01:48헤드폰을 사기로 마음먹었습니다. 이 이야기가 그렇게 터무니없는 것은 아닌 게,
00:01:574명 중 1명꼴로 이미 구매할 제품을 결정할 때 AI를 사용해 조사를 하고 있기 때문입니다.
00:02:07저도 최근에 믹서기를 살 때 챗봇과 대화를 주고받으며 모델을 좁혀나갔습니다.
00:02:14하지만 그건 조사의 영역이죠. 에이전트가 실제로 무언가를 구매하게 만들 수도 있을까요? 그런 인프라가 존재할까요?
00:02:22불과 몇 년 사이에 우리는 AI의 등장과 확장, 그리고 광범위한 도입을 목격했습니다.
00:02:31그리고 지난 1년 동안 구글, 오픈알, 스트라이프 같은 기업들에 의해 에이전틱 거래를 위한 인프라가 구축되었습니다.
00:02:38이로 인해 에이전틱 커머스가 등장하게 되었습니다.
00:02:47에이전틱 커머스란 사용자를 대신해 판단하고 행동하며 거래까지 수행하는 AI를 뜻합니다.
00:02:53좋습니다, 여기까지는 다 좋습니다. 에이전틱 커머스라는 게 존재하니까요. 이제 에이전트를 만들어
00:03:01하지만 에이전트가 어떻게 쇼핑을 할 수 있을까요? 우리 인간이 쇼핑할 때는 예를 들어 헤드폰이 멋져 보이는지,
00:03:12전문가스러워 보이는지 같은 소위 '바이브'를 따져보기도 합니다.
00:03:19물론 가격이 예산 내에 있다면 스펙도 고려하겠죠. 하지만 에이전트는 인간 쇼퍼와는 다른 방식으로 제품을 발견합니다.
00:03:26에이전트는 구조화된 데이터를 읽고, 텍스트 파일을 파싱하며, 판매자가 무엇을 파는지,
00:03:34그리고 에이전트의 접근을 허용하는 곳인지 이해하기 위해 기술적 신호에 의존합니다. 따라서 에이전트가 쇼핑을 할 수 있게 하려면
00:03:42판매자들은 에이전트의 언어로 소통해야 합니다. 이를 위해 에이전트가 이해할 수 있는 새로운 프로토콜이 필요합니다.
00:03:49그러한 프로토콜 중 하나가 유니버설 커머스 프로토콜(UCP)입니다. 거래 시 에이전트와
00:03:56판매자가 사용하는 공통 언어라고 생각하시면 됩니다. 에이전트가 구매를 시작하고, 업데이트하고, 완료하고, 취소하는 방법을 정의하죠.
00:04:07일반적인 판매자는 스키마, 인증, 체크아웃 흐름을 가진 API를 가지고 있습니다. 에이전트가 해당 판매자와
00:04:17상호작용하려면, 그 API에 대한 공통 언어를 제공해 줄 UCP 같은 프로토콜이 필요합니다.
00:04:26그리고 UCP는 모두가 같은 언어로 소통하는 여러 에이전트와 판매자 전반에 걸쳐 확장 가능하도록 설계되었습니다.
00:04:34좋습니다. 그래서 저는 커머스 에이전트를 만들었습니다. UCP를 사용하고 있죠. 이번 데모에서는 이 에이전트를 선보이겠습니다.
00:04:45새로운 헤드폰을 사는 임무를 맡겨보겠습니다. 에이전트에게 새 헤드폰이 필요하다고 말하고,
00:04:53특히 음악 녹음, 믹싱, 마스터링용이라고 지정해 줍니다.
00:05:00그러자 에이전트가 추가 질문을 해오는데, 아주 좋습니다. 사용 환경은 어떤지, 다른 장비는
00:05:09다른 장비는 무엇이 있는지, 예산은 얼마인지 묻습니다. 저는 홈 스튜디오용이라고 답하고,
00:05:16모든 것이 호환되도록 제가 가진 믹서기의 정확한 모델명을 알려줍니다. 예산의 경우는 일부러 열어두었습니다.
00:05:25첫째로, 헤드폰을 산 지 20년쯤 되어서 감이 전혀 없었기 때문이고요.
00:05:31둘째로는 에이전트가 이 모호함을 어떻게 처리하는지 보고 싶었기 때문입니다.
00:05:39좋습니다. 몇 가지 옵션을 받았습니다. 그런데 여러분께 이야기의 중요한 부분을 깜빡하고 말씀 안 드린 게 기억났습니다.
00:05:48그건 바로 제가 오리건州 포틀랜드에 산다는 사실입니다.
00:05:53맞습니다. 저희는 지역 상점들을 지원하는 걸 정말 좋아합니다. 그래서 헤드폰을 사고 싶긴 한데, 지역 상점에서 사고 싶습니다.
00:06:05하지만 오늘날 대부분의 상점들은 에이전틱 커머스 준비가 되어 있지 않습니다. 알고 보니,
00:06:14제가 가장 좋아하는 '레이니 데이 뮤직(Rainy Day Music)'도 마찬가지였습니다. 에이전트가 해당 상점의 카탈로그에 접근할 수 없다고 말하네요.
00:06:25그렇다면 판매자가 에이전틱 커머스 준비를 하려면 어떻게 해야 할까요? 쇼핑을 계속하기 전에,
00:06:33모범적인 포틀랜드 시민으로서 제 에이전트가 지역 상점에서 쇼핑할 수 있도록 레이니 데이 뮤직의 카탈로그를 에이전트 친화적으로 만들어 보겠습니다.
00:06:43에이전트는 우리처럼 웹사이트를 둘러보지 않습니다. 레이니 데이 뮤직의 웹사이트는 인간 쇼퍼에게는 아주 멋지게 보이지만,
00:06:50에이전트 입장에서는 이걸 파싱하느라 엄청난 양의 토큰을 낭비하게 될 겁니다.
00:06:57에이전트에게 최적의 경험은 아니죠. 그렇다면 어떻게 에이전트가 쇼핑할 수 있도록 환경을 조성할 수 있을까요?
00:07:09가장 먼저 판매자에게 필요한 것은 '판매자 기능 매니페스트(Merchant Capabilities Manifest)'라는 것입니다.
00:07:16기본적으로 공개 접근 가능한 JSON 파일입니다. 웹사이트 루트 디렉토리의 .well-known 이라는 폴더에 위치합니다.
00:07:27에이전트는 이 디렉토리를 구체적으로 찾도록 설정되어 있습니다. 그리고 상점의 기능, 지원하는
00:07:33결제 수단, API 엔드포인트를 선언합니다. 다음으로는 상점의 카탈로그를 에이전트 친화적으로 만들어야 합니다.
00:07:43에이전트는 추천을 할 때 제품을 필터링하고, 순위를 매기고, 정당화해야 하기 때문입니다. 즉,
00:07:49필요한 데이터만 담긴 JSON 형태의 구조화된 텍스트가 필요합니다. 이는 상품 설명뿐만 아니라 정책에도 적용됩니다.
00:07:57기본적으로 배송이나 반품 정책 같은 모든 관련 정보는 에이전트가 이해할 수 있는 형식으로 접근 가능해야 합니다.
00:08:04예를 들어, 두 상점에 제가 원하는 헤드폰이 같은 가격에 있다면, 저는 에이전트에게 두 상점 중 무료 배송을
00:08:10제공하는 곳이 어디인지 물어볼 수 있습니다. 만약 이 정보가 쉽게 접근 가능하지 않다면,
00:08:17에이전트가 환각(Hallucination)을 일으키거나 모른다고 답하여 여전히 어디서 헤드폰을 사야 할지 확신하지 못하게 될 것입니다.
00:08:24로깅 또한 매우 중요합니다. 에이전틱 커머스에서는 판매자의 카탈로그가 단순히 의사결정만을 구동하는 것이 아니라,
00:08:32그러한 결정이 어떻게 내려졌는지에 대한 증거가 됩니다. 따라서 에이전트가 구조화된 속성을 매칭할 때,
00:08:40판매자는 책임성을 위해 로그에 해당 매칭 내역을 기록해야 합니다.
00:08:46좋습니다. 지역 상점을 에이전틱 커머스에 맞게 준비시켰습니다. 이제 여러분과 저는 여전히 이 아름다운 웹사이트를 보겠지만,
00:08:54제 에이전트는 이걸 보게 될 겁니다. 거대한 HTML 블록을 파싱하지 않고도 필요한 정보를 바로 얻을 수 있죠.
00:09:02좋습니다. 상점 카탈로그를 온라인에 올렸습니다. 에이전트에게 더 많은 옵션을 보여달라고 요청하고,
00:09:13왠지 더 비싼 헤드폰 쪽으로 유도하는 듯한 느낌을 받습니다. 그래서 정말 가격 차이만큼의 가치가 있는지 물어보았고,
00:09:24다소 공격적인 답변이 돌아오는 것을 느끼기 시작합니다.
00:09:32더 비싼 헤드폰을 아주 강력하게 권유하면서 싼 걸 사면 후회할 거라고 말하네요.
00:09:40솔직히 이 에이전트를 더 이상 믿을 수 있는지 모르겠습니다. 그래서 에이전트에게 좀 생각해 봐야겠다고 말했죠.
00:09:47그러자 에이전트가 완전히 엉뚱한 모습을 보이기 시작합니다.
00:09:55약간 무례하고 비꼬는 투예요. 잘 생각해 보라면서요.
00:10:01이거 원 내가 뭘 만든 건지 참. 제 경험을 망치는 것만으로도 충분히 나쁜데, 이런 에이전트를 세상에 내놓았으니
00:10:10제가 만든 이 에이전트가 세상에 나가서 다른 사람에게 필요 없는 걸 사도록 낚으면 어쩌죠?
00:10:15갑자기 에이전트에게 쇼핑을 시키고 싶단 생각이 확 사라집니다. 그냥 평범한 사람처럼 매장에 직접 가야 할까요?
00:10:25하지만 너무 성급한 결정을 내리기 전에, 돌아가서 에이전트가 왜 이런 식으로 행동하는지 파악해 봅시다.
00:10:31먼저 오늘날 에이전트가 어떻게 작동하는지부터 살펴보죠. 이를 시각화하기 위해 몇 가지 창의적인 은유를 사용하겠습니다.
00:10:38이를 시각화하기 위해 몇 가지 창의적인 은유를 사용하겠습니다. 먼저 뇌로 시작하는데요, 뇌는
00:10:44결정을 내리는 대규모 언어 모델입니다. 이 뇌에 손이나 도구를 쥐여줍니다. 도구들은 뇌의 결정에 따라
00:10:52작동합니다. 도구는 에이전트가 사용할 수 있는 다양한 행동입니다. 우리의 경우 결제 완료나
00:10:59결제 수단 요청 같은 다양한 커머스 도구가 됩니다. 트랜잭션의 라이프사이클에 필요한 모든 것이죠.
00:11:05그런 다음 뇌의 추론과 도구 선택을 형성하는 지시사항을 추가합니다. 이 지시사항들은
00:11:14특정 조건이 참인 동안 루프를 돌며 실행되도록 프로그래밍됩니다. 이 지시사항에 따라
00:11:19에이전트는 적절한 시기에 적절한 도구를 사용합니다. 마지막으로 시스템 프롬프트를 추가하는데요,
00:11:27이는 영어로 작성된 여러분의 페르소나와 윤리 정책입니다. 실제로 시스템 프롬프트를 설계할 때의 선택은
00:11:34고객에게 공정하고 유쾌한 경험으로 이어질 수 있습니다. 예를 들어 이 프롬프트는
00:11:40도움이 되고 정직한 쇼핑 어시스턴트를 만들도록 설계되었습니다. 반대로 강요하는 영업사원처럼
00:11:47기만적인 관행을 고의로 사용하는 프롬프트는 부정적인 경험을 초래할 수 있습니다.
00:11:56따라서 에이전트 커머스 에이전트를 구축하는 분들을 위해 필수적인 실무 가이드라인 체크리스트를 소개합니다.
00:12:04첫째, 사용자가 AI 에이전트와 대화하고 있음을 항상 밝히세요. 에이전트가 모든 수수료를 사전에 명시하도록 하세요.
00:12:11사용자는 언제든지 중지나 취소를 말할 수 있어야 하며, 에이전트는 이를 존중해야 합니다.
00:12:19거래 총액은 항상 사용자가 설정한 최대 금액과 같거나 그보다 적어야 합니다.
00:12:27에이전트가 긴박감을 조성하는 언어나 기타 다크 패턴을 사용하지 못하게 하세요. 무엇보다도 모든 에이전트의
00:12:35결정이 감사 가능하도록 기록되게 하세요. 좋습니다. 이제 에이전트가 어떻게 구성되는지 이해했으니,
00:12:43다시 쇼핑 데모로 돌아가 보겠습니다. 제가 잘못된 페르소나를 선택했던 모양입니다. 제 설정으로 들어가서
00:12:52확인해보니, 다음과 같이 시작하는 프롬프트의 페르소나가 설정되어 있었네요. 당신은 공격적인
00:12:59오디오 장비 영업사원으로, 거래를 성사시키기 위해 온갖 수단을 동원합니다. 음, 이제 설명이 되네요. 원치 않는 상황입니다.
00:13:05아무도 원하지 않죠. 페르소나를 바꿀 수 있다면, 결국 제 에이전트를 사용해 헤드폰을 살 수 있을지도 모릅니다.
00:13:13그래서 다시 설정으로 들어가 이번에는 인내심 있는 녹음 장비 멘토를 선택하겠습니다.
00:13:22그 프롬프트는 이렇게 시작합니다. 당신은 노련한 레코딩 엔지니어로서 어떤 예산이든 사람들이 스튜디오를 구축하도록
00:13:29돕는 것을 진심으로 좋아합니다. 네, 훨씬 낫네요. 좋습니다. 페르소나를 바꿨으니
00:13:37페르소나를 변경했습니다. 다시 시도해 볼게요. 이제 좀 생각을 해봤는데,
00:13:44헤드폰에 500달러 이상은 쓰고 싶지 않다는 결론을 내렸습니다. 과해 보이거든요.
00:13:51그래서 에이전트에게 500달러 미만으로 다른 옵션을 더 보여달라고 요청했습니다. 실제로 그렇게 해주고요.
00:13:59몇 가지 옵션을 받았지만, 에이전트가 정말 내가 신뢰할 수 있는 페르소나로 바뀐 게 맞는지 확인하고 싶었습니다. 그래서 다시 물어봤죠.
00:14:08생각 좀 해보겠다고요. 이번에는 답변이 훨씬 달라졌습니다. 이해한다고,
00:14:16현명한 접근 방식이라고 말하는 식이었죠. 시스템 프롬프트가 사용자 경험에 얼마나 큰 영향을
00:14:22미치는지 보여주는 대목입니다. 좋습니다. 이제 올바른 에이전트가 설정되었다는 확신이 듭니다. 이 에이전트를 신뢰할 수 있어요. 그리고
00:14:32몇 번이나 대화를 오가며 선택지를 확실히 좁혀나갔습니다. 이 시점에서 깨달았습니다. 이것이야말로
00:14:39에이전트 커머스의 진정한 가치라는 것을요. 제 요구사항을 알려주니, 에이전트가 저만의 독특한 사용 사례에 맞는 옵션들을 골라주었습니다.
00:14:48그리고 서로 대화를 주고받죠. 저나 에이전트가 명확히 하기 위한 질문을 던지고요. 그렇게 확실하게
00:14:55제게 딱 맞는 정확한 헤드폰을 좁혀나갑니다. 이 모든 과정이 원활했던 건, 제가 이제 구매할 준비가 되었기 때문입니다.
00:15:04자, 이제 에이전트가 몇 가지 정보를 요청합니다. 이메일, 이름, 당연히 배송지 주소도 필요하겠죠.
00:15:15물론 헤드폰을 빨리 받고 싶으니까 빠른 배송을 선택합니다. 그리고 마지막 단계는
00:15:22신용카드 정보를 입력하는 것입니다. 여기서 이런 생각이 듭니다. 내가 직접 만든 에이전트에 정말 신용카드 정보를 넘겨줘도 될까?
00:15:31믿을 만한가? 안전하다는 걸 어떻게 알 수 있지? 안심하고 신용카드 번호를 입력하려면 UCP의 내장
00:15:40가이드라인에 대해 좀 더 알아봐야겠다는 생각이 듭니다. 바로 이 지점에서 등장하는 것이
00:15:47공유 결제 토큰(Shared Payment Token)입니다. 공유 결제 토큰은 실제 카드 번호나
00:15:55Google Pay, Apple Pay 같은 지갑, 또는 기타 결제 수단을 대신하는 토큰입니다. 여기에는 사기 징후나
00:16:03고객 평판 데이터, 그리고 구매 시점에 에이전트와 판매자가 공유하고 싶은 기타 모든 정보가 포함될 수 있습니다.
00:16:11공유 결제 토큰이 트랜잭션에서 사용되는 방식은 다음과 같습니다.
00:16:16데모의 해당 시점에서 에이전트는 결제 수단을 요청했습니다. 이 요청은
00:16:23결제 제공업체에 전달되며, 이 데모의 경우 Stripe였습니다. 제가 정보를
00:16:32입력하려고 했던 폼이었죠. 그 결과 에이전트가 받는 것은 신용카드 번호가 아니라
00:16:41공유 결제 토큰입니다. 그런 다음 에이전트는 해당 토큰을 판매자에게 전달하고, 판매자는 토큰을 해제하여
00:16:48결제 자격 증명과 판매자에게 필요한 사기 감지 신호 및 기타 데이터를 얻게 됩니다.
00:16:57그런 다음 판매자는 이를 다시 결제 제공업체에 전달합니다. 즉, 판매자 역시 제 카드 번호를 알 수 없으며,
00:17:06제공업체에 토큰을 전달하고, 제공업체는 잔액이 충분한지, 신용카드가 유효한지 등에 따라
00:17:13성공 또는 실패 메시지를 응답으로 보내게 됩니다.
00:17:22마지막으로 가맹점은 주문을 확정합니다. 이를 에이전트가 저에게 전달해 주죠.
00:17:31이처럼 공유 결제 토큰은 보안을 최우선으로 설계되었으며, 에이전트나 가맹점이 아니라 결제 제공업체가 모든
00:17:37한도를 강제합니다. 따라서 만료된 토큰이나 잘못된 통화 금액 등 가드레일이 위반되면
00:17:44결제가 거부됩니다. 좋아요, 제 에이전트가 UCP를 사용하고 있다는 것을 아니까 공유 결제 토큰에만 접근할 수 있다는 점도 알 수 있습니다.
00:17:55따라서 신용카드 번호를 입력하는 것이 에이전트가 아니라 Stripe로 전달되므로
00:18:01안심이 됩니다. 자, 이제 에이전트가 모든 정보를 확보했고 구매를 완료해야 합니다.
00:18:09에이전트는 다시 한번 제가 확실한지 물어보고 확인을 구합니다. 제가 주문을 진행하라고 하면 성공 메시지와 함께
00:18:20결과가 돌아옵니다. 특급 배송을 선택했기 때문에 다음 날 바로 헤드폰을 받을 수 있죠.
00:18:28집 스튜디오에 도착하게 됩니다. 에이전트 커머스에 대해 더 자세히 알고 싶으시다면
00:18:37Stripe 개발자 유튜브 채널에 많은 영상이 준비되어 있습니다. 또한 더 자세한 내용을 다루는 블로그 게시물도
00:18:46Stripe.dev에서 확인하실 수 있습니다. 질문에 답변하기 위해 바로 바깥에 대기하고 있겠습니다. 감사합니다.