"에이전트(agent)"라는 단어는 그 의미를 잃어가고 있습니다. 지금 어떤 제품 발표를 살펴보더라도, 모든 AI 기능이 스스로를 에이전트라고 주장합니다. 이메일 초안을 작성해 주는 친절한 위젯? 에이전트. 지식 베이스를 읽는 고객 지원 봇? 에이전트. API를 호출하고 JSON을 반환하는 스크립트? 이것도 에이전트입니다. 이것은 단순히 허술한 마케팅이 아닙니다. 위험한 설계입니다. 모든 것을 에이전트라고 부르면, 실제로 무엇을 만들고 있는지 이해하는 것을 멈추게 됩니다. 해야 할 일을 정의하기도 전에 복잡한 아키텍처를 찾게 됩니다. 그 결과는 취약한 코드, 걷잡을 수 없는 토큰 비용, 그리고 설명하거나 재현할 수 없는 방식으로 동작하는 시스템입니다.

챗봇은 기다릴 뿐, 행동하지 않습니다

챗봇은 가장 단순한 단계에 속합니다. 이들은 반응적(reactive)입니다. 사용자가 질문을 입력하면 모델이 응답을 생성하고, 다른 인간의 프롬프트가 들어오지 않는 한 대화는 거기서 끝납니다. 이러한 시스템은 사용자의 일정을 확인하거나, 데이터베이스 레코드를 업데이트하거나, 명확한 설명을 위해 대화를 잠시 멈추기로 스스로 결정하지 않습니다. SaaS 가격 페이지에 삽입된 도움말 위젯을 생각해 보십시오. 이 위젯은 결제 주기나 기능 제한에 관한 질문에 답합니다. 고객에게 환불을 해주거나, 플랜을 업그레이드하거나, 의심스러운 계정을 표시하지는 않습니다. 이 위젯에는 도구가 없고, 채팅창 너머의 지속적인 상태(persistent state)도 없으며, 관련 있는 문장을 생성하는 것 외에는 목표가 없습니다. 그것이 챗봇입니다. 응답할 뿐, 행동하지 않습니다.

어시스턴트는 창 안에서 도움을 줍니다

어시스턴트는 자율성(agency)을 추가하지 않으면서 정교함을 더합니다. 이들은 시스템 프롬프트를 사용하여 페르소나를 채택합니다. 더 긴 대화 과정에서 문맥(context)을 유지합니다. 업로드한 문서를 요약하거나 문단의 어조를 다르게 다시 작성할 수도 있습니다. 문법을 확인하고 더 명확한 표현을 제안하는 글쓰기 어시스턴트는 유용합니다. 당신이 영국식 철자를 선호한다는 사실도 기억합니다. 하지만 당신을 대신해 행동을 취하지는 않습니다. 편집자에게 이메일을 보내거나, 마감일을 예약하거나, 요청하지 않았는데 웹을 검색하기로 결정하지도 않습니다. 제공된 창 안에서만 보조할 뿐입니다. 자동차를 운전하는 것이 아니라, 당신이 운전대를 잡고 있는 동안 더 나은 경로를 제안하는 것과 같습니다.

워크플로우는 당신이 그린 지도를 따릅니다

워크플로우는 대부분의 실제 프로덕션 AI 시스템이 속해 있는 중간 단계입니다. 여기서는 당신이 경로를 정의합니다. 송장 날짜 추출, 공급업체 ID 조회, 구매 주문서와 금액 비교, 회계 스프레드시트 업데이트, 금액이 일치하지 않을 경우 재무팀에 알림 전송과 같은 일련의 단계를 구축합니다. 모델이 송장을 읽거나 불일치 사항을 분류할 수는 있지만, 모델은 당신이 만든 그래프를 따릅니다. 당신이 지도를 그렸기 때문에 어떤 일이 일어날지 정확히 알 수 있습니다.

워크플로우는 테스트하기가 더 쉽습니다. 각 단계를 격리하여 유닛 테스트(unit-test)할 수 있습니다. 모든 노드에서 입출력을 로그로 남길 수 있습니다. 무언가 고장 나면, 불투명한 사고의 사슬(chain of thought)을 뒤질 필요 없이 어느 분기에서 실패했는지 알 수 있습니다. 시스템이 우회 경로로 당신을 놀라게 하지 않으므로 관찰 가능성(observability)도 명확합니다. 비즈니스 프로세스에 명확한 규칙과 알려진 예외 사항이 있다면, 대개 워크플로우가 승리합니다. 기계에 의도가 있는 것처럼 꾸미지 않고도 속도, 신뢰성, 그리고 낮은 비용을 얻을 수 있습니다.

에이전트는 경로를 선택합니다

에이전트는 다릅니다. 이들은 동적입니다. 목표를 주면 어떻게 도달할지 스스로 찾아냅니다. 에이전트는 작업을 받고, 무엇이 일어나야 하는지 분석하고, 도구를 선택하고, 실행하고, 결과를 관찰한 다음 다음에 무엇을 할지 결정합니다. '추론(reason), 행동(act), 관찰(observe), 다시 추론(reason again)'으로 이어지는 이 루프가 에이전트를 다른 모든 범주와 구분 짓는 핵심입니다.

