본문으로 건너뛰기

© 2026 Molayo

LangChain헤드라인2026. 06. 10. 16:03

AI 건강 코치 구축하기: 평가, 안전성 및 규제 준수

요약

디지털 헬스 기업 Numan이 AI 건강 코치 'Nu'의 품질을 개선하기 위해 구축한 자가 개선 평가 루프를 소개합니다. 기존의 정적 데이터나 스크립트 기반 평가의 한계를 극복하기 위해 LLM 페르소나를 활용한 멀티 턴 대화 시뮬레이션 방식을 채택했습니다.

핵심 포인트

  • 정적 고정 데이터 기반의 단일 턴 평가는 복잡한 코칭 맥락을 반영하지 못함
  • 스크립트 기반 방식은 AI의 실제 응답에 따른 유동적인 대화 흐름을 놓침
  • LLM 페르소나를 활용해 환자 시나리오를 시뮬레이션하는 에이전트 평가 도입
  • 의료 기기 규제를 준수하면서 코칭 품질을 반복 개선하는 루프 구축

작성자: Asif Laldin, Marcus Wadge Dale, Shubhangi Hora, Konstantinos Georgakilas

Numan은 체중, 호르몬, 성 건강을 포함한 만성 질환 관리를 돕는 영국의 디지털 헬스(digital health) 기업입니다. 저희 환자 중 상당수는 체중 감량을 위해 GLP-1 치료를 받고 있으며, 진행 상황을 추적하고 프로그램을 수행하기 위해 매일 앱을 사용합니다.

Nu는 영양 가이드, 행동 변화 코칭(behaviour-change coaching), 건강 교육을 제공하는 저희의 AI 건강 코치입니다. Nu는 진단, 처방 또는 임상적 결정을 내리지 않습니다. 핵심적인 에이전트 엔지니어링(agent engineering) 문제는 의료 기기(medical device) 영역을 침범하지 않으면서 코칭 품질을 빠르게 반복 개선하는 것이었습니다. 저희는 현재 대부분 스스로 작동하는 자가 개선 평가 루프(self-improving eval loop)를 구축함으로써 이 문제를 해결했습니다.

표준 평가 방식이 Nu에 실패한 이유

환자는 수백 가지의 서로 다른 방식으로 칼로리 목표를 물어볼 수 있습니다. 누군가는 직접적으로 진단을 유도할 수도 있고, 이야기를 들려주며 Nu가 임상적 빈칸을 채워주기를 기다릴 수도 있습니다. 탈옥(jailbreak) 시도는 단 한 문장에 불과하며, 겉보기에는 다른 질문과 똑같아 보입니다. 어떤 고정된 테스트 세트(test set)라도 결코 완전히 열거할 수 없는 공간의 작은 샘플일 뿐입니다.

정적 고정 데이터에 대한 단일 턴 평가 (Single-turn evals on static fixtures)

저희는 고정된 입력값, 고정된 예상 출력값, 그리고 하나의 답변을 채점하는 판사(judge)로서의 LLM(Large Language Model)으로 시작했습니다. 하지만 코칭은 하나의 프롬프트에 대한 하나의 정답이 아닙니다. 코칭이란 Nu가 대화 전반에 걸쳐 올바른 행동을 하는지, 조언하기 전에 장애물을 조사하는지, 그리고 환자가 압박할 때 경계를 유지하는지에 관한 것입니다.

단일 턴 채점(Single-turn scoring)은 고정 데이터 세트 전체의 글로벌 평균을 쫓게 되는데, 이는 여러분이 중요하게 생각하는 실패 사례를 건강해 보이는 숫자 속에 파묻어 버립니다. 저희는 낮은 점수들이 모여 있는 클러스터가 발생했을 때, 그것이 Nu의 실패가 아니라 판사가 두 번의 턴 안에 세 번의 코칭 동작을 몰아넣기를 원했기 때문이라는 것을 발견한 사례도 있었습니다.

스크립트 기반 멀티 턴 대화 (Scripted multi turn conversations)

