AI 서비스

기존 상담원을 카우치베이스 AI 서비스로 마이그레이션하기

2025년의 일반적인 AI 에이전트 애플리케이션에는 일반적으로 다음이 포함됩니다:

  • 클라우드 호스팅 LLM
  • 검색을 위한 벡터 데이터베이스
  • 별도의 운영 데이터베이스
  • 프롬프트 관리 및 도구 관리 도구
  • 관찰 가능성 및 추적 프레임워크
  • 가드레일

각각의 도구는 문제를 해결합니다. 그러나 이러한 도구들을 종합하면 예측할 수 없는 지연 시간, 운영 비용 증가, 거버넌스 사각지대를 초래하는 아키텍처 스프롤이 발생할 가능성이 있습니다. 결과적으로 많은 AI 에이전트가 데모나 내부 프로토타입을 넘어서지 못하는 이유는 복잡성이 너무 빠르게 증가하기 때문입니다.

이 게시물에서는 기존 AI 에이전트 애플리케이션을 Couchbase AI 서비스 및 에이전트 카탈로그로 마이그레이션하여 프로덕션이 가능한 단일 AI 플랫폼으로 전환하는 방법을 안내합니다. 

핵심 문제: 파편화가 생산 AI를 죽인다

에이전트 시스템이 프로덕션 환경에서 어려움을 겪는 이유를 이해하는 것이 중요합니다. 오늘날 대부분의 AI 에이전트는 한 시스템에는 프롬프트가, 다른 시스템에는 벡터가, 대화는 일관성 없이 기록되고, 도구는 명확한 추적성 없이 호출되는 등 너무 많은 부분이 느슨하게 결합되어 구축되어 있습니다. - 에이전트 동작을 디버깅하기 어렵게 만듭니다. 동시에 기업 데이터를 써드파티 LLM 엔드포인트로 전송하면 규정 준수 및 보안 위험이 발생합니다. 마지막으로, 거버넌스는 일반적으로 사후 고려 사항으로 취급되며, 많은 프레임워크는 에이전트가 수행할 수 있는 작업은 강조하지만 에이전트가 어떤 결정을 내린 이유, 어떤 프롬프트나 도구가 영향을 미쳤는지 또는 해당 결정을 아예 허용해야 했는지 여부는 설명하지 못합니다. 이는 실제 비즈니스 워크플로우에서는 용납할 수 없는 격차입니다.

카우치베이스 AI 서비스란 무엇인가요?

AI 애플리케이션을 구축하려면 메모리를 위한 벡터 데이터베이스, LLM을 위한 추론 공급자(예: OpenAI 또는 Anthropic), 모델 임베딩을 위한 별도의 인프라 등 여러 서비스를 함께 사용해야 하는 경우가 많습니다.

카우치베이스 AI 서비스 는 운영 데이터, 벡터 검색, AI 모델이 함께 있는 통합 플랫폼을 제공하여 이를 간소화합니다. 다음을 제공합니다:

  • LLM 추론 및 임베딩 API: 외부 API 키, 추가 인프라, 데이터 이그레스 없이도 인기 있는 LLM(예: Llama 3)과 임베딩 모델을 Couchbase Capella 내에서 바로 이용할 수 있습니다. 애플리케이션 데이터는 Capella 내부에 유지됩니다. 쿼리, 벡터, 모델 추론은 모두 데이터가 있는 곳에서 이루어집니다. 이를 통해 개인정보 보호 및 규정 준수 요건을 충족하면서 안전하고 지연 시간이 짧은 AI 환경을 구현할 수 있습니다. 핵심 가치: 데이터와 AI를 함께 사용하며 민감한 정보는 시스템 내부에 보관합니다.
  • 통합 플랫폼: 데이터베이스, 벡터화, 검색 및 모델을 중앙 위치에서 유지 관리하세요.
  • 통합 벡터 검색: 밀리초 단위의 지연 시간으로 JSON 데이터에서 직접 시맨틱 검색을 수행하세요.

왜 필요한가요?

