에이전트 기반 AI 애플리케이션은 반드시 새로운 프로토콜 때문이 아니라 트래픽 패턴 자체가 다르기 때문에 기존 웹 인터페이스와 다른 설계가 필요하다. 하나의 대화가 수십 개의 독립적인 요청으로 이어질 수 있는 반면, 에이전트는 인프라에 가해지는 부하를 완화하는 인간의 대기 시간 없이 기계적인 속도로 계속 작업한다.
The New Stack에 Oracle의 후원으로 게재된 이 글은 확장 가능하고 OpenAI와 호환되는 인터페이스를 구축하기 위해 마이크로서비스의 기존 원칙을 재사용할 것을 제안하며, 개념 증명 모델은 Oracle AI Database Free를 기반으로 한다.
에이전트 트래픽은 웹 애플리케이션 트래픽과 어떻게 다른가?
브라우저는 라우팅 고정과 사용자의 사고 시간 덕분에 하나의 서버를 통해 세션을 유지할 수 있다. 그러나 에이전트는 연속적으로 40회의 사이클을 실행할 수 있으며, 각 사이클은 HTTP 프로토콜상 동일한 서버로 라우팅된다는 보장이 없는 독립적인 요청으로 도착한다. 대화 기록이 로컬 프로세스 메모리에 남아 있다면, 다음 요청이 다른 서비스 인스턴스로 이동하는 순간 컨텍스트를 잃을 수 있다.
또한 도구 호출은 예측할 수 없는 방식으로 분기될 수 있다. 하나의 요청이 추가 서비스를 전혀 호출하지 않을 수도 있고 여러 서비스를 호출할 수도 있으며, 여기에는 400밀리초가 걸릴 수 있는 벡터 검색 작업도 포함된다. 에이전트는 자체 재시도 정책을 통해 부하를 더욱 높이며, 트래픽은 사용자의 행동보다 동시성 한도와 하드웨어에 의해 결정되는 지속적인 배치 형태로 유입된다.
초기 설계에 숨은 문제
저자는 대화 기록을 프로세스 내부의 사전에 보관하고, 동시성을 제어하기 위해 하나의 집합을 사용하며, 요청 경로 안에서 도구 호출을 실행하는 프로토타입을 제시한다. 이 설계는 테스트에서는 작동하지만, 실제로는 대화의 모든 역할이 동일한 장치에 도달하는 것에 의존한다.
각각 네 개의 역할을 가진 200개의 대화를 여러 인스턴스에 번갈아 분산하면 서버가 계속 HTTP 200 상태 코드를 반환할 수 있지만, 모델은 올바른 대화 기록 없이 응답한다. 따라서 이 문제는 반드시 명확한 기술적 장애로 나타나는 것이 아니라 사용자 관점에서 잘못된 동작으로 나타난다.
문제를 해결하는 세 가지 원칙
- 상태를 프로세스 밖으로 이동: 대화 상태와 도구 호출 기록을 공유 저장소에 보관하여 어떤 서비스 인스턴스든 대화의 어느 역할이든 처리할 수 있도록 한다.
- 격리 또는 격벽: 대화 완성과 도구 실행처럼 서로 다른 경로와 의존성에 독립적인 동시성 한도와 시간 초과를 부여하여 하나의 장애가 전체 시스템을 소진하지 못하게 한다.
- 스마트 엔드포인트와 단순한 파이프라인: OpenAI 호환 프로토콜은 안정적인 전송 계층으로 유지하고, 라우팅 로직과 예산 관리, 메모리, 도구 호출 정책은 그 위에 둔다.
실제로 무엇이 달라지는가?
개념 증명 모델은 시스템을 OpenAI 프로토콜로 통신하며 상태를 보유하지 않는 게이트웨이, 대화 기록과 감사 기능을 소유하는 메모리 서비스, 고유한 동시성 한도와 시간 초과를 갖춘 독립적인 도구 서비스, 공유 저장소 역할을 하는 Oracle AI Database Free로 나눈다. 이 설계는 대화 동시성을 위한 24개의 슬롯과 도구 호출을 위한 8개의 슬롯처럼 독립적인 제어 신호를 사용한다.
이러한 분할을 통해 로컬 파일 시스템이나 요청 라우팅 고정에 의존하지 않고 수평 확장이 가능해진다. 또한 프로토콜이 호환되는 한 공식 OpenAI 클라이언트는 SDK를 수정하지 않고도 인터페이스를 사용할 수 있다.
편집상의 결론은 AI 에이전트의 확장성이 단순히 인스턴스 수를 늘리는 것만으로 해결되지 않는다는 것이다. 진정한 테스트는 상태를 유지하고, 느린 의존성을 제어하며, 재시도나 도구 호출이 에이전트 배치를 연쇄적인 장애로 바꾸지 않도록 하는 데 있다. 이 글은 Oracle의 후원 콘텐츠이므로 아키텍처 접근법과 개념 증명 모델을 제시하는 것이며, 데이터베이스 간 독립적인 비교나 모든 환경에서의 특정 성능을 보장하는 내용은 아니다.
뉴스 출처
The New Stack - Software Development
원문 보기 ↗