AI 에이전트 아키텍처 설계를 위한 그래프 엔지니어링
이를 위해 여행을 위한 Airbnb 숙소 리서치 과정을 예시로 설정하여 구체적인 학습 주제를 제시합니다.
주요 목표는 그래프 엔지니어링의 개념과 실제 구현 방법을 이해하고, 이를 통해 AI 에이전트가 복잡한 작업을 효율적으로 수행하도록 돕는 것입니다. 이는 단순한 이론 학습을 넘어 실제 데이터와 시나리오를 바탕으로 합니다.
코드팩토리가 제안하는 그래프 엔지니어링 기법을 활용하면 AI 에이전트 아키텍처를 효율적으로 설계하고 안정적인 데이터 파이프라인을 구축할 수 있습니다.
이를 위해 여행을 위한 Airbnb 숙소 리서치 과정을 예시로 설정하여 구체적인 학습 주제를 제시합니다.
주요 목표는 그래프 엔지니어링의 개념과 실제 구현 방법을 이해하고, 이를 통해 AI 에이전트가 복잡한 작업을 효율적으로 수행하도록 돕는 것입니다. 이는 단순한 이론 학습을 넘어 실제 데이터와 시나리오를 바탕으로 합니다.
코드팩토리는 그래프 전체를 만들기 전에 단일 파이프라인을 먼저 구축하고 검증하는 과정을 강조했습니다. 이는 실제 웹 데이터를 사용하여 하나의 지역을 조사하며 파이프라인이 제대로 작동하는지 확인하는 방식으로 진행됩니다.
이 접근 방식은 효율적인 병렬 및 직렬 작업 혼합 전략을 가능하게 하며, 최종 승인 단계에서 '휴먼 인 더 루프'를 적용하여 사람의 개입을 통해 최종 검증을 거치도록 설계되었습니다. 이를 통해 그래프 생성 과정의 안정성과 신뢰성을 확보할 수 있습니다.
각 노드는 독립적인 에이전트로 간주되며, API 호출을 통해 데이터를 설계하고 상태를 전달합니다.
이러한 방식은 독립된 환경 간에 데이터가 원활하게 처리될 수 있도록 하며, AI 에이전트들이 복잡한 워크플로우 내에서 각자의 역할을 수행하고 그 결과를 효과적으로 통합하는 데 기여합니다. 이를 통해 전체 시스템의 유연성과 확장성이 높아집니다.
이 그래프 엔지니어링은 사실 우리가 이렇게 코덱스 화면에서 진행을 하는 것처럼 어, 직접 AI를 실행하는 환경에 어울리는 엔지니어링 기법은 아니에요. 사실 우리가 이런 화면에서 진행을 하게 되면은요. 그 엔지니어링이 자동으로 된다라고 보시면 돼요.
Airbnb 리서치 실행을 위한 고유한 런 아이디를 생성하여 프로젝트 환경을 설정합니다. 이는 마크다운 폴더, 로우 폴더, 로그 폴더의 세 가지로 폴더를 나누어 구조화하는 방식으로 진행됩니다.
이렇게 폴더를 구분하는 것은 프로젝트의 체계적인 관리를 가능하게 하며, 각 데이터 유형에 따라 파일을 저장하고 관리함으로써 작업의 효율성을 높이고 추후 문제 발생 시 원인 파악을 용이하게 합니다. 이를 통해 안정적인 개발 환경을 구축할 수 있습니다.
환경 조성과 같은 결정론적인 결과물을 만들어내는 과정에서는 LLM(Large Language Model)을 사용하는 대신 일반 스크립트를 실행하는 것이 효율적입니다. 이는 불필요한 토큰 소모를 방지하고 비용을 절감하는 데 도움이 됩니다.
따라서 노드를 결정론적 노드와 비결정론적 노드로 구분하여 운영함으로써, 토큰 효율을 극대화하고 전반적인 시스템의 효율성을 높이는 전략을 사용합니다. 이를 통해 각 노드의 특성에 맞는 최적의 실행 방식을 적용할 수 있습니다.
이 환경을 조성하는 과정 자체는 사실 굉장히 디터미니스틱한 결과를 만들어 내기 때문에 우리가 굳이 LLM을 붙여서 실행을 할 필요가 없어요.
그래프를 확장하고 병렬 작업을 도입하기 전에, 먼저 한 개의 지역만으로 파이프라인을 실행하고 검증하는 것이 매우 중요합니다. 처음부터 모든 것을 병렬로 실행하면 불필요한 토큰 소모와 긴 처리 시간이 발생할 수 있습니다.
따라서 단일 지역 테스트를 통해 파이프라인의 안정성을 확인한 후, 이를 점진적으로 확장해 나가는 전략이 권장됩니다. 이는 개발 시간과 비용을 절약하고, 효율적인 그래프 구축을 가능하게 합니다.
이 API는 공개 웹페이지에 접근하고, 자바스크립트로 구성된 페이지를 렌더링하며, 프록시 운영 및 결과 반환 과정을 하나의 API 호출로 처리할 수 있습니다.
이를 통해 사용자는 웹 스크래핑의 복잡한 부분을 신경 쓰지 않고 실시간으로 정확한 데이터를 추출할 수 있습니다. 이는 특히 동적인 웹 페이지에서 데이터를 수집할 때 매우 유용하며, 전반적인 데이터 수집 프로세스를 간소화합니다.
강남구 한 지역에 대한 Oxylabs API 검색을 요청하며, 더미 데이터나 임의로 생성된 숙소는 사용하지 않도록 명확히 지정하여 할루시네이션(환각) 현상을 방지합니다.
이는 입력 파일 및 여행 조건을 정확하게 설정하고, 결과 저장 경로와 파일 형식을 명시함으로써 데이터 수집의 정확성과 신뢰성을 높이는 데 기여합니다. 이러한 사전 설정은 데이터 품질을 보장하는 중요한 단계입니다.
강남구 한 지역만 옥시랩스의 실제 API로 검색을 해 달라고 하고요. 더미 데이터나 임의로 만든 숙수는 당연히 사용하지 말라고 하는 거는 이제 혹시나 헬루시네이션 있을까 봐 저희가 미리 넣어 놨어요.
Oxylabs CLI를 사용하여 웹 스크래핑 작업을 실행하기 위해서는 Oxylabs 유저스 탭에서 사용자 이름과 비밀번호를 생성하고 설정해야 합니다. 이 과정을 통해 API 호출 권한을 확보하고 실제 스크래핑을 진행합니다.
데이터 수신 후에는 HTTP 200 상태 코드를 통해 데이터가 정상적으로 전달되었는지 확인하며, 그래프 에이전트 환경에서 안정적인 브라우저 접근성을 확보합니다. 이는 데이터 수집 과정의 신뢰도를 높이는 핵심적인 단계입니다.
Oxylabs로부터 받아온 원본 응답을 그대로 저장하고 참조함으로써, 만약 다음 그래프 노드에 문제가 생겨도 이전 노드의 로우 파일을 레퍼런스하여 작업을 재시작할 수 있습니다.
이러한 노드별 상태 설계는 실행 효율성을 높이고 시간 낭비를 줄입니다. 또한, 로그 파일을 통해 실행 과정을 추적하고 문제를 진단할 수 있어 전반적인 시스템의 안정성을 강화합니다.
이는 마크다운 파일 존재 여부, JSON 파싱 성공 여부, 그리고 검색된 지역이 '강남구'인지를 확인하는 등의 결정론적인 검증 기법을 포함합니다.
LLM을 사용하면 불필요한 토큰 소모와 시간이 발생할 수 있으므로, 이러한 검증 단계에서는 직접적인 프로그램 코드를 활용하여 속도와 정확도를 향상시킵니다. 예를 들어, 데이터 조건(지역명, 평점 등)을 자동으로 확인하는 코드를 작성하여 검증 과정을 자동화하고 효율화합니다.
이 방식은 AI 모델의 판단 없이도 확실하게 확인할 수 있는 부분을 프로그램으로 처리함으로써, 전체 워크플로우의 안정성과 경제성을 동시에 확보하는 데 기여합니다.
이는 각 지역에 대한 데이터 리서치를 동시에 진행하여 전체 처리 시간을 단축하고 효율성을 극대화합니다.
각 에이전트는 독립적으로 데이터를 수집하고 처리하며, 최종적으로 그 결과를 메인 에이전트가 종합하여 컨텍스트 리포트를 생성합니다. 이 방식은 대규모 데이터 처리나 복잡한 리서치 작업에 특히 유용합니다.
Oxylabs 스크래퍼 API를 사용하면 브라우저 제어에 대한 신경 쓸 필요 없이 독립적으로 리서치를 수행할 수 있습니다. 이는 API가 크롬 컨트롤과 같은 복잡한 과정을 자동으로 처리하여 필요한 결과물을 받아오기 때문입니다.
이러한 독립적인 실행 환경은 특정 작업에서 장애가 발생하더라도 다른 작업에 영향을 미치지 않도록 하여 장애 전파를 방지합니다. 또한, 개별 작업에 대한 재시도(리트라이)가 용이해져 전체 시스템의 안정성이 향상됩니다.
이를 통해 요청 횟수와 데이터 사용량을 파악하여 작업 현황을 명확하게 파악할 수 있습니다.
이 단계에서는 이전에 단일 파이프라인 검증에 사용했던 코드를 재사용하여 각 지역의 결과물에 대한 유효성을 확인합니다.
각 지역의 결과물은 독립적인 리포트로 생성되며, 검증이 성공적으로 완료되면 '패스' 상태로 표시됩니다. 이는 병렬 처리된 복수의 데이터에 대한 신뢰성을 확보하고, 다음 단계로의 진행 여부를 결정하는 중요한 과정입니다.
데이터 검증이 완료된 후, LLM(Large Language Model)이 해당 결과물을 바탕으로 Airbnb 숙소 후보를 추천하는 작업을 수행합니다. 이 과정은 LLM의 판단력을 활용하여 사용자에게 최적의 선택지를 제공합니다.
추천 결과에는 순위, 리스트 ID 등 세부 정보가 포함되며, 이 결과물은 다음 노드로 상태를 전달하기 위해 파일 형태로 저장됩니다. 이는 AI 에이전트 워크플로우에서 정보가 체계적으로 흐르도록 하는 중요한 단계입니다.
이는 AI가 생성한 아티팩트(결과물)를 사람이 직접 검토하고 승인 여부를 결정하는 과정입니다.
이 단계에서 사용자는 필요시 거절하거나 수정 요청을 할 수 있으며, 이에 따라 워크플로우를 재실행하여 데이터의 정확성과 사용자의 만족도를 높일 수 있습니다. 사람의 개입을 통해 최종 결과의 신뢰도를 확보하는 것이 목표입니다.
에이전트 그래프 워크플로는 전반적으로 작업하고 싶은 그래프를 먼저 구성하는 것으로 시작됩니다. 이후, 단일 파이프라인을 직접 만들고 테스트하여 그 작동을 검증합니다.
검증된 파이프라인을 기반으로 에이전트 노드들을 생성하여 병렬 작업, 검증, 그리고 휴먼 인 더 루프(Human-in-the-loop) 노드를 배치함으로써 효율적인 AI 에이전트 환경을 조성합니다. 이 과정을 통해 복잡한 작업을 체계적으로 처리할 수 있는 견고한 시스템을 구축할 수 있습니다.
자막에서 근거가 되는 대목을 찾아 답합니다.
코드팩토리의 다음 글도 받아볼까요?
코드팩토리에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 1편 올렸어요.