에이전트의 부상: Rails를 활용한 AI 에이전트 구축 및 미래

Kinsey Durham Grace - Beyond the Prompt: Building Real-World LLM Features in Rails

작성자
Ruby on Rails Youtube
발행일
2025년 09월 16일

핵심 요약

  • 1 AI 에이전트의 개념, 필수 구성 요소 및 워크플로우와의 차이점을 명확히 정의하고 Rails 애플리케이션 예시를 통해 실제 구현 방안을 제시합니다.
  • 2 에이전트 구축 시 모듈화, 게이트, 최소한의 프롬프트 변경, 광범위한 테스트 및 관찰 가능성과 같은 GitHub의 모범 사례를 공유합니다.
  • 3 에이전트의 미래 방향(인간 유사성, 서브 에이전트, 워크플로우 네이티브)을 조망하고 투명성, 편향성, 보안 등 윤리적 고려사항의 중요성을 강조합니다.

도입

본 발표는 GitHub의 코딩 에이전트 핵심 팀원이자 Ruby Central 이사회 부사장인 Kinsey가 AI 에이전트의 부상과 Rails 환경에서의 구축 방법을 다룹니다. 발표자는 에이전트의 정의, 구축 방법, 모범 사례, 미래 전망 및 윤리적 고려사항에 대해 심도 있게 논의하며, 특히 Rails 애플리케이션을 활용한 실제 예시를 통해 청중의 이해를 돕습니다. 이는 개발자들이 에이전트 기반 시스템을 이해하고 효과적으로 구축하는 데 필요한 지식과 통찰력을 제공하는 것을 목표로 합니다.

AI 에이전트의 이해

Agentic AI와 에이전트 정의

  • Agentic AI: AI가 주체성을 가지고 프롬프트 없이도 행동하며, 목표 달성을 위한 단계를 스스로 수행하고 인간과 유사하게 작동하는 개념입니다.
  • 에이전트: Agentic AI의 기반이 되는 소프트웨어 시스템으로, 자율적으로 행동하고, 의사결정을 내리며, 문맥을 이해하고, 하드코딩 없이도 작업을 연결할 수 있습니다. 현대 에이전트는 일반적으로 목표, 도구, 플래너/오케스트레이터, 장단기 기억을 포함합니다.

워크플로우와 에이전트의 차이

  • 워크플로우: 에이전트의 핵심 개념이지만 동일하지는 않습니다. 학습 능력이나 유연성이 떨어지며, 매우 규격화되고 규칙 기반으로 작동합니다. 특정 단계를 정확히 알고 있을 때 유용합니다.
  • 에이전트: 모델 기반으로 작동하며, 적응력이 뛰어나고 개방형 문제 해결에 더 적합합니다. 워크플로우는 에이전트의 일부가 될 수 있습니다.

에이전트의 필수 구성 요소 (Rails 예시)

발표자는 Rails 애플리케이션을 기반으로 한 더미 지원 봇(에이전트) 예시를 통해 각 구성 요소를 설명합니다.

1. 툴링 레이어 (Tooling Layer)

  • MCP (Model Context Protocol): Anthropic에서 개발한 표준으로, AI 모델이 외부 도구, 서비스 및 구조화된 JSON 인터페이스를 안전하게 탐색하고 호출하는 방법을 정의합니다. Zendesk MCP 서버를 호출하여 지원 티켓 컨텍스트를 얻는 예시가 제시됩니다.

2. 기억 (Memory)

  • 장기 기억 (Long-term Memory): AgentMemory 테이블을 사용하여 에이전트의 생각과 컨텍스트 타임라인을 기록합니다. 플래너 응답, 도구 호출, 사용자 입력 후 매번 행을 추가하여 망각을 방지하고 장기 세션에 대한 컨텍스트를 유지합니다.
  • 단기 기억 (Short-term Memory) - State Store: 에이전트 실행의 단일 진실 소스 역할을 하는 run 객체(JSONB 컬럼)입니다. 실행 메타데이터, 현재 계획, 도구 출력, 오류 재시도, 게이트 결정 등을 추적하여 재개 가능성, 동시성 및 올바른 의사결정을 지원합니다.

3. 에이전트 오케스트레이션 (Agent Orchestration)

  • 다단계 에이전트 작업을 계획, 실행 및 감독하는 로직입니다. LLM 또는 도구를 호출하고, 가드레일을 구현하며, 상태를 유지하고, 재시도 및 롤백을 처리하며, 관찰 및 감사를 수행합니다. LLM과 비즈니스 성과를 연결하는 ‘접착제’ 역할을 합니다.

