1 분 소요

다양한 산업 분야의 수십 개 팀과 함께 LLM 에이전트를 개발하기 위해, 복잡한 프레임워크보다는 단순하고 조합 가능한 패턴을 사용하는 것이 모범 사례로 꼽히고 있다. 다시 말해, 가장 성공적인 구현 사례들이 복잡한 프레임워크나 특수 라이브러리를 사용하지 않고, 단순하고 조합 가능한 패턴을 활용해 구축하고 있었다. 이러한 효율적인 에이전트 개발에 대해 노트를 한 번 정리해 보겠다.

1. 에이전트란 무엇인가?

  • 에이전트 정의
    • 일부 고객들은 에이전트를 다양한 도구를 활용해 복잡한 작업을 수행하고 장시간 독립적으로 작동하는 완전 자율 시스템
    • 다른 고객들은 사전에 정의된 워크플로우를 따르는 규범적인 구현 방식
  • Anthropic에서는 이러한 모든 형태를 “에이전트형 시스템(agentic systems)”으로 분류하지만, 아키텍처 측면에서 워크플로우와 에이전트 사이에 중요한 차이를 둔다.
    • 워크플로우(Workflows): LLM과 도구들이 사전에 정의된 코드 경로를 통해 오케스트레이션되는 시스템
    • 에이전트(Agents): LLM이 자신의 작업 방식과 도구 사용을 동적으로 조정하며, 과업 수행 방식에 대한 주도권을 유지하는 시스템

2. 에이전트 활용, 필요할 때와 아닐 때를 구분하라.

  • LLM을 활용한 애플리케이션을 개발할 때는 가능한 한 가장 단순한 해결책을 찾고, 필요할 때만 복잡도를 높이는 것

  • 경우에 따라 에이전트형 시스템을 아예 구축하지 않는 것이 더 나을 수도 있다.

    • 에이전트형 시스템은 종종 과제 수행 능력을 향상시키는 대신, 지연(latency)비용(cost)을 감수해야 하는 구조이므로, 이러한 트레이드오프가 타당한지를 충분히 고려해야 함
  • 복잡성이 불가피한 상황에서는, 워크플로우(workflows)정의된 과업을 예측 가능하고 일관되게 수행하는 데 적합함

  • 에이전트(agents)유연성과 LLM 기반의 의사결정이 요구되는 대규모 작업에 더 적합한 선택

  • 대부분의 애플리케이션에서는, 단일 LLM 호출을 검색(retrieval)in-context 예시로 최적화하는 것

3. 프레임워크는 언제, 어떻게 사용해야 할까?

  • 에이전트형 시스템을 더 쉽게 구현할 수 있도록 도와주는 다양한 프레임워크
    • LangChain의 LangGraph: LangGraph
    • Amazon Bedrock의 AI Agent 프레임워크: AI Agent Framework
    • 드래그 앤 드롭 방식의 GUI 기반 LLM 워크플로우 빌더인 Rivet: Rivet
    • 복잡한 워크플로우를 구축하고 테스트할 수 있는 또 다른 GUI 도구인 Vellum: Vellum
  • 프레임워크는 LLM 호출, 도구 정의 및 파싱, 호출 연결 등 표준적인 저수준 작업들을 간소화하여 쉽게 시작할 수 있도록 도와줌
  • 추상화 계층을 추가해 내부 프롬프트나 응답을 가리는 경우가 많아, 디버깅을 어렵게 만들 수 있음
  • 간단한 구성으로 충분한 상황에서 불필요한 복잡성을 유도할 가능성도 있음
  • 처음에는 LLM API를 직접 사용하는 것을 권장함 -> 많은 패턴은 몇 줄의 코드만으로도 구현할 수 있음
  • 프레임워크를 사용할 경우에도, 반드시 내부 코드의 동작 원리를 이해한 상태에서 사용하는 것이 좋음
  • 프레임워크 내부 작동 방식에 대한 잘못된 가정은 고객 오류의 흔한 원인 중 하나

4. 참고

댓글남기기