LangChain Blog수정일

Snyk이 내부 지원 에이전트를 고객용 기능으로 전환한 방법

핵심 요약 우리는 실제 고객의 불편에서 시작했습니다. Snyk Assist는 고객이 문서, 지원 콘텐츠, 계정 시스템을 샅샅이 뒤지지 않고도 빠르고 정확한 답변을 얻을 수 있도록 만들어졌습니다.‍ 우리는 신뢰와 접근 제어를 핵심 제품 요구사항으로 취급했습니다. Snyk은 보안 플랫폼이기 때문에, 이 에이전트는 사용자의 권한 범위 내에서 동작하도록 설계되었으

이미지 출처 · LangChain Blog

핵심 요약

  • 우리는 실제 고객의 불편에서 시작했습니다. Snyk Assist는 고객이 문서, 지원 콘텐츠, 계정 시스템을 샅샅이 뒤지지 않고도 빠르고 정확한 답변을 얻을 수 있도록 만들어졌습니다.‍
  • 우리는 신뢰와 접근 제어를 핵심 제품 요구사항으로 취급했습니다. Snyk은 보안 플랫폼이기 때문에, 이 에이전트는 사용자의 권한 범위 내에서 동작하도록 설계되었으며, 더 넓은 롤아웃에 앞서 안전하고 신뢰할 수 있으며 올바르다는 것을 입증했습니다.‍
  • 우리는 유용하고, 측정 가능하며, 확장 가능하도록 만들었습니다. 단일 LangGraph 런타임이 여러 표면을 구동하며, LangSmith 평가는 팀이 회귀를 잡아내고, 응답을 개선하고, 자신 있게 지속적으로 출시할 수 있게 해줍니다.

‍

Snyk은 AI Security Platform입니다. 이 플랫폼은 코드, 오픈소스 종속성, 컨테이너, 클라우드 구성의 취약점을 발견하고 수정하며, 개발자가 이미 작업하는 곳, 즉 IDE, 풀 리퀘스트, 파이프라인 안에 자리하고 있습니다.

우리는 개발자를 위한 보안 제품을 만들기 때문에, 고객들은 어렵고 구체적인 질문을 합니다. 고객은 취약점, 계정 맥락, 지원 문제, 제품 동작에 대한 답변을 원하며, 종종 실제 업무 도중에 그렇습니다. Snyk Assist 이전에는 이 정보가 제품 문서, 지원 문서, 릴리스 노트, 학습 콘텐츠, 계정 데이터에 흩어져 있었습니다. 올바른 정보를 찾으려면 보통 여러 페이지를 읽거나 티켓을 제출하고 기다려야 했습니다.

Snyk Assist는 LangChain과 LangGraph를 기반으로 구축되고 LangSmith에서 관측성이 관리되는 대화형 에이전트입니다. 고객이 자연어로 답변을 찾도록 돕고 고객을 대신해 조치를 취할 수 있습니다. 열린 이슈를 조회하거나, 패키지의 알려진 취약점을 확인하거나, 대화 중에 지원 케이스를 열거나, 고객이 필요로 하는 워크플로우를 아직 지원하지 않는 경우 기능 요청을 접수할 수 있습니다.

이것은 우리 자체 지원 팀을 위한 내부 도구로 시작되었습니다. 2026년 9월에 핵심 Snyk 제품으로 이전되어 모든 유료 고객이 이용할 수 있게 되었습니다.

이 글에서는 최초의 내부 지원 사용 사례부터 고객 대면 제품 경험까지 Snyk Assist를 구축한 과정을 공유합니다. 또한 확장 과정에서 권한, 상태, 가드레일, 평가를 어떻게 처리했는지 등 그 아키텍처도 다룹니다.

과제: 확장되지 않는 지원, 그리고 AI 출시에 대한 높은 기준

우리 지원 팀은 약 2주마다 수천 건의 케이스를 처리합니다. 각 케이스는 읽고, 제품·심각도·담당자별로 분류하고, 올바른 곳으로 라우팅해야 했습니다. 고객 문의가 늘어나면서 이는 확장 과제로 나타났습니다. 에이전트가 명백한 해결책이었지만, 우리는 보안 소프트웨어를 만들기 때문에 고객에게 제공하는 어떤 것이든 제품의 나머지 부분에 기대하는 것과 동일한 기준을 충족해야 했습니다. 우리는 세 가지를 입증해야 했습니다. 에이전트가 올바르게 답변하고, 거부해야 할 것은 거부하며, 사용자가 이미 볼 수 있는 것 외의 어떤 것도 반환하지 않는다는 것입니다.

