
Pendo가 LangSmith를 사용하여 사용자 행동에서 코드 수정까지 Novus를 추적하는 방법
요약
Pendo는 LangSmith를 활용하여 사용자 행동 데이터를 분석하고 코드를 자동으로 수정하는 제품 에이전트 'Novus'를 구축했습니다. Novus는 세션 리플레이와 행동 데이터를 기반으로 사용성 문제를 감지하고, 근본 원인을 진단하여 즉각적인 코드 수정을 제안함으로써 제품 피드백 루프를 완성합니다.
핵심 포인트
- Novus는 사용자 행동 분석부터 코드 수정까지 수행하는 제품 에이전트임
- LangSmith를 활용하여 에이전트의 평가 및 배포 속도를 극대화함
- 세션 리플레이와 행동 데이터를 결합해 문제의 근본 원인을 진단함
- 빠른 배포 속도에 맞춰 깨진 제품 피드백 루프를 자동화로 해결함

Pendo의 Chief AI Officer인 Zain Lakhani의 게스트 포스트
Novus는 라이브 애플리케이션에서 사용성 문제를 감지하고, 근본적인 코드를 수정하며, 사용자 경험을 개선하는 제품 에이전트 (product agent)입니다. Novus는 PM이 검토한 평가 (evals)에서 90% 이상의 성공률을 달성했으며, 우리는 이를 몇 달이 아닌 단 며칠 만에 프로덕션 (production)에 배포했습니다. LangSmith는 우리가 이 두 가지를 모두 해낼 수 있었던 핵심적인 이유입니다.
AI 코딩 도구는 배포 속도를 높였지만, 제품 피드백 루프 (feedback loop)는 뒤처지게 만들었습니다
전통적으로 우리의 사용자들은 대시보드를 살펴보고, 사용자와 대화하며, 발견한 내용을 바탕으로 제품 요구 사항 문서 (PRDs)를 작성하는 제품 관리자 (product managers)였습니다. 이제 그들은 매일 코드를 배포하는 제품 엔지니어 (product engineers)가 되었습니다. 우리의 기존 플랫폼은 그러한 속도에 맞춰 설계되지 않았습니다.
시장의 모든 이들은 사람들이 개발자가 될 수 있도록 지원하는 데 집중하고 있습니다. 그들은 AI 코딩 도구를 통해 팀이 한 번에 4개의 티켓을 처리할 수 있도록 도와주며, 결과적으로 "코딩 및 배포" 문제를 효과적으로 해결하고 있습니다. 하지만 그 결과로 나타난 속도는 엔드 투 엔드 (end-to-end) 제품 라이프사이클의 나머지 절반, 즉 개발자와 제품 관리자 (PM)의 필수적인 조합을 간과합니다. 개발자는 빠르게 배포하고, PM은 피드백을 수집하여 무엇을 반복 개선할지에 대한 컨텍스트 (context)를 제공하며, 개발자는 계속해서 배포를 이어가는 과정 말입니다.
그 결과 피드백 루프 (feedback loop)가 깨지게 되었습니다. 코드가 이전에는 흔히 수행되던 사용자 수용 테스트 (user acceptance testing) 없이 프로덕션 (production)에 도달합니다. 결과적으로 배포되는 많은 소프트웨어들이 사용하기 어렵고, 채택 (adoption) 및 유지 (retention) 목표를 달성하는 데 어려움을 겪게 됩니다.
Novus는 이 전체 사이클을 닫기 위해 존재합니다. 무언가를 배포했을 때 사용자가 어려움을 겪는다면, 우리는 즉시 이를 수정합니다. 계속해서 빠르게 진행하세요. 문제가 되기 전에 우리가 이슈를 포착하고 해결하겠습니다.
Novus는 제품 분석 (product analytics)과 세션 리플레이 (session replays)를 코드 수정으로 전환합니다
사용자가 자신의 코드베이스를 연결하고 모든 사용자 클릭을 모니터링하며 세션 리플레이 (session replays)를 기록하는 Novus 스니펫 (snippet)을 설치합니다. Novus는 이러한 행동 데이터 (behavioral data)를 집계하고 AI를 사용하여 이를 해석함으로써, 구체적이고 실행 가능한 이슈를 지속적으로 드러냅니다. 예를 들어, "하루에 천 번 방문하는 페이지에서 결제(checkout)부터 주문 확인(order confirmation) 단계 사이의 퍼널 전환율 (funnel conversion)이 3% 하락한 것을 확인했습니다."라고 말할 수 있습니다.
에이전트 (agent)의 지능은 엔드 투 엔드 (end-to-end) 분석에 있습니다. 즉, 세션 리플레이를 사용하여 근본 원인(예: 레이지 클릭 (rage clicks) 식별)을 진단하고, 해당 행동을 관련된 특정 코드 파일과 상관관계 분석을 수행하며, 제안된 수정 사항을 생성하는 것입니다.
이 사이클에는 많은 구성 요소가 움직입니다. 무언가 잘못되었을 때(도구 호출 (tool call)이 예상치 못한 데이터를 반환하거나, 서브 에이전트 (subagent)가 잘못 작동하거나, 프롬프트 (prompt) 변경으로 인해 출력 품질이 저하되는 경우 등) 정확히 어떤 일이 일어났는지 확인해야 합니다. 이것이 바로 우리가 Novus의 Claude Agent SDK 통합의 일부로 LangSmith 트레이싱 (tracing)을 프로덕션 (production) 환경에 출시한 이유입니다. 이제 LangSmith는 시스템이 어떻게 작동하는지 들여다보는 우리의 주요 창구입니다.
LangSmith는 프로덕션 환경의 Novus를 디버깅합니다
LangSmith는 초기 디자인 파트너 (design-partner)와의 대화 단계부터 프로덕션 단계에 이르기까지 우리의 에이전트 관측성 (observability) 플랫폼이었습니다. Novus가 성숙함에 따라 우리가 살펴보는 내용은 변화해 왔지만, LangSmith는 변함없는 토대로 남아 있습니다.
트레이스 (Traces)는 사용자가 Novus와 어떻게 상호작용하는지, 어떤 유스케이스 (use cases)를 우선시해야 하는지를 보여주었습니다
디자인 파트너 단계 동안 우리는 LangSmith의 트레이스 뷰 (trace view)에서 생활했습니다. 매일 아침 가장 먼저 트레이스 뷰를 열어 개별 대화 내용을 읽었습니다. 사람들이 에이전트에게 무엇을 물었는지, 에이전트가 어떻게 응답했는지 등을 확인하며 유스케이스를 선정했습니다. 우리는 추측이나 잠재적으로 잘못된 가설 없이, 프로덕션에서 발생하는 사용자의 실제 행동을 그대로 읽었습니다. 시간이 흐르면서 이러한 유스케이스들은 오픈 베타 (open beta)에서 출시한 제안된 프롬프트가 되었고, 이후 우리 평가 세트 (eval sets)의 중추가 되었습니다.
프로덕션 (production) 환경에서도 트레이스 (trace)는 여전히 명확한 역할을 수행합니다. 모든 실행은 입력 (inputs), 출력 (outputs), 도구 호출 (tool calls), 서브 에이전트 호출 (subagent invocations), 토큰 수 (token counts), 비용 데이터 (cost data)를 포함하는 전체 트레이스 트리 (trace tree)를 생성합니다. 따라서 고객이 생성된 PR (Pull Request)이 올바른 문제를 해결하지 못했다고 말할 때, 우리는 트레이스를 불러와 에이전트가 내린 모든 결정을 하나씩 살펴봅니다. 중첩된 구조 (nested structure)는 에이전트가 구성된 방식과 매핑되므로, 추론 단계 (reasoning step) 중 어디에서 오류가 발생했는지 직관적으로 파악할 수 있습니다.
트레이스 태그 (Trace tags)는 지원 이슈, 고객 활동, 비용을 연결합니다
우리는 모든 트레이스에 사용자 이름 (username), 대화 ID (conversation ID), 조직 (organization) 태그를 붙입니다. 이러한 라우팅 (routing) 덕분에 모든 지원 또는 엔지니어링 이슈는 우리가 로그를 뒤지는 대신 관련 트레이스로 즉시 연결됩니다. 또한 조직 단위로 비용을 모니터링할 수 있게 해줍니다. 우리는 토큰 소비 (token spend)가 가장 똑똑한 모델로 집중되기를 원하면서도, 비용이 얼마인지 그리고 어디에서 발생하는지 알아야 합니다. 태그 지정 (tagging)을 통해 품질을 포기하지 않으면서도 어떤 조직과 어떤 워크플로우 (workflows)가 비용이 많이 드는지 파악할 수 있습니다.
사용 데이터는 각 고객이 Novus로부터 어떻게 가치를 얻는지 보여줍니다
동일한 태그 지정 방식을 통해 어떤 조직이 어떤 유스케이스 (use cases)에 의존하고 있는지 확인할 수 있으며, 이는 LangSmith의 가장 가치 있는 측면 중 하나가 되었습니다. 이를 통해 각 고객이 실제로 Novus로부터 어떻게 가치를 얻고 있는지 알 수 있으며, 우리는 이를 바탕으로 아웃리치 (outreach) 및 고객 엔지니어링 참여 (customer-engineering engagements)를 맞춤화합니다. AI 관점에서 고객이 제품을 어떻게 사용하는지에 대해 이토록 명확한 뷰 (view)를 가져본 적은 없었습니다.
스레드 뷰 (Thread view)는 멀티턴 대화 (multi-turn conversations)가 해결에 도달하는지 나타냅니다
Novus는 멀티턴 (multi-turn) 방식입니다. 개발자는 PR이 생성되기 전에 탐지된 문제에 대해 후속 질문을 할 수 있습니다. 스레드 뷰를 사용하면 고립된 턴 (turns) 대신 전체 대화 궤적 (conversation trajectory)을 볼 수 있으며, 이는 에이전트가 실제로 누군가를 해결책으로 안내했는지 아니면 단순히 출력물만 생성했는지를 판단할 때 핵심적인 요소입니다.
피드백 점수 (Feedback scores)는 사용자가 Novus 출력에 어떻게 반응하는지 포착합니다
우리는 실행 (runs)에 대한 피드백 점수를 LangSmith에서 직접 확인하며, 이를 통해 출력이 테스트 단계뿐만 아니라 실제 환경에서 어떻게 받아들여지는지에 대한 신호 (signal)를 얻습니다.
LangSmith 트레이스(traces)를 통해 Novus가 분석 데이터와 코드 컨텍스트 중 하나만 사용함을 확인
우리는 트레이스(traces)를 관찰하던 초기 단계에서, 에이전트가 제품 분석(product analytics) 데이터나 코드 기반 컨텍스트(code-based context) 중 하나만을 선택하고 두 가지를 모두 사용하는 경우는 매우 드물다는 점을 발견했습니다. 우리는 이를 LangSmith에서 조기에 포착하였고, Novus의 강력함은 이 두 가지를 결합하는 데서 나온다는 점을 더 명시적으로 전달할 수 있도록 프롬프트(prompts)를 그에 맞춰 조정했습니다. 제품 분석이나 코드 기반 컨텍스트 중 하나에만 의존하는 것은 우리를 Novus 이전의 시대로 되돌리는 일입니다.
결과
- 새로운 유스케이스(use cases)를 식별하고 평가(evaling)하는 데 있어 이전 제품 대비 25%의 시간 절감
- 고객이 발견하기 전에 트레이스(traces)를 통해 AI 문제의 60%를 사전에 포착
Novus는 관찰 가능한 속도보다 더 빠르게 제품을 출시하는 제품 팀을 위해 구축되었습니다
Novus는 제품 엔지니어(product engineers), 즉 출시 속도(shipping velocity)와 사용량(usage) 모두를 책임지는 팀을 위해 구축되었습니다. AI 코딩 도구가 아이디어와 프로덕션 사이의 시간을 계속해서 단축함에 따라, 배포된 것과 이해된 것 사이의 간극은 점점 더 커질 것입니다. 우리의 역할은 사용자 세션이 발생한 지 몇 분 이내에 그 간극을 자동으로 메우는 것입니다.
Pendo는 기업이 사용자 행동을 이해하고 제품 채택(product adoption)을 유도할 수 있도록 제품 분석(product analytics)을 제공합니다. Novus는 사용성 문제를 자동으로 감지하고, 근본적인 코드를 수정하며, 사용자 경험을 개선하는 Pendo의 제품 에이전트(product agent)로, 행동 데이터와 더 나은 소프트웨어 사이의 루프를 완성합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 LangChain Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기