4. 계획 (Planning)

  • 에이전트의 ‘실행 기능’으로, 목표를 일련의 단계와 검증 가능한 행동으로 전환합니다. 네 가지 주요 전술이 있습니다:
    • Subgoal Composition: 큰 목표를 작은 단계로 분할하고 다음 행동을 제안합니다.
    • Reflection: 최신 출력을 검토하고 개선 또는 다음 시도할 것을 결정합니다.
    • Self-Critique: 즉각적 또는 최종 결과를 기준에 따라 평가하고 수정하거나 에스컬레이션합니다.
    • Chain of Thought: 다음에 무엇을 할지 내부적으로 추론합니다.

에이전트 구축 모범 사례

  • 모듈화 및 유지보수성: 에이전트의 복잡성과 빠른 변화 속도를 고려할 때, 모듈화는 지속적인 반복 및 발전에 필수적입니다.
  • 게이트 (Gates) 및 가드레일 (Guardrails): 정책 검사, 속도 제한, 사용자 확인(예: GitHub Co-pilot의 코드 유지/취소) 등은 에이전트의 안전과 통제에 필수적입니다.
  • 프롬프트 변경 최소화: 사소한 프롬프트 변경도 플래너의 도구 사용 중단, 환각 또는 JSON 계약 위반을 초래할 수 있으므로 최소한의 지침만 제공해야 합니다.
  • 광범위한 테스트: 야간 평가(nightly evaluations)를 통한 철저한 테스트는 에이전트의 신뢰성을 보장합니다.
  • 테스트 하네스 (Test Harnesses): 동작을 고정하고, 프롬프트를 조정하며, 도구 호출 수를 줄이는 데 도움이 됩니다.
  • 관찰 가능성 (Observability): 에이전트의 모든 활동은 추적, 검사 및 설명 가능해야 합니다. 이는 책임감과 윤리적, 신뢰성 있는 에이전트 운영에 중요합니다 (예: Co-pilot의 ‘세션 보기’ 기능).

에이전트의 미래

  • 인간 유사성 (Humanlike): 에이전트는 점점 더 인간과 유사해질 것이며, ‘느낌’, ‘성격’, ‘관계 구축’이 중요해질 것입니다. 기억력 향상과 함께 사용자를 더 잘 이해하고 브랜드 가치에 부합하게 될 것입니다.
  • 서브 에이전트 (Sub-agents): 단일 책임 원칙(SRP)과 유사하게, 각 에이전트가 고유한 책임을 갖는 서브 에이전트의 계층 구조가 나타날 것입니다.
  • 워크플로우 네이티브 (Workflow Native): 현재 LLM을 중심으로 구축되는 워크플로우는 미래에는 브랜칭, 재시도, 체크포인트, 롤백을 포함하는 워크플로우 엔진 내의 LLM 단계로 발전할 것입니다 (Airflow, Temporal과 같은 전통적인 오케스트레이션 도구와의 결합).

윤리적 고려사항

  • 투명성: 에이전트의 작동 방식과 사용자 참여를 보장하는 것이 중요합니다.
  • 편향성 (Bias): 사용되는 LLM의 편향성을 의심하고 인식해야 합니다.
  • 안전장치, 게이트, 정책 검사: 에이전트가 올바른 방향으로 작동하도록 필수적입니다.
  • 보안 및 보존 정책: 개발자에게 명확하게 보이는 보안 및 데이터 보존 정책을 수립해야 합니다.
  • 감사 (Audits): 정기적인 감사와 ‘도그푸딩(dogfooding)’을 통해 에이전트의 예상 동작과 편향성 여부를 확인해야 합니다.

결론

AI 에이전트는 소프트웨어 시스템 구축 방식의 근본적인 진화를 의미하며, 추론하고 학습하며 변화하는 조건에 적응하는 시스템으로 나아갈 수 있는 강력한 역량을 제공합니다. 그러나 에이전트 솔루션이 항상 최적의 선택은 아니며, 문제에 적합한 도구를 선택하는 것이 중요합니다. 특히 Ruby와 Rails 커뮤니티는 이러한 AI 툴링의 채택에 있어 다른 언어에 비해 다소 느린 경향이 있으므로, 이 분야에서 계속해서 주요 역할을 유지하기 위한 노력이 필요합니다. 궁극적으로 에이전트 기술은 개발자를 '대체'하는 것이 아닌 '증강'하고 '가속화'하는 방향으로 나아가야 하며, 투명성, 편향성 제거, 강력한 보안 및 윤리적 감사와 같은 고려사항을 통해 긍정적인 사회적 영향을 창출하는 데 집중해야 합니다. 우리는 이 강력한 도구를 사용하여 세상을, 그리고 우리 각자의 삶을 어떻게 더 나은 방향으로 만들 수 있을지 고민해야 합니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!