단순한 챗봇에서 에이전트 워크플로 - AI 모델이 자율적으로 도구를 사용하는 곳 - 지연 시간과 설정 복잡성이 주요 병목 현상이 됩니다. 카우치베이스 AI 서비스는 플랫폼 우선 접근 방식을 취합니다. 데이터와 AI 서비스를 함께 배치함으로써 운영 오버헤드와 지연 시간을 줄여줍니다. 또한 다음과 같은 도구는 상담원 카탈로그 수백 개의 상담원 프롬프트와 도구를 관리하는 동시에 상담원을 위한 기본 제공 로깅 및 원격 분석 기능을 제공합니다. 

이 시점에서 질문은 플랫폼 우선 접근 방식이 중요한 이유에서 실제로 어떻게 작동하는지에 대한 질문으로 전환됩니다.

따라서 기존 에이전트 애플리케이션을 마이그레이션하고 그 과정에서 성능, 거버넌스 및 안정성을 개선할 수 있는 방법을 살펴보세요.

현재 앱의 모습

현재 애플리케이션은 후보자의 초기 심사를 자동화하도록 설계된 HR 소싱 에이전트입니다. 에이전트 애플리케이션의 주요 작업은 원시 이력서 파일(PDF)을 수집하고, LLM을 사용하여 이력서의 내용을 이해하며, 비정형 데이터를 Couchbase에서 시맨틱 임베딩으로 강화된 쿼리 가능한 형식으로 구조화하는 것입니다. 이를 통해 인사 담당자는 새로운 직무 설명을 업로드하고 Couchbase 벡터 검색을 사용해 가장 적합한 후보자에 대한 결과를 얻을 수 있습니다. 

현재 상태의 HR 소싱 앱은 Python 기반 마이크로서비스로, Google ADK로 LLM을 래핑합니다. 이 앱은 모델 정의, 상담원 프롬프트 및 실행 파이프라인을 수동으로 함께 연결합니다. 이 아키텍처는 기능적으로 작동하지만 개발자가 메모리에서 세션 상태를 관리하고, 재시도 로직을 처리하고, 원시 모델 출력을 정리하고, LLM과 데이터베이스 간의 통합을 수동으로 유지 관리해야 합니다. 또한 에이전트를 위한 기본 제공 원격 분석 기능도 없습니다. 

앱이 모델 공급자를 수동으로 인스턴스화합니다. 이 특정 경우에는 네비우스를 통해 호스팅된 오픈 소스 모델(Qwen 2.5-72B)에 연결합니다. LiteLLM 래퍼를 사용해야 합니다. 앱은 에이전트를 위한 런타임 환경을 수동으로 스핀업해야 합니다. 이 앱은 대화 상태를 추적하기 위해 InMemorySessionService를 초기화하며(단기간이더라도), 에이전트 파이프라인에 대해 사용자의 입력(이력서 텍스트)을 실행하기 위해 Runner를 초기화합니다.

에이전트 애플리케이션을 카우치베이스 AI 서비스로 마이그레이션하기

이제 에이전트의 핵심 로직을 마이그레이션하여 Couchbase AI 서비스 및 에이전트 카탈로그를 사용하는 방법에 대해 자세히 알아보겠습니다. 

새로운 에이전트는 LangChain ReAct 에이전트를 사용하여 직무 설명을 처리하고, 벡터 검색을 사용하여 지능형 후보자 매칭을 수행하며, 설명과 함께 순위가 매겨진 후보자 추천을 제공합니다. 

전제 조건

시작하기 전에 다음 사항을 확인하세요:

  • Python 3.10 이상이 설치되어 있어야 합니다.

설치 종속성

필요한 패키지를 설치하는 것부터 시작하겠습니다. 여기에는 agentc 카탈로그 및 LangChain 통합 패키지를 위한 CLI.

중앙 집중식 모델 서비스(카우치베이스 AI 모델 서비스 통합)

원본에서 adk_resume_agent.py, 를 사용하려면 수동으로 LiteLLM을 인스턴스화하고, 특정 공급자 API 키(Nebius, OpenAI 등)를 관리하고, 애플리케이션 코드 내에서 연결 로직을 처리해야 했습니다. Couchbase를 사용하도록 코드를 마이그레이션할 것입니다. 