"에이전트 구축의 어려운 점은 모델이 무엇을 할 수 있는지가 아니라, 에이전트가 실제로 작동한다는 것을 입증하는 것입니다. 우리는 모든 변경 사항을 LangSmith의 평가에 통과시키며, 기준을 충족하지 못하면 출시하지 않습니다."

—Bailey Millns, AI Engineer, Snyk

제품 안에 바로 출시하는 대신, 우리는 자체 팀과의 내부 테스트로 시작했습니다. 이 접근 방식은 초기 오류가 유료 고객에게 영향을 주지 않고 Snyk 내부에 머물도록 보장했습니다. 또한 더 넓은 롤아웃 전에 위험도가 높은 기능을 안전하게 테스트하고 에이전트의 동작을 관찰할 수 있게 해주었습니다.

이 내부 단계를 통해 고객 대면 기능을 도입하기 전에 LangSmith를 사용해 운영 모델을 확립할 수 있었습니다. 이 초기 세션들의 모든 트레이스가 평가 세트에 직접 반영되어, 지원 포털에 출시할 무렵에는 에이전트가 어떻게 작동할지에 대한 강력한 이해를 갖추게 되었습니다.

1단계: 내부 도구

약 1년 동안 Snyk Assist는 케이스 분류와 가상 에이전트 역할을 모두 수행하는 고객 지원 팀의 내부 도구로 운영되었으며, Snyk 직원만 사용자였습니다. 에이전트를 내부에서 테스트함으로써 오프라인 테스트에서 나타나지 않는 엣지 케이스를 발견할 수 있었고, 피드백 루프가 릴리스 주기가 아닌 몇 시간 단위로 측정되었습니다.

2단계: 지원 포털

2026년 4월에 지원 포털에서 고객에게 Snyk Assist를 출시했습니다. 그 시점에 이 도구는 사용자를 이름으로 맞이하고, 계정 맥락을 이해하고, 로그인 시 헬스 체크를 실행하고, 인간이 개입하기를 기다릴 필요 없이 하루 중 언제든 티켓을 생성할 수 있었습니다.

3단계: 핵심 제품

2026년 9월 1일, Snyk Assist는 새로운 내비게이션과 함께 핵심 Snyk 제품으로 이전되어, 모든 유료 고객에게 모든 페이지의 상단 바에 패널로 제공되었습니다.

우리는 각 단계에서 동일한 에이전트 런타임을 유지했습니다. 바뀐 유일한 것은 그 앞에 놓인 표면이었습니다.

하나의 런타임, 여러 개의 출입구

Snyk Assist는 여러 표면 뒤에 있는 단일 LangGraph 에이전트입니다. Slack 앱, 웹 앱, 직접 API 접근이 있으며, 모두 동일한 보안 프레임워크를 통해 라우팅됩니다.

우리는 광범위한 커뮤니티, 강력한 생태계, 에이전트 구축을 위한 업계 표준이라는 지위 때문에 LangChain을 선택했습니다.

"LangChain은 단연코 가장 큰 커뮤니티와 생태계를 갖추고 있었고, 에이전트 구축의 사실상 표준이 되어가고 있었습니다."

—Jada Ross, AI 엔지니어, Snyk

소규모 팀으로 운영하면서 우리는 버그를 수정하고, 기능을 출시하고, 장애 대응을 한 곳에서 처리할 수 있도록 단일 런타임을 원했습니다. 이러한 단순성 덕분에 아키텍처를 분산시키지 않고도 빠르게 확장할 수 있었습니다.

또한 커스텀 솔루션을 직접 만드는 대신 LangChain의 미들웨어를 사용함으로써 컨텍스트, 가드레일, 모델 폴백을 위한 명확한 통합 지점을 확보했습니다. 이러한 구성 덕분에 광범위한 코드 재작성이 아니라 간단한 한 줄 수정만으로 기능을 업데이트하거나 순서를 변경할 수 있습니다.

이 시스템을 프로덕션에서 실제로 운영할 수 있게 만든 네 가지 설계 결정은 다음과 같습니다:

  1. 사용자별로 등록되는 타입화된 함수로서의 도구. 우리는 로그인한 사용자가 실제로 보유한 권한을 기반으로 요청 시점에 도구를 연결합니다. 즉, 에이전트는 사용자가 이미 볼 수 있는 데이터에만 접근할 수 있습니다. 대부분의 도구는 별도의 마이크로서비스로, 이를 통해 독립적으로 확장하고 에이전트 루프를 변경하지 않고도 기능을 추가할 수 있습니다.
  2. 수작업 배관 대신 미들웨어. 컨텍스트 관리, 가드레일, 모델 폴백은 루프를 통해 수동으로 엮이는 대신 에이전트 라이프사이클의 정의된 지점에 연결됩니다. 동작을 추가하거나 순서를 바꾸는 것은 전체 재작성이 아니라 리스트에 한 줄만 변경하면 됩니다.
  3. 체크포인터가 처리하는 상태. 대화 기록은 PostgreSQL에 세션별로 저장되므로, 멀티턴 메모리, pod 간 확장, 대화 재개가 모두 추가 작업 없이 동작합니다.
  4. 내부 플랫폼으로서의 루프. 에이전트는 모델, 도구, 프롬프트, 미들웨어, 체크포인터의 조합일 뿐이므로, 공유 팩토리가 컴파일된 그래프를 반환하고 각 팀은 자체 구성만 제공합니다. 대부분의 새로운 워크플로는 새로운 아키텍처가 아니라 구성 변경으로 처리됩니다.

