#AI

사내 AI 에이전트 개선기

사내 AI 에이전트 개선기
01

Summary

비결정적인 AI 에이전트를 프로덕션급으로 길들이는 채널톡의 3가지 설계 비법

OpenAI Agents SDK와 컨텍스트 최적화로 비용은 깎고 정확도는 높인 실전 에이전트 아키텍처

단순한 챗봇을 넘어 실제 복잡한 운영 업무를 수행하는 AI 에이전트 '채널랩스'의 v2 전환기를 다룹니다. 무분별한 토큰 사용을 막고 모델이 항상 정확한 데이터를 기반으로 판단할 수 있도록 런타임 레이어에서 컨텍스트 경계를 강제하는 구체적인 설계 패턴을 공유합니다.

  • 01OpenAI Agents SDK를 활용한 구조적 런타임 분리 및 가드레일 구현
  • 02파일 전체를 읽지 않고 필요한 부분만 로드하는 Lazy Loading 패턴 적용
  • 03프롬프트 캐싱 효율을 극대화하는 Stable Prefix 유지 전략
  • 04정확한 실행을 위해 컨텍스트 압축 대신 선택한 사전 예산 제어(Budget Control)
  • 05사용자 입력 단계에서 ID 매칭의 모호함을 제거하는 멘션 픽커 활용 노하우

RECOMMENDATION

AI 에이전트의 비싼 토큰 비용이나 예측 불가능한 동작으로 고민하는 엔지니어에게 강력히 추천합니다. 특히 정밀한 데이터 조작이 필요한 '작업 실행형 에이전트'를 구축할 때 이 아키텍처 패턴이 훌륭한 길잡이가 될 것입니다.

The Problem

기존의 사내 AI 에이전트(v1)는 에이전트 루프를 수동으로 관리하고 시스템 프롬프트에 방대한 데이터를 매번 주입하는 구조로 설계되어, 토큰 누수, 비용 예측 불가능성, 보안 취약점 등 비결정론적 시스템의 고질적인 문제를 안고 있었습니다.

The Solution

OpenAI Agents SDK를 도입하여 런타임 레이어를 분리하고, 파일 본문을 참조로만 관리하는 지연 로딩(Lazy Loading), 필요 시에만 채널 목록을 조회하는 하이브리드 전략, 스킬 문서의 도구화 및 하드캡 제한 등 컨텍스트 예산 관리 패턴을 적용했습니다.

The Result

시스템 프롬프트의 접두사를 안정화하여 OpenAI의 프롬프트 캐싱 효율을 극대화했으며, 도구 응답의 크기를 제한하고 가드레일을 구축함으로써 프로덕션 환경에서 실행 안전성을 확보하고 불필요한 토큰 비용을 획기적으로 줄였습니다.

Trade-off

컨텍스트 압축(Compaction) 대신 정확한 정보 보존을 위한 사전 예산 제어 방식을 선택했기 때문에, 실행 시 데이터의 정밀도는 높였으나 이를 위해 read_file이나 search_file 같은 전용 도구들을 직접 구현하고 관리해야 하는 엔지니어링 복잡도가 상승했습니다.

03

Key Concepts

Concept · 01

OpenAI Agents SDK

AI 에이전트의 추론, 도구 호출, 결과 반영으로 이어지는 반복 루프를 효율적으로 관리하고 세션 및 스트리밍을 표준화할 수 있게 돕는 개발 도구입니다.

  • 수동으로 구현했던 Agent Loop를 SDK의 Runner 구조로 대체
  • 세션 저장 및 메시지 히스토리 관리 로직을 인터페이스로 분리하여 구현
Concept · 02

Prompt Caching

모델 입력의 접두사(Prefix)가 동일할 경우 해당 부분을 캐싱하여 처리 속도를 높이고 비용을 절감하는 기능입니다.

  • 동적 데이터를 시스템 프롬프트 밖으로 분리하여 Stable Prefix 확보
  • 반복되는 지시문에 대한 토큰 비용 절감 및 Latency 개선
Concept · 03

Context Budget Control

에이전트가 매 턴마다 모델에게 전달하는 정보의 양을 사전에 제한하여 컨텍스트 윈도우 폭주를 막는 전략입니다.

  • 도구 응답(Tool Output)의 크기를 서버 사이드에서 Hard Cap으로 제한
  • 파일 및 채널 정보를 전체가 아닌 레퍼런스나 필요한 범위만 전달