환불 요청을 처리하는 시스템을 생각해 보십시오. 워크플로우는 세 가지 조건을 확인하고 고정된 규칙에 따라 승인하거나 거부할 수 있습니다. 반면 "사기 여부를 확인하면서 이 환불을 공정하게 처리하라"는 목표를 받은 에이전트는 고객의 구매 이력을 조회하고, 해당 제품 카테고리의 반품 정책을 확인하며, 최근 계정 활동을 찾아보고, 패턴이 비정상적이면 수동 검토를 위한 지원 티켓을 생성한 다음, 결정 사항을 설명하는 이메일 초안을 작성할 수도 있습니다. 에이전트는 사례의 구체적인 내용에 따라 어떤 도구를 어떤 순서로 사용할지 스스로 선택한 것입니다.

에이전트는 단순한 모델이 아니라 시스템입니다

에이전트는 채팅창에서 실행되는 모델이 아닙니다. 하나의 완전한 시스템입니다. 에이전트는 다음을 결합합니다:

  • 언어 추론 및 생성을 위한 모델(Models)
  • 작동 범위를 제한하는 지침(Instructions)
  • 외부 세계와 상호작용하기 위한 엄격한 스키마를 가진 도구(Tools)
  • 현재 작업 및 환경에 대한 컨텍스트(Context)
  • 다단계 프로세스에서 현재 위치를 기억하기 위한 상태(State)
  • 입력값이 도구에 들어가기 전, 출력값이 사용자에게 전달되기 전 확인하는 검증(Validations)
  • 통제 불능 상태를 방지하기 위한 예산, 단계 또는 범위에 대한 제한(Limits)
  • 왜 B 대신 A 경로를 선택했는지 재구성할 수 있는 관측 가능성(Observability)

만약 시스템에 이러한 요소 중 대부분이 결여되어 있다면, 그것은 에이전트가 아닙니다. 그저 추가적인 API 호출 기능이 있는 모델일 뿐입니다.

통제 없는 자율성은 그저 리스크일 뿐이다

에이전트가 운영 데이터베이스를 조회하거나, CRM에 레코드를 생성하거나, 사용자에게 메시지를 보낼 수 있다면, 데이터를 손상시키거나, 항목을 중복 생성하거나, 고객에게 스팸을 보낼 수도 있습니다. 훌륭한 에이전트 아키텍처는 실패를 가정합니다. 파괴적인 작업을 수행하기 전에 권한을 요청합니다. 결과를 확정하기 전에 검증을 실행합니다. 비용이나 리스크가 커질 때 사람이 개입할 수 있도록 추론 과정을 공개합니다.

데모가 흥미로워 보인다는 이유로 이러한 제한 사항들을 건너뛴다면, 에이전트가 밤새 400개의 고객 지원 티켓을 생성했거나 건드리지 말아야 할 주문을 환불한 이유를 디버깅하며 주말을 보내게 될 것입니다. 블랙박스 시스템에서 우려했던 예측 불가능성은 AI에게 목표와 감독되지 않은 도구 세트를 동시에 건네주는 순간 현실이 됩니다.

기술이 아닌 문제부터 시작하라

에이전트부터 시작하지 마세요. 고통(Pain point)부터 시작하세요. 때로는 더 나은 프롬프트가 해결책이 될 수 있습니다. 때로는 기존 백엔드의 결정론적 함수(deterministic function)가 해결책일 수 있습니다. 때로는 하나의 AI 단계와 다섯 개의 전통적인 API 호출로 구성된 워크플로우가 해결책일 수도 있습니다.

다음과 같은 사항이 진정으로 필요할 때만 에이전트를 고려하십시오:

  • 서로 의존하는 여러 단계
  • 단계 사이의 동적인 의사 결정
  • 외부 도구와의 상호작용
  • 사전에 완전히 매핑할 수 없는 중간 결과에 대한 추론

경로가 정해져 있다면 워크플로우를 구축하십시오. 상호작용이 단순하다면 챗봇이나 어시스턴트를 만드십시오. 단지 '에이전트'라는 단어가 현대적으로 들린다는 이유로 에이전시(agency) 기능을 추가하지 마십시오.

복잡성이 아닌 성숙도를 구축하라

에이전트가 정말로 적합한 경우, 계층적으로 구축하십시오. 단일 도구와 하드코딩된 결정부터 시작하십시오. 도구가 올바른 인수로 호출되는지 확인하는 테스트를 추가하십시오. 전체 트레이스를 볼 수 있도록 로깅을 추가하십시오. 시스템이 중단된 지점을 알 수 있도록 상태 관리(state management)를 추가하십시오. 모든 경계에 검증을 추가하십시오. 팀이 실시간으로 동작을 관찰할 수 있도록 관측 가능성(observability) 대시보드를 추가하십시오. 마지막으로, 옵션 사이에서 선택할 수 있는 자유인 자율성을 신중하게 추가하십시오. 이 과정을 역순으로 진행하지 마십시오. 혼돈 위에 쌓아 올린 자율성은 값비싼 사고를 초래합니다.

핵심 요약

단어가 시스템을 형성합니다. "에이전트"라는 용어는 그 자격을 갖춘 아키텍처를 위해 남겨두십시오. 즉, 목표 지향적이고, 도구를 사용하며, 동적으로 적응하되, 엄격한 제한과 인간의 감독 하에 있는 아키텍처를 말합니다. 그 외의 모든 것은 챗봇, 어시스턴트 또는 워크플로우입니다. 문제를 해결하는 가장 단순한 것을 만드십시오. 운영 로그, 재무 팀, 그리고 미래의 당신이 고마워할 것입니다.

Source: https://dev.to/leandrolayerle/no-todo-chatbot-es-un-agente-de-ia-3oec

Join the GyaanSetu learning community: https://t.me/GyaanSetuAi