MongoDB Atlas는 다양한 산업 분야에서 AI 에이전트를 신속하게 개발할 수 있도록 지원합니다.
산업: 금융 서비스, 의료, 보험, 제조 및 모바일, 소매, 통신
제품: MongoDB Atlas, MongoDB Atlas 데이터베이스, MongoDB Atlas Vector Search
솔루션 개요
전 세계 회사들이 비즈니스 워크플로에 AI 에이전트를 통합하고 있습니다. AI 에이전트 의 가장 일반적인 용도는 연구 분석 또는 코드 작성을 지원하는 것입니다. 여러 업계의 명 이상 명을 대상으로 한 LangChain의 최근 설문 조사 에 1 따르면,000 51% 이상이 이미 프로덕션 환경에 에이전트를 배포한 것으로 나타났습니다.
프로덕션 AI 에이전트는 기본 작업 이상으로 확장 때 세 가지 주요 과제에 직면합니다.
복잡한 데이터 통합 및 처리: AI 에이전트는 구조화된 로그, 구조화되지 않은 텍스트, 센서 스트림과 같은 서로 다른 데이터 소스에 의존합니다. 이로 인해 실시간 의사 결정을 위한 데이터 통합이 어려워집니다. 모든 관련 데이터를 하나의 데이터베이스 에 저장하면 개발 속도가 빨라집니다.
높은 동시성 및 짧은 지연 시간 : 에이전트는 대량의 요청 을 처리하다 하고 빠르게 응답해야 합니다. 이는 처리량 부족한 데이터베이스에 부담을 줄 수 있습니다. LLM 추론은 지연 시간 추가하지만, 에이전트가 확장하다 되더라도 데이터베이스 성능은 여전히 중요합니다. 프로덕션 에이전트는 병렬로 실행 여러 도구를 호출하며 의사 결정을 위해 현재 데이터에 의존합니다. 데이터베이스 속도가 느리면 병목 현상이 발생하여 응답 시간이 늘어나고 실시간 역량 저하됩니다.
데이터 거버넌스 및 보안: AI 에이전트는 컴플라이언스 유지하면서 데이터를 안전하게 저장 하고 액세스 해야 합니다. MongoDB Atlas는 클라이언트 사이드 필드 레벨 암호화, queryable encryption, 감사 역량과 같은 내장 보안 제어 기능을 제공합니다. 이러한 기능을 통해 에이전트는 승인된 데이터에만 액세스하고 추적성을 유지할 수 있습니다.
이 솔루션은 AI 기반 워크플로의 개발을 가속화할 수 있는 유연한 기반을 제공하는 에이전트 프레임워크 제공합니다. 이 프레임워크 고정 설정하다 도구나 기능을 제공하는 대신 특정 사용 사례에 맞는 에이전트를 구축할 수 있는 점 제공합니다.
이 솔루션을 사용하여 MongoDB Atlas 및 LangGraph를 사용하여 선형 워크플로의 에이전트를 생성할 수 있습니다. 복잡한 사용 사례의 경우 새로운 도구, 노드, 조건 또는 워크플로를 추가하여 프레임워크를 확장할 수 있습니다.
그림 1 은 다음을 포함하는 에이전트 의 주요 구성 요소를 보여줍니다.
사용자 또는 자동화된 트리거로부터 작업 수신
LLM을 사용하여 응답 생성 또는 워크플로 따르기
다양한 도구와 모델을 사용하여 MongoDB Atlas 에서 데이터를 저장 하고 조회 .
그림 1. AI 에이전트의 기본 구성 요소
참조 아키텍처
이 에이전트적 프레임워크는 LangGraph를 사용하여 다단계 진단 워크플로를 실행하고 실행 가능한 인사이트를 생성합니다. 프레임워크는 다음 작업을 수행합니다.
CSV 파일 또는 MongoDB Atlas 에서 Time Series 데이터를 읽습니다.
텍스트 임베딩 생성
벡터 검색을 수행하여 유사한 과거 쿼리 식별
세션 유지 및 데이터 실행
진단 권장 사항 생성
MongoDB Atlas 에이전트 프로필, 기록 권장 사항, Time Series 데이터 및 세션 로그를 저장합니다. 이를 통해 완전한 추적성을 보장하고 과거 인사이트를 효율적으로 쿼리하고 재사용할 수 있습니다.
그림 2. 에이전트 AI 참조 아키텍처
Agentic AI 위한 MongoDB 이점
MongoDB 유연성, 성능 및 확장성 통해 에이전트적 AI 지원합니다. 문서 모델은 구조화된 데이터, 반구조화된 데이터 및 구조화되지 않은 데이터를 기본적으로 저장하고 다양한 데이터 세트를 처리합니다. MongoDB 사용하면 AI 에이전트가 새로운 정보에 대응하고 내부 상태를 실시간 으로 유지하며 지속적으로 학습 .
유연한 데이터 모델: MongoDB time-series 로그, 에이전트 프로필, 추천 출력과 같은 데이터를 통합 형식으로 저장합니다. 유연한 스키마 는 데이터 요구 사항이 변경될 때 데이터베이스 재설계할 필요가 없습니다. AI 에이전트는 변화하는 특성과 컨텍스트에 적응하는 중첩 문서를 통해 계층적 상태를 저장 수 있습니다. MongoDB 에이전트 컨텍스트를 일시 중지하고 다시 시작하는 기능 을 통해 버전 관리 및 에이전트 진화 추적을 지원합니다.
벡터 검색: MongoDB Atlas 벡터 임베딩에 대한 유사성 검색을 위한 네이티브 벡터 검색 지원합니다. 이 기능 현재 쿼리를 과거 데이터와 일치시키고 진단 정확도를 높이며 관련 권장 사항을 제공합니다. 벡터 검색 사용하면 패턴 인식 및 컨텍스트 검색이 가능하여 LLM 환각이 줄어듭니다. MongoDB AI 에이전트 워크플로를 위한 시맨틱 매칭, 컨텍스트 검색 및 다차원 데이터 분석을 처리합니다.
확장성 및 성능: MongoDB 사용하면 AI 에이전트를 수평적으로 확장하다 대량의 실시간 데이터를 처리하다 , 저장 및 계산 부하를 분산하고, MongoDB 복제본 세트를 통해 고가용성 유지할 수 있습니다.
time series 컬렉션: MongoDB time series 컬렉션은 대량의 데이터를 효율적으로 수집합니다. 이러한 컬렉션을 활성화 AI 에이전트는 시간 경과에 따른 순차적 상호 작용, 학습 패턴 및 상태 변화를 추적 할 수 있습니다. 이 역량 컨텍스트를 유지하고 적응형 의사 결정을 구현합니다. time-series 최적화에는 자동 데이터 압축, 향상된 저장 효율성 및 빠른 시간 기반 쿼리가 포함됩니다. MongoDB 사용하면 AI 에이전트는 성능이나 데이터 무결성을 손상시키지 않고 현재 및 과거 기록을 유지할 수 있습니다.
통합: MongoDB JSON 과 유사한 문서, 동적 스키마 및 인덱싱 기능을 통해 LangGraph와 같은 에이전트 프레임워크와 통합됩니다. 이러한 통합을 통해 AI 에이전트는 데이터 및 메모리 구조를 유지 관리하고, 다단계 추론 프로세스를 추적 , 세션 전반에 걸쳐 지속되는 상태 관리 구현 .
솔루션 빌드
다음 단계에 따라 MongoDB Atlas 및 LangGraph로 에이전트 프레임워크 설정하다 하세요. 단계에 대한 자세한 설명은 GitHub 리포지토리를 참조하세요.
사용 사례에 의미 있는 CSV 데이터를 포함하세요
데이터는 사용 사례 와 관련이 있어야 하며 다음 가이드라인을 준수해야 합니다.
CSV 파일 에서 열 이름이 포함된 헤더 행을 추가합니다.
첫 번째 열의 이름을
timestamp로 지정하고 타임스탬프를YYYY-MM-DDTHH:MM:SSZ형식으로 입력합니다. 예시:2025-02-19T13:00:00Z.나머지 열은 사용 사례 에 맞는 관련 데이터로 채웁니다.
프레임워크 테스트의 경우 데이터 크기를 최대한 작게 유지합니다.
샘플 데이터:
timestamp,gdp,interest_rate,unemployment_rate,vix 2025-02-19T13:00:00Z,2.5,1.75,3.8,15 2025-02-19T13:05:00Z,2.7,1.80,3.7,18 2025-02-19T13:10:00Z,2.6,1.85,3.9,22 2025-02-19T13:15:00Z,2.4,1.70,4.0,10 2025-02-19T13:20:00Z,2.3,1.65,4.1,20 동일한 폴더에서 쿼리 파일 추가합니다. 이 파일 에는 에이전트 워크플로의 일부로 벡터 검색 역량을 보여 주는 데 사용하는 쿼리가 포함되어 있습니다. 파일 에서 다음 가이드라인을 따르세요.
CSV 파일 에서 열 이름이 포함된 헤더 행을 추가합니다.
첫 번째 열의 이름을
query으로 지정하고 쿼리로 채웁니다.두 번째 열의 이름을
recommendation로 지정하고 예상 권장 사항으로 채웁니다.프레임워크 테스트의 경우 데이터 크기를 최대한 작게 유지합니다.
샘플 데이터:
query,recommendation GDP growth slowing,Consider increasing bond assets to mitigate risks from potential economic slowdown. GDP showing strong growth,Increase equity assets to capitalize on favorable investment conditions. Interest rates rising,Shift focus to bond assets as higher rates may impact borrowing-sensitive sectors. Interest rates falling,Increase real estate assets to take advantage of lower borrowing costs. Unemployment rate increasing,Reduce equity assets to account for potential economic weakness and reduced consumer spending. Unemployment rate decreasing,Increase equity assets to benefit from improved economic conditions and corporate profits. VIX above 20,Reduce equity assets to manage risks associated with high market volatility. VIX below 12,Increase equity assets to capitalize on low market volatility and investor confidence. VIX within normal range (12-20),Maintain current asset allocation as market conditions are stable. Combination of rising interest rates and high VIX,Focus on bond assets to hedge against market volatility and borrowing cost impacts.
JSON 구성 파일 통해 에이전트 워크플로 구성
config 폴더로 고 (Go) JSON config.json 파일 만들거나 업데이트 . 파일 다음 구조가 포함되어야 합니다.
{ "CSV_DATA": "data/csv/<YOUR_FILE_NAME>.csv", "MDB_DATABASE_NAME": "<YOUR_MONGODB_DATABASE_NAME>", "MDB_TIMESERIES_COLLECTION": "<YOUR_MONGODB_TIMESERIES_COLLECTION_NAME>", "DEFAULT_TIMESERIES_DATA": [ { "timestamp": "<DEFAULT_TIMESTAMP_IN_YYYY-MM-DDTHH:MM:SSZ>" // Your default data here, check config_example.json for better understanding } ], "CRITICAL_CONDITIONS": { // Below is an example of a critical condition for GDP growth "gdp": {"threshold": 2.5, "condition": "<", "message": "GDP growth slowing: {value}%"} // Other critical conditions for your use case here, check config_example.json for better understanding }, "MDB_TIMESERIES_TIMEFIELD": "<YOUR_TIMESTAMP_FIELD_NAME>", "MDB_TIMESERIES_GRANULARITY": "<YOUR_TIMESERIES_GRANULARITY>", "MDB_EMBEDDINGS_COLLECTION": "queries", // Using "queries" collection name for storing queries "MDB_EMBEDDINGS_COLLECTION_VS_FIELD": "query_embedding", // Using "query_embedding" field for storing embeddings "MDB_VS_INDEX": "<YOUR_MONGODB_DATABASE_NAME>_queries_vs_idx", // Replace <YOUR_MONGODB_DATABASE_NAME> with your MongoDB database name "MDB_HISTORICAL_RECOMMENDATIONS_COLLECTION": "historical_recommendations", // Using "historical_recommendations" collection name for storing recommendations "SIMILAR_QUERIES": [ // Below is an example of default similar queries for GDP growth { "query": "GDP growth slowing", "recommendation": "Consider increasing bond assets to mitigate risks from potential economic slowdown." } // Other similar queries for your use case here, check config_example.json for better understanding // This ones are going to be used for the vector search tool in case something is not found in the queries collection ], "MDB_CHAT_HISTORY_COLLECTION": "chat_history", // Using "chat_history" collection name for storing chat history "MDB_CHECKPOINTER_COLLECTION": "checkpoints", // Using "checkpoints" collection name for storing checkpoints "MDB_LOGS_COLLECTION": "logs", // Using "logs" collection name for storing logs "MDB_AGENT_PROFILES_COLLECTION": "agent_profiles", // Using "agent_profiles" collection name for storing agent profiles "MDB_AGENT_SESSIONS_COLLECTION": "agent_sessions", // Using "agent_sessions" collection name for storing agent sessions "AGENT_PROFILE_CHOSEN_ID": "<YOUR_AGENT_PROFILE_ID>", // Replace <YOUR_AGENT_PROFILE_ID> with the agent profile ID you want to use, check config_example.json for better understanding // Below is an example default agent profile for Portfolio Advisor "DEFAULT_AGENT_PROFILE": { "agent_id": "DEFAULT", "profile": "Default Agent Profile", "role": "Expert Advisor", "kind_of_data": "Specific Data", "motive": "diagnose the query and provide recommendations", "instructions": "Follow procedures meticulously.", "rules": "Document all steps.", "goals": "Provide actionable recommendations." }, "EMBEDDINGS_MODEL_NAME": "Cohere Embed English V3 Model (within AWS Bedrock)", // Describing the embeddings model used for creating the chain of thought "EMBEDDINGS_MODEL_ID": "cohere.embed-english-v3", // Model ID for the embeddings model "CHATCOMPLETIONS_MODEL_NAME": "Anthropic Claude 3 Haiku (within AWS Bedrock)", // Describing the chat completions model used for generating responses "CHATCOMPLETIONS_MODEL_ID": "anthropic.claude-3-haiku-20240307-v1:0", // Model ID for the chat completions model // Below is a sample agent workflow graph that uses the tools defined in the agent_tools.py file // PLEASE BE CAREFUL WHEN MODIFYING THIS GRAPH, CONSIDER THAT THE TOOLS DEFINED IN THE AGENT TOOLS FILE ARE USED HERE AS WELL AS THE IMPORTS "AGENT_WORKFLOW_GRAPH": { "nodes": [ {"id": "reasoning_node", "tool": "agent_tools.generate_chain_of_thought_tool"}, {"id": "data_from_csv", "tool": "agent_tools.get_data_from_csv_tool"}, {"id": "process_data", "tool": "agent_tools.process_data_tool"}, {"id": "embedding_node", "tool": "agent_tools.get_query_embedding_tool"}, {"id": "vector_search", "tool": "agent_tools.vector_search_tool"}, {"id": "process_vector_search", "tool": "agent_tools.process_vector_search_tool"}, {"id": "persistence_node", "tool": "agent_tools.persist_data_tool"}, {"id": "recommendation_node", "tool": "agent_tools.get_llm_recommendation_tool"} ], "edges": [ {"from": "reasoning_node", "to": "data_from_csv"}, {"from": "data_from_csv", "to": "process_data"}, {"from": "process_data", "to": "embedding_node"}, {"from": "embedding_node", "to": "vector_search"}, {"from": "vector_search", "to": "process_vector_search"}, {"from": "process_vector_search", "to": "persistence_node"}, {"from": "persistence_node", "to": "recommendation_node"}, {"from": "recommendation_node", "to": "END"} ], "entry_point": "reasoning_node" } }
구성 파일 업데이트 후 다음을 수행합니다.
환경 변수를 구성합니다.
벡터 임베딩을 생성합니다.
벡터 검색 인덱스를 생성합니다.
그림 3. 논리 아키텍처
주요 학습 사항
Agentic AI 기존 애플리케이션과 다르게 데이터를 처리하는 소프트웨어를 도입합니다. 비즈니스 애플리케이션에서 에이전트를 활용하려면 소프트웨어 제공 팀이 다음을 이해해야 합니다.
에이전트가 미리 결정된 워크플로에 대한 지침을 받는 방법
에이전트가 API 및 데이터베이스에 액세스 하고 상호 작용 방법
에이전트가 상태 를 유지하고 관리 방법
이러한 활동은 사용 사례 , 워크플로 또는 업계 상황에 관계없이 소프트웨어 제공 팀이 에이전트를 배포 할 수 있는 기준 설정 형성합니다.
프레임워크는 일반적인 작업과 구성 요소를 추상화하여 개발 및 배포 속도를 높이는 동시에 유지 관리의 복잡성을 줄입니다. 이 에이전트적 프레임워크는 소프트웨어 제공 팀이 구성 가능한 공통 구성 요소를 사용하여 에이전트적 솔루션을 빌드 및 유지 관리하는 동시에 팀이 장기적인 확장성 및 유지 관리를 위해 반복 가능한 패턴과 구성 요소를 개발하도록 교육합니다.
작성자
Julian Boronat, MongoDB
Peyman Parsi, MongoDB
Jeff Needham, MongoDB
Luca Napoli, MongoDB
Humza Akthar, MongoDB