전체 대화를 스크립트로 작성하는 방식은 동일한 이유로 실패했습니다. 스크립트 기반의 환자 턴 2(turn two)를 미리 작성해 두면, 테스트는 Nu가 턴 1(turn one)에서 실제로 말한 내용을 무시하게 됩니다. Nu가 스크립트에서 예상하지 못한 말을 하는 순간, 이후의 모든 턴은 결코 일어나지 않은 대화에 대해 답변하게 되는 것입니다.

에이전트 평가 (Agent evals): LLM 페르소나를 활용한 대화 시뮬레이션 및 점수 산정

이제 우리는 스크립트를 짜는 대신 대화를 시뮬레이션합니다. 우리는 평가(eval) 시스템에 네 가지 입력을 제공합니다:

  • 환자 페르소나 (patient persona)
  • 시나리오 (scenario)
  • Nu가 환자로부터 이끌어내야 하는 핵심 문제들 (key problems)
  • 턴 제한 (turn limit)

그다음 더 저렴한 모델이 해당 페르소나를 연기하며 Nu와 멀티 턴 대화 (multi-turn conversation)를 진행하고, Nu의 응답에 반응합니다. 그런 다음 전체 대화를 카테고리별로 점수화합니다.

환자가 고정된 것이 아니라 생성되는 방식이기 때문에, 우리는 훨씬 더 넓은 언어 공간을 다룰 수 있으며 적대적 사례 (adversarial cases)를 프롬프트로 유도할 수 있습니다. 즉, 경계선을 탐색하는 페르소나, 코치를 속이고 임상적 요청을 전달하기 위해 설계된 문구, 일반적인 질문으로 위장한 조작 등을 포함할 수 있습니다. 카테토별 점수 산정은 고정된 테스트(fixture)로는 절대 도달할 수 없는 실패 사례를 드러냅니다. 예를 들어, 코치가 마땅히 해야 할 조사 과정을 거치는 대신 Nu가 성급하게 조언을 건네는 경우와 같은 사례들입니다.

모든 프롬프트 변경 사항은 Nu가 규제 가이드라인을 준수했음을 증명해야 합니다

우리는 동일한 메커니즘 내부에서 규제 가이드라인 (regulatory line)을 정의합니다. MHRA SaMD 가이드라인에 따르면, 임상적 조언을 제공하거나, 진단하거나, 치료를 권장하는 제품은 의료 기기 (medical device)가 됩니다. Nu는 의도적으로 그 범주 밖에 위치합니다. 이 제품은 어떤 종류의 임상적 결정도 내리지 않습니다. 제품은 코칭을 수행하며, 자체적인 범위를 유지합니다.

우리는 범위를 유지하는 것(holding scope)을 런타임(runtime)에 모델에 맡겨야 할 판단이 아니라, 테스트해야 할 하나의 행동(behaviour)으로 취급합니다. 적대적 탐사(Adversarial probes)(칼로리 목표 요청, 복용량 질문, 진단 요청 등 다양한 표현 방식 포함)는 안전성(safety), 범위(scope), 안내(signposting)에 걸쳐 카테고리별 지표로 실행됩니다. 이 탐사들은 프롬프트(prompt)가 변경될 때마다 실행됩니다. 실패할 경우 출시가 차단됩니다. 탐사가 자동으로 실행되므로, 경계 설정이 누군가의 확인을 기억하는 것에 의존하지 않습니다. 우리가 조정하고자 하는 행동은 '안전한 완료(safe-completion)'입니다. 즉, 코치처럼 들리면서도 선을 지키는 거절을 의미하며, 이를 통해 범위를 벗어난 질문을 하는 환자가 따뜻하고 유용한 안내를 받을 수 있도록 합니다.

우리의 4단계 개선 루프: 양 끝에는 인간, 중간에는 워크플로우

강력한 평가(evals)는 양 끝에 인간을 두고 중간에 자동화를 배치하는 루프를 통해 결실을 맺습니다.

1단계: 인간 검토(human review). 검토자는 실제 코칭 대화를 읽고 무엇이 잘못되었는지 주석을 답니다. 무엇이 안전성 미흡, 코칭 미흡, 또는 완벽하게 좋은 답변인지는 인간의 판단에 달려 있습니다.

