2024년이 인공지능 챗봇의 해였다면 2025년은 인공지능 에이전트의 해입니다. 언뜻 보기에는 비슷해 보이지만 실제로는 전혀 다른 개념입니다. 웹 인터페이스를 통해 AI 챗봇과 상호 작용하는 것과 같은 방식으로 AI 에이전트와 상호 작용할 수 있지만, 둘 사이의 차이점은 극명합니다.
AI 에이전트가 자율적으로 사용자의 요청을 처리할 수 있습니다. 맞습니다, 제가 말씀드렸습니다: 자율적으로. AI가 사용자를 대신하여 사용자의 개입 없이 수행해야 할 작업과 다음 단계를 파악합니다.
데이트하기 좋은 레스토랑을 찾아 테이블을 예약하고 싶으신가요? 검색부터 예약까지 인공지능 에이전트에게 맡겨보세요.
CRM에서 새로운 고객 참여를 추적하고 맞춤형 개인화 이메일을 보내야 하나요? 추적부터 이메일 작성, 발송까지 AI 에이전트에게 맡기세요.
기본적으로 상담원은 온라인에서 거의 모든 작업을 수행할 수 있습니다. 여러 상담원이 함께 작업할 수도 있습니다. 상담원에게 필요한 것은 작업 로 설정하면 해당 작업을 완료할 수 있습니다.
에이전트 AI를 구축하거나 사용하려면 막대한 비용이 들 것이라고 생각할 수도 있습니다. 이 분야에서 가장 큰 규모의 회사 중 일부는 매우 높은 월 사용료를 받고 이러한 서비스를 제공하고 있습니다. 하지만 Python과 JavaScript에 대한 약간의 지식만 있으면 풀 스택 AI 에이전트 웹 사용자 인터페이스를 무료로 구축할 수 있습니다. 무엇보다도 고성능 데이터 저장, 검색 및 전체 텍스트 검색 기능을 위해 Couchbase를 쉽게 통합할 수 있습니다. 완전 관리형 서비스형 데이터베이스인 Couchbase Capella는 애플리케이션에서 사용할 수 있는 완전 무료 영구 티어도 제공합니다.
애플리케이션의 아키텍처와 구축 방식을 살펴보겠습니다. 작동 방식을 더 잘 이해하면 각자의 사용 사례에 맞게 조정할 수 있습니다.
애플리케이션은 React 프론트엔드와 Python 백엔드로 구성됩니다. 여기서는 백엔드에 초점을 맞추겠습니다. 백엔드는 에이전트의 작업과 Couchbase와의 상호 작용이 이루어지는 곳이기 때문입니다. 프론트엔드는 모바일 우선 디자인을 제공하는 GitHub에서 자유롭게 살펴볼 수 있습니다.
작동 방식 살펴보기
이 애플리케이션의 기반은 React 프론트엔드와 Python 백엔드의 조화로운 조합입니다. 프론트엔드가 원활하고 반응이 빠른 사용자 경험을 보장하는 반면, 백엔드는 AI 에이전트가 작동하여 사용자 요청을 처리하고 데이터 관리를 위해 Couchbase와 상호 작용하는 곳입니다.
브라우저를 사용하는 AI 에이전트
AI 에이전트의 핵심은 다음을 통합하는 것입니다. 브라우저 사용의 오픈 소스 파이썬 라이브러리. 이 라이브러리는 상담원이 브라우저 작업을 시뮬레이션하여 다양한 작업을 수행할 수 있도록 지원합니다. 레스토랑 웹사이트로 이동하여 테이블을 예약하거나 CRM에 액세스하여 고객 참여를 추적하는 등 브라우저 사용은 상담원이 웹 리소스와 효과적으로 상호 작용하는 데 필요한 도구를 제공합니다.
브라우저 사용 AI 에이전트를 초기화하려면 Python 백엔드에서 몇 줄의 코드만 입력하면 됩니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
비동기 def 실행_브라우저_에이전트(작업: str): """ 브라우저 에이전트를 실행하고 그 결과를 JSON 직렬화 가능한 형식으로 반환합니다. """ 에이전트 = 에이전트(작업=작업, llm=llm, 사용_비전=True, 최대_실패=3, retry_delay=5) 역사 = 기다림 에이전트.실행(max_steps=50) serialized_results = [] 만약 역사 그리고 역사.역사: 에 대한 단계 in 역사.역사: 만약 단계.결과: 만약 인스턴스(단계.결과, 목록): 에 대한 res in 단계.결과: serialized_results.추가(vars(res)) else: serialized_results.추가(vars) 반환 serialized_results |
에이전트는 다음과 같은 여러 매개 변수를 사용하여 인스턴스화됩니다:
-
- 수행하려는 특정 작업
- 독립적인 연구 결과를 분석하는 데 사용할 대규모 언어 모델(이 프로젝트는 현재 Anthropic, OpenAI, DeepSeek, Qwen, Azure, Gemini 등을 지원함)
- 에 대한 부울 값입니다. 비전를 통해 에이전트가 연구 이미지를 분석할 수 있는 기능을 제공합니다.
- 작업을 실패로 종료하기 전에 허용할 실패 횟수입니다.
- 재시도 사이의 대기 시간(초)
- 작업을 완료하기 위해 상담원이 실행할 수 있도록 권한을 부여한 단계 수
에이전트를 인스턴스화하기 위한 나머지 코드는 결과를 반환하는 데만 관련되어 있습니다.
에이전트를 생성하고 세상에 내놓는 데 필요한 것은 이것뿐입니다. 파이썬 몇 줄이면 됩니다.
AI 에이전트는 레스토랑 예약이나 개인화된 이메일 전송과 같은 작업을 수신하면 브라우저 사용 라이브러리를 활용하여 온라인에서 필요한 작업을 수행합니다. 여기에는 웹사이트 탐색, 양식 작성, 정보 구문 분석 등이 포함되며, 이 모든 작업은 사용자 요청을 효율적으로 처리하기 위해 프로그래밍 방식으로 실행됩니다.
데이터 지속성 및 검색은 최신 애플리케이션의 기본 기능입니다. 채팅 기록과 같은 사용자 목적을 위해 데이터를 보존할 수 있을 뿐만 아니라 다음과 같은 방법론을 사용하여 보존된 데이터로 상담원에게 추가적인 컨텍스트를 제공할 수도 있습니다. 검색 증강 생성(RAG). 다음을 읽는 것이 좋습니다. 이 문서 에서 해당 주제를 더 자세히 살펴보세요.
지금은 Couchbase를 사용하여 상담원 사용자 인터페이스에 데이터 지속성 및 검색 기능을 도입해 보겠습니다.
전체 텍스트 검색을 위해 Couchbase와 상호 작용하기
Couchbase는 채팅 데이터를 효율적으로 관리하고 검색하는 데 중추적인 역할을 합니다. 백엔드는 Couchbase 전체 텍스트 검색(FTS) 기능을 활용하여 방대한 채팅 기록을 신속하게 검색하여 사용자 쿼리를 기반으로 관련 대화를 찾을 수 있습니다. 다음은 Couchbase Python SDK를 사용하여 백엔드가 FTS를 위해 Couchbase와 상호 작용하는 간소화된 예시입니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
에서 입력 가져오기 목록 에서 카우치베이스.검색 가져오기 쿼리 문자열 쿼리, 검색 옵션 가져오기 로깅 def 검색_채팅(user_id: str, 검색_텍스트: str) -> 목록[dict]: """ 카우치베이스 FTS를 사용하여 검색_텍스트를 기반으로 특정 사용자의 채팅을 검색합니다. Args: user_id (문자열): 사용자의 ID입니다. 검색_텍스트(문자열): 채팅 이름 내에서 검색할 텍스트입니다. 반환합니다: 목록[딕셔너리]: 검색 조건과 일치하는 채팅 문서 목록입니다. """ 시도: # 지정된 FTS 인덱스에 대해 검색 쿼리를 실행합니다. 검색 결과 = 클러스터.검색 쿼리( "버킷 이름.범위 이름.검색 인덱스 이름", 쿼리 문자열 쿼리(검색_텍스트), 검색 옵션(필드=["chat_id", "user_id", "name", "messages.content", "messages.timestamp", "messages.sender"]) ) 결과 = [] 에 대한 행 in 검색 결과.행(): 채팅 = 행.필드.복사() # 메시지 세부 정보 추출 메시지_콘텐츠 = 채팅.get("messages.content", []) 메시지_타임스탬프 = 채팅.get("messages.timestamp", []) 메시지_발신자 = 채팅.get("messages.sender", []) # 모든 메시지 목록이 정렬되었는지 확인합니다. 만약 len(메시지_콘텐츠) == len(메시지_타임스탬프) == len(메시지_발신자): 채팅["메시지"] = [ { "content": 콘텐츠, "timestamp": 타임스탬프, "sender": 발신자 } 에 대한 콘텐츠, 타임스탬프, 발신자 in zip(메시지_콘텐츠, 메시지_타임스탬프, 메시지_발신자) ] else: 로깅.경고("메시지 필드에 불일치가 있습니다. 콘텐츠만 포함합니다.") 채팅["메시지"] = [{"content": 콘텐츠} 에 대한 콘텐츠 in 메시지_콘텐츠] # 중복 필드 정리 채팅.팝("messages.content", 없음) 채팅.팝("messages.timestamp", 없음) 채팅.팝("messages.sender", 없음) 결과.추가(채팅) # 지정된 사용자의 채팅 필터링하기 user_chats = [채팅 에 대한 채팅 in 결과 만약 채팅.get("user_id") == user_id] 로깅.정보(f"검색 결과 '{user_id}' 사용자에 대한 {len(user_chats)} 채팅이 반환되었습니다.") 반환 사용자_채팅 예외 예외 as e: 로깅.오류(f"검색 중 오류가 발생했습니다: {e}") 반환 [] |
이 스니펫에서는 검색_채팅 함수는 사용자 입력을 기반으로 관련 채팅 대화를 검색하는 데 핵심적인 역할을 합니다. 사용자가 검색 쿼리를 입력하면 이 함수는 Couchbase 내의 FTS 인덱스를 대상으로 검색 요청을 구성합니다. 검색할 필드를 지정하여 다음과 같은 모든 필수 정보가 포함되도록 합니다. chat_id, user_id, 이름및 메시지 세부 정보가 검색 결과에 포함됩니다.
AI 에이전트와 Couchbase 간의 상호 작용은 모든 사용자 상호작용을 안전하게 저장하고 필요할 때 신속하게 검색할 수 있도록 보장합니다. 채팅 기록을 가져오든 사용자 기본 설정을 업데이트하든, Couchbase는 속도나 안정성을 저하시키지 않으면서 증가하는 사용자 기반을 처리하는 데 필요한 확장성과 성능을 제공합니다.
사용자가 프론트엔드에서 검색을 시작하면 React 애플리케이션이 쿼리를 백엔드로 전송합니다. AI 에이전트는 이 요청을 처리하고 Couchbase와 상호 작용하여 관련 채팅을 가져온 다음 결과를 다시 프론트엔드로 보냅니다. 이러한 왕복 과정을 통해 사용자는 정확하고 시기적절한 정보를 받아 애플리케이션에 대한 전반적인 경험을 향상시킬 수 있습니다.
이 애플리케이션은 브라우저 사용 라이브러리의 기능과 카우치베이스의 데이터 관리 기능을 결합하여 종합적인 AI 상담원 경험을 제공합니다. 사용자는 온라인 작업을 관리하고, 상담원과 의미 있는 대화를 나누며, 시스템을 통해 복잡한 작업을 백그라운드에서 처리할 수 있습니다.
이 아키텍처는 즉각적인 기능을 제공할 뿐만 아니라 향후 개선을 위한 견고한 기반을 마련합니다. 애플리케이션이 발전함에 따라 프론트엔드, AI 에이전트, Couchbase 간의 통합을 통해 사용자 요구에 맞게 적응력과 확장성, 반응성을 유지할 수 있습니다.
마무리
다음에 AI 에이전트 서비스가 출시되는 것을 보고 신용카드로 월 청구서를 감당할 수 없어 포모(FOMO)를 느낀다면, 약간의 파이썬과 자바스크립트만 있으면 나만의 에이전트를 마음대로 만들 수 있다는 사실을 기억하세요.
시작하고 싶으신가요? 다음에서 프로젝트로 이동하세요. GitHub를 클릭하고 컴퓨터에 복제한 다음 사용 설명서의 지침에 따라 실행해 보세요.
에이전트에게 어떤 시간 절약 작업을 맡기고 싶으신가요? 활발하게 성장하고 있는 Discord 커뮤니티에 참여하여 여러분이 구축한 것을 공유하세요!
-
- 다음에서 AI 기능을 사용하기 시작하세요. 카우치베이스 카펠라 오늘, 무료로