“개발자 관점에서 LangChain은 배터리가 포함된 에이전트 추상화를 제공해 주었고, 덕분에 오케스트레이션, 도구 호출, 스트리밍, 상태를 새로 만드는 대신 에이전트의 영향력과 기능에 집중할 수 있었습니다.”

—Matt Jarvis, Snyk AI 엔지니어링 디렉터

모든 변경 사항을 평가하는 방법

모든 모델 호출, 도구 호출, 의사 결정 지점은 개발 첫날부터 LangSmith에서 추적되었습니다. 이 추적이 우리의 출시 방식의 기반이 되었습니다.

우리는 두 가지 계층의 평가를 사용합니다.

오프라인 평가 는 LangSmith에서 테스트 질문 세트를 실행합니다. 첫 번째는 알려진 정답이 있는 실제 질문들로, 두 번째 모델이 채점하여 프롬프트나 모델 변경이 답변 품질을 악화시켰는지 빠르게 알 수 있습니다. 두 번째는 사람들이 에이전트를 속여 지시 사항을 무시하거나 비밀 정보를 넘겨주도록 시도하는 자동화된 레드팀 연습입니다.

게이트로서의 CI 는 모든 풀 리퀘스트가 실제 에이전트를 해당 스위트로 실행하고, 저장소에 커밋된 합의된 임계값을 기준으로 차단한다는 의미입니다.

온라인 평가 는 예약된 작업으로 모든 프로덕션 실행에 등급을 매깁니다. 우리는 두 가지를 확인합니다: 이 질문이 Snyk에 관한 것이었는지, 그리고 응답이 그에 답했는지 여부입니다. 이 등급은 추정치가 아닌 측정된 편향(deflection)률을 제공합니다. 또한 각 질문을 제품 영역, 주제, 언어 생태계, 오류 유형별로 분류하여 제품 관리자에게 고객이 어디서 어려움을 겪는지에 대한 실시간 지도를 제공합니다.

루프 닫기 는 LangSmith MCP 서버를 통해 코딩 에이전트 내부에서 이루어집니다. 잘못된 추적을 발견하면 IDE를 떠나지 않고 조사하고 데이터셋으로 만들 수 있습니다.

모든 단계가 LangSmith에서 추적되기 때문에, 실제 질문으로 변경 사항을 테스트하고, 출시 전에 회귀를 잡아내고, 잘못된 추적을 빠르게 새로운 데이터셋으로 만들 수 있습니다. 이는 더 빠른 피드백 루프를 제공하고 자신 있게 출시하는 것을 훨씬 쉽게 만듭니다.

그 영향: 더 적은 티켓, 더 빠른 답변

Snyk Assist가 2026년 4월에 고객에게 공개된 이후:

  • 60,000건 이상의 질의 처리
  • 500개 이상의 고객 계정
  • 세션의 85% 이상이 지원 티켓 없이 해결되어, 지원 팀의 수백 시간 절약
  • 에이전트가 자동으로 감지하여 적절한 팀으로 바로 에스컬레이션한 250건 이상의 케이스

모든 대화는 등급이 매겨지고 분류되므로, 제품의 어떤 부분이 가장 많은 혼란을 일으키는지 확인할 수 있습니다. 이는 문서를 개선하는 데 도움이 됩니다.

핵심 요약 및 향후 계획

Snyk Assist는 Snyk의 자체 지원 팀을 위한 도구로 시작되었습니다. 오늘날 60,000건 이상의 고객 질의를 처리했으며 세션의 85% 이상을 지원 티켓 생성 없이 해결합니다. 9월부터 Snyk Assist는 제품 자체의 일부가 되어 고객이 이미 수행 중인 작업과 함께 모든 페이지에서 이용할 수 있습니다. 우리는 모든 고객에게 Snyk 경험의 유용한 부분이 되기를 바랍니다.

링크: https://docs.snyk.io/navigate-the-snyk-web-ui#snyk-assist

‍

원문 출처

LangChain Blog

내용 안내

원문 발행 및 권리는 출처에 있습니다.

기계 번역 · 원문을 참고하세요