카우치베이스 AI 서비스는 에이전트가 사용하는 OpenAI 호환 엔드포인트를 제공합니다. LLM 및 임베딩의 경우, 당사는 LangChain Couchbase 커넥터와 직접 통합되는 LangChain OpenAI 패키지를 사용합니다.

AI 서비스 사용

  1. UI에서 Capella의 AI 서비스 섹션으로 이동합니다.
  2. 임베딩 및 LLM 모델을 배포합니다.
    • 이 데모를 위해서는 데이터가 저장될 Capella 클러스터와 동일한 지역에서 임베딩 및 LLM을 실행해야 합니다.
    • 다음과 같은 도구 호출 기능이 있는 LLM을 배포합니다. 미스트랄라이/미스트랄-7b-인스트럭트-v0.3. 임베딩의 경우 다음과 같은 모델을 선택할 수 있습니다. 엔비디아/라마-3.2-NV-EMBEDQA-1B-V2.
  3. 엔드포인트 URL을 메모하고 API 키를 생성합니다.

AI 모델 출시에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 공식 문서.

LLM 및 임베딩 모델에 대한 코드 로직 구현하기

카펠라 모델 서비스에 대한 엔드포인트를 구성해야 합니다. Capella 모델 서비스는 OpenAI API 형식과 호환되므로 표준을 사용할 수 있습니다. 랑체인-오픈아이 라이브러리를 Capella 엔드포인트로 가리키면 됩니다. 임베딩 모델을 초기화합니다. OpenAIE임베딩ChatOpenAI, 를 클릭한 후 카펠라를 가리킵니다.

 

이제 에이전트는 모델 제공업체를 하드코딩하는 대신 LLM과 임베딩 모델 모두에 대한 API 게이트웨이 역할을 하는 통합 Capella 엔드포인트에 연결합니다. 

상담원 카탈로그와 프롬프트 및 도구 분리하기

상담원 카탈로그는 상담원 기능의 수명 주기를 관리할 수 있는 강력한 도구입니다. Python 파일에 프롬프트와 툴 정의를 하드코딩하는 대신 버전이 지정된 자산으로 관리할 수 있습니다. 개발 팀 전체에서 툴을 중앙 집중화하여 재사용할 수 있습니다. 또한 에이전트 트레이서를 사용하여 에이전트 응답을 검사하고 모니터링할 수 있습니다. 이러한 기능은 에이전트 개발 및 배포를 위한 가시성, 제어 및 추적 기능을 제공합니다. 팀은 에이전트를 효과적으로 감사하고 관리할 수 있다는 사실을 알고 안심하고 에이전트를 구축할 수 있습니다.  

상담원 행동을 역추적하는 기능이 없으면 상담원이 내린 자율적 결정에 대한 지속적인 신뢰, 검증 및 확증을 자동화하는 것이 불가능해집니다. 에이전트 카탈로그에서는 에이전트 코드와 대화 기록을 LLM과 함께 평가하여 보류 중인 결정 또는 MCP 툴 조회의 적절성을 평가함으로써 이 작업을 수행합니다.  

이제 프로젝트에 상담원 카탈로그를 통합해 보겠습니다. 

벡터 검색 도구 추가 

먼저 상담원 카탈로그에 대한 도구 정의를 추가하는 것으로 시작하겠습니다. 이 경우에는 벡터 검색 도구가 있습니다. 

상담원을 위한 도구로 새 Python 함수를 추가하려면 상담원 카탈로그 명령줄 도구의 add 명령을 사용하면 됩니다:

에이전트 추가 

상담원 카탈로그에 추가하려는 기존 Python 도구가 있는 경우에는 가져오기에 agentc를 추가하고 도구 정의에 @agentc.catalog.tool 데코레이터를 추가하세요. 이 예에서는 벡터 검색을 수행하는 Python 함수를 도구로 정의합니다. 

프롬프트 추가 

기존 아키텍처에서는 상담원의 지침이 Python 코드 안에 큰 문자열 변수로 묻혀 있었기 때문에 전체 배포 없이는 버전 변경이나 업데이트가 어려웠습니다. 이제 에이전트 카탈로그를 통해 프롬프트를 사용하여 독립형 관리 자산으로 “HR 리쿠르터” 페르소나를 정의할 수 있습니다. 구조화된 YAML 정의(record_kind: 프롬프트)를 사용하여 hr_recruiter_assistant를 만듭니다. 이 정의는 단순히 텍스트만 담고 있는 것이 아니라 에이전트의 전체 행동을 캡슐화하여 LLM이 벡터 검색 도구를 효과적으로 사용할 수 있도록 안내하는 ReAct 패턴(생각 → 행동 → 관찰)을 엄격하게 정의합니다.

로컬 파일 색인 및 게시

당사는 다음을 사용합니다. agentc 를 사용하여 로컬 파일을 색인하고 Couchbase에 게시합니다. 이렇게 하면 메타데이터가 데이터베이스에 저장되어 에이전트가 런타임에 검색 및 발견할 수 있게 됩니다.

코드에서는 카탈로그를 초기화하고 catalog.find()를 사용하여 확인된 프롬프트와 도구를 검색합니다. 더 이상 프롬프트를 하드코딩하지 않고 대신 프롬프트를 가져옵니다.

표준화된 추론 엔진(LangChain 통합)

이전 앱에서는 사용자 지정 SequentialAgent 파이프라인을 사용했습니다. 유연하기는 하지만 에이전트의 추론 단계에 대한 자체 실행 루프, 오류 처리 및 재시도 로직을 유지 관리해야 했습니다.

에이전트 카탈로그와 LangChain의 호환성을 활용하여 표준 ReAct(Reason + Act) 에이전트 아키텍처로 전환했습니다. 카탈로그에서 가져온 도구와 프롬프트를 create_react_agent에 직접 공급하기만 하면 됩니다.

어떤 이점이 있나요? 업계 표준 추론 루프를 이용할 수 있습니다. - 생각 -> 행동 -> 관찰 - 를 즉시 사용할 수 있습니다. 이제 에이전트가 자율적으로 “React 개발자'를 검색하고 결과를 분석한 다음, 첫 번째 검색에서 결과가 거의 나오지 않으면 ”프론트엔드 엔지니어'를 두 번째로 검색할 수 있습니다. 선형 ADK 파이프라인에서는 어려움을 겪었던 부분입니다.

기본 제공 옵저버빌리티(에이전트 추적)

이전 상담원 애플리케이션에서 관찰 가능성은 print() 문으로 제한되었습니다. 상담원의 세션을 “재생'하여 특정 후보를 거부한 이유를 이해할 수 있는 방법이 없었습니다.

에이전트 카탈로그는 추적을 제공합니다. 이를 통해 사용자는 추적과 함께 SQL++를 사용하고, Couchbase의 성능을 활용하고, 동일한 플랫폼에서 프롬프트 및 도구의 세부 정보를 파악할 수 있습니다.

catalog.Span()을 사용하여 트랜잭션 통합 가시성을 추가할 수 있습니다. 실행 로직을 컨텍스트 관리자로 래핑하여 모든 생각, 작업 및 결과를 다시 Couchbase에 기록합니다. 이제 Capella UI에서 채용 세션의 전체 “추적'을 볼 수 있으며, LLM이 지원자의 이력서를 어떻게 처리했는지 정확히 보여줍니다. 

결론

AI 에이전트가 프로덕션에서 실패하는 이유는 LLM의 기능이 부족해서가 아니라 에이전트 시스템이 너무 복잡해질 수 있기 때문입니다. 카우치베이스 AI 서비스 및 에이전트 카탈로그와 함께 플랫폼 우선 접근 방식을 채택함으로써 복잡한 에이전트를 관리되고 확장 가능한 에이전트 시스템으로 전환했습니다. 

오늘날 AI 에이전트를 구축하는 경우, 진짜 문제는 다음과 같습니다. 어떤 LLM을 사용할지 - 안전하고, 관찰 가능하며, 대규모로 에이전트를 운영할 수 있는 방법입니다. 카우치베이스 AI 서비스는 바로 이를 위해 구축되었습니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.