발표는 에이전트 AI의 핵심 개념과 Rails에서의 구축 방법을 상세히 설명합니다.
에이전트 AI의 정의 및 구성 요소
- 에이전트 AI: AI가 주체성(agency)을 가지고 프롬프트 없이도 스스로 행동하며, 목표 달성을 위해 단계를 수행하고 인간과 유사하게 행동하는 개념입니다.
- 에이전트: 이러한 에이전트 AI를 구현하는 소프트웨어 시스템으로, 자율적으로 행동하고, 의사결정을 내리며, 컨텍스트를 이해하고, 하드코딩 없이 태스크를 연결할 수 있습니다.
- 현대 에이전트의 구성 요소: 목표(goal), 도구(tools), 플래너/오케스트레이터(planner/orchestrator), 장단기 메모리(long-term/short-term memory)를 포함합니다.
- 워크플로우 vs. 에이전트: 워크플로우는 규칙 기반으로 정해진 단계를 수행하는 데 적합하며, 에이전트는 모델 기반으로 유연하게 학습하고 개방형 문제를 해결하는 데 능숙합니다.
Rails에서 에이전트 구축하기
발표자는 Rails 애플리케이션(더미 지원 에이전트)을 예시로 들어 에이전트의 핵심 빌딩 블록을 설명합니다.
- 툴링 레이어: Anthropic의 MCP(Model Context Protocol)를 사용하여 AI 모델이 외부 도구, 서비스와 안전하게 통신하도록 합니다. Zendesk MCP 서버를 호출하여 지원 티켓 컨텍스트를 얻는 예시를 보여줍니다.
- 메모리:
- 장기 메모리 (AgentMemory): 데이터베이스 테이블에 플래너 응답, 도구 호출, 사용자 입력을 기록하여 에이전트의 생각과 컨텍스트 타임라인을 생성합니다. 망각을 방지하고 장기 세션을 지원합니다.
- 단기 메모리 (State Store): JSONB 컬럼으로 에이전트의 현재 작업 상태(run metadata, plan, tool outputs, error retry 등)를 저장하여 실행 재개, 동시성 처리에 중요합니다.
- 에이전트 오케스트레이션: 다단계 에이전트 작업을 계획, 실행, 감독하는 로직입니다. 도구 또는 LLM 호출, 가드레일 구현, 상태 유지, 재시도 및 롤백, 관찰 및 감사 기능을 수행합니다.
- 플래닝: 에이전트의 실행 기능으로, 목표를 일련의 검증 가능한 단계와 행동으로 전환합니다. 하위 목표 구성, 리플렉션, 자기 비판, 사고의 사슬(Chain of Thought)과 같은 전술을 사용합니다.
에이전트 구축 모범 사례
- 모듈화 및 유지보수성: 복잡한 에이전트 시스템은 빠르게 변화하므로, 지속적인 반복 개발을 위해 모듈성을 확보해야 합니다.
- 게이트 및 가드레일: 정책 검사, 속도 제한, 인간의 검토 등 에이전트의 행동을 제어하고 안전을 확보하는 장치를 구현해야 합니다.
- 프롬프트 변경 최소화: 사소한 프롬프트 변경도 에이전트의 동작에 예상치 못한 영향을 줄 수 있으므로, 간결하게 유지해야 합니다.
- 철저한 테스트: 야간 평가(nightly evaluations) 및 테스트 하네스(test harnesses)를 통해 에이전트의 동작을 검증하고 안정성을 높입니다.
- 관찰 가능성 (Observability): 에이전트의 모든 활동을 추적, 검사, 설명 가능하게 하여 윤리적이고 신뢰할 수 있는 에이전트를 보장합니다.