2단계: 분류 워크플로우(triage workflow). 자동화된 스크립트가 검토된 대화를 가져와 기술적 실패와 대화적 실패를 분리하고, 각 항목을 카테고리화하여 프로젝트 관리 도구의 티켓(ticket)으로 우선순위를 지정합니다. 수천 개의 트레이스(traces)가 수작업 없이도 순위가 매겨지고 중복이 제거된 백로그(backlog)가 됩니다. 여기서 검토자의 노트는 점수보다 더 중요합니다. 노트가 실제로 무엇이 잘못되었는지에 대한 가장 명확한 증거이기 때문입니다.

3단계: 개선 워크플로우(improvement workflow). 두 번째 자동화된 워크플로우가 우선순위가 지정된 티켓을 가져와 여러 평가(evals)에 걸쳐 많은 복제본을 실행하고, 프롬프트를 수정하고, 결과를 읽으며, 점수가 개선되거나 예산이 소진될 때까지 과정을 반복하여 찾은 최선의 버전을 반환합니다. 이 사이클은 몇 시간 안에 사람의 개입 없이 완료됩니다. 하나의 행동 벤치마크(behavioural benchmark)를 목표로 했을 때, 이 자율 루프(autonomous loop)는 프롬프트를 수동으로 조정하지 않고도 점수를 약 60% 개선했습니다.

4단계: 인간의 PR 승인. 엔지니어가 승리한 변경 사항을 검토하고 풀 리퀘스트 (Pull Request, PR)를 생성합니다. 시작과 마찬가지로 마지막 결정권은 사람에게 있습니다.

유능한 모델이 제한된 문맥(context)만으로도 강력한 초안을 작성할 수 있기 때문에, 좋은 프롬프트를 작성하는 것은 이미 비용이 저렴합니다. 실제로 부족한 것은 평가 기준(eval criteria, 즉 루브릭(rubric), 시나리오, 경계 탐색(boundary probes))의 품질입니다. 이 기준들을 올바르게 설정하면 루프는 스스로 작동할 수 있을 만큼 충분한 신뢰를 얻게 됩니다. 또한 매 사이클마다 메모와 점수가 해당 기준에 다시 반영되므로, 루프를 더 많이 실행할수록 우리가 해야 할 일은 줄어듭니다.

실제 사례: 2주 만에 새로운 서브 에이전트 구축, 1일 만에 모델 마이그레이션 완료

새로운 서브 에이전트: 우리는 기존의 코칭 프레임워크(COM-B 및 첫 번째 행동 변화 기술 세트)를 기반으로 구축된 행동 변화 서브 에이전트(behaviour-change sub-agent), 즉 새로운 도메인 전문가를 추가했습니다. 설계부터 프롬프트, 도메인 로직, 도구 통합 및 엔드 투 엔드(end-to-end) 테스트에 이르기까지 2주가 소요되었으며, 동일한 그래프와 동일한 평가 표면(eval surface) 내에 존재함으로써 안전성 평가(safety evaluation)를 자동으로 습득했습니다. 강력한 평가(evals), 그리고 서로 잘 맞물리는 프레임워크와 관측성(observability) 플랫폼이 결합될 때 배포 속도가 향상됩니다.

모델 마이그레이션: 우리는 또한 프런티어 모델(frontier model) 제공업체 간의 전환도 수행했습니다. 규모를 확장함에 따라, 감독자(supervisor)와 도메인 전문가가 수행하는 인지적 작업이 상당히 다르기 때문에 모든 에이전트에 하나의 제공업체가 적합한지에 대해 의문을 갖기 시작했습니다. 평가 스위트(eval suite)는 어떤 구성에도 적용할 수 있는 개방형 테마 데이터셋으로 구축되었으므로, 동일한 데이터셋을 여러 제공업체에 걸쳐 실행하고 결과를 나란히 비교할 수 있었습니다. 보통 몇 주간의 수동 테스트가 필요한 프런티어 제공업체 간의 마이그레이션이 단 하루 만에 완료되었습니다.

스택: LangGraph, 에이전트 평가(agent evals), 그리고 LangSmith

LangGraph와 LangSmith는 하나의 근간 시스템으로서 서로 조화를 이룹니다.

LangGraph는 에이전트 (agent)입니다. 감독 모델 (supervisor model)이 도메인 전문가 서브 에이전트 (sub-agents)로의 핸드오프 (handoffs)를 조율하며, 각 서브 에이전트는 자신만의 프롬프트 (prompt)와 도구 (tools)를 가지고 하나의 코칭 영역에 집중합니다. 이러한 구성 모델 (composition model) 덕분에 새로운 전문가를 저렴하게 추가할 수 있으며, 모든 에이전트에 대해 안전성 평가 (safety evaluation)를 일관되게 유지할 수 있습니다.

에이전트 평가 (Agent evals) 또한 동일한 그래프를 통해 실행됩니다. 페르소나 시뮬레이터 (persona simulator)는 스텁 (stub)이 아닌 실제 에이전트를 대상으로 전체 대화를 유도하므로, 우리가 측정하는 점수는 환자가 실제로 마주하게 될 상황과 정확히 일치합니다. 에이전트가 그래프 형태이기 때문에, 평가는 전체 시스템 또는 단일 서브 에이전트를 대상으로 할 수 있으며, 새로운 전문가는 단순히 그래프에 연결되는 것만으로 평가 범위 (eval surface)를 상속받습니다.

LangSmith는 모든 것이 측정되는 곳입니다. 시뮬레이션된 대화든 실제 대화든 모든 대화는 트레이스 (trace)로 기록됩니다. 검토자들은 이러한 트레이스에 주석 (annotate)을 달며, 이것이 루프 (loop)의 첫 번째 단계에 입력됩니다. 데이터셋 (datasets)과 실험 (experiments) 또한 이곳에 존재하므로, 동일한 테마의 데이터셋을 다양한 모델 구성 (model configurations)에 걸쳐 실행하고 그 결과를 나란히 비교하며 읽을 수 있습니다. 분류 (triage) 및 개선 워크플로 (improvement workflows)는 LangSmith를 통해 입력을 읽고 점수를 다시 기록합니다.

이러한 통합이 루프를 저렴하게 운영할 수 있게 만드는 핵심입니다. LangGraph에서 에이전트를 구축하고, 시뮬레이션된 대화를 통해 동일한 그래프로 평가하며, LangSmith에서 모든 것을 관찰, 주석 달기 및 비교하십시오. 서로 연결되지 않은 세 가지 도구를 이어 붙이기 위한 글루 코드 (glue code)도 없고, 운영 환경 (production)에서 벗어나 따로 노는 별도의 평가 장치 (eval rig)도 없습니다. 우리가 배포하는 것과 우리가 테스트하는 것은 동일한 그래프이며, 동일한 플랫폼에 의해 모니터링됩니다.

규제 경계선 근처에서 AI 코치 구축하기

고정된 데이터셋은 대화형 에이전트 (conversational agent)를 완벽하게 커버할 수 없습니다. 대본을 쓰는 대신 대화를 생성하고, 총점 (aggregate)을 쫓기보다는 카테고리별로 점수를 매기십시오. 규제 경계 (regulatory boundary)를 모든 변경 사항에 대해 실행되는 탐침 (probe)으로 만들어, 경계가 지켜지기를 바라는 것이 아니라 경계가 지켜졌음을 증명할 수 있는 것으로 만드십시오. 그런 다음 루프가 스스로 돌아갈 수 있도록 평가 기준 (eval criteria)을 세우는 데 실제 노력을 기울이십시오.

Nu는 LangGraph와 LangSmith를 기반으로 구축되었습니다. Numan의 AI 시스템은 다양한 건강 영역에 걸쳐 건강 코칭 대화를 처리하며, 영국의 의료 기기 규제 (medical device regulation) 대상이 되는 응답을 피하도록 설계되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 LangChain Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0