21P by neo 1달전 | ★ favorite | 댓글 2개

에이전트란 무엇인가?

  • 에이전트의 정의는 다양하지만 두 가지로 나눌 수 있음:
    • 워크플로우(Workflows): 사전 정의된 코드 경로를 통해 LLM과 도구가 조율됨
    • 에이전트(Agents): LLM이 작업 수행 및 도구 사용을 동적으로 제어
  • Anthropic에서는 이 두 가지를 모두 **에이전트 시스템(Agentic Systems)**으로 분류하며, 유연성과 자율성에서 중요한 차이를 둠

언제 에이전트를 사용해야 하는가?

  • 단순한 솔루션이 가능하다면 복잡성을 최소화하는 것이 중요함
  • 워크플로우: 예측 가능한 작업을 처리할 때 유용하며, 일관성과 안정성 제공
  • 에이전트: 대규모에서 유연성과 모델 중심 의사결정이 필요할 때 적합
  • 대부분의 경우, 단순히 LLM 호출을 최적화하거나 컨텍스트 예제를 활용하는 것으로 충분함

프레임워크 사용 가이드

  • 대표 프레임워크:
  • 프레임워크의 장점:
    • LLM 호출, 도구 정의, 호출 체인 간소화
  • 단점:
    • 복잡성을 추가하거나 디버깅을 어렵게 할 수 있음
  • 추천: 직접 LLM API로 시작하고, 프레임워크를 사용하더라도 기저 코드를 이해해야 함

에이전트 시스템 구성 요소

증강된 LLM (Augmented LLM)

  • 특징: 검색, 도구 사용, 메모리 기능을 추가로 갖춤
  • 구현 방법:
    • Model Context Protocol을 사용하여 타사 도구와 통합 가능
    • 간단하고 문서화된 인터페이스 제공

주요 워크플로우 패턴

  • 프롬프트 체이닝(Prompt Chaining)
    • 작업을 고정된 하위 단계로 나눠 순차적으로 처리
    • 사용 사례:
      • 마케팅 문구 생성 후 번역
      • 문서 초안 작성 후 검토
  • 라우팅(Routing)
    • 입력 데이터를 분류해 적합한 작업으로 전달
    • 사용 사례:
      • 고객 지원 문의 분류 (일반 질문, 환불 요청, 기술 지원)
      • 간단한 질문은 작은 모델로, 복잡한 질문은 더 강력한 모델로 라우팅
  • 병렬화(Parallelization)
    • 작업을 분리하거나 동일 작업을 여러 번 실행
    • 사용 사례:
      • 코드 취약점 검토 시 여러 프롬프트 사용
      • 사용자 입력을 분리하여 필터링 및 응답
  • 오케스트레이터-워커(Orchestrator-Workers)
    • 중앙 LLM이 작업을 분해해 워커 LLM에 할당하고 결과를 종합
    • 사용 사례:
      • 복잡한 코딩 작업에서 파일 수정
      • 다중 정보 검색 작업
  • 평가자-최적화(Evaluator-Optimizer)
    • LLM 응답을 평가하고 피드백을 제공해 반복적으로 개선
    • 사용 사례:
      • 문학 번역에서 번역 품질 개선
      • 다중 검색 및 분석 작업

에이전트

  • 에이전트는 작업을 계획하고 독립적으로 실행, 필요 시 인간과 상호작용
  • 특징:
    • 도구 사용을 통해 환경으로부터 "진실"을 얻어 진행 상황 평가
    • 작업 중 검사 및 중단 조건 설정 가능
  • 사용 사례:
    • 복잡한 코딩 에이전트
    • Claude가 컴퓨터에서 작업을 수행하는 구현

패턴 결합 및 사용자 정의

  • 위 패턴은 특정 상황에 맞게 조정 및 결합 가능
  • 복잡성은 결과 개선이 입증될 때만 추가해야 함

요약

  • LLM 분야에서 성공은 가장 복잡한 시스템을 구축하는 것이 아니라, 필요에 맞는 적합한 시스템을 만드는 것에 달려 있음
  • 간단한 프롬프트로 시작해 평가를 통해 최적화하며, 단순한 솔루션으로 부족할 때만 다단계 에이전트 시스템 추가를 고려해야 함
  • 에이전트 구현 시 핵심 원칙
    1. 단순성 유지: 에이전트의 설계를 간단하게 유지
    2. 투명성 우선: 에이전트의 계획 단계를 명확히 드러냄
    3. 에이전트-컴퓨터 인터페이스(ACI) 품질 개선: 도구 문서화와 테스트를 철저히 수행
  • 프레임워크 활용과 구현 전략
    • 프레임워크는 초기 구현에 유용하나, 추상화 계층을 줄이고 기본 구성 요소로 시스템을 구축하는 것도 고려해야 함
    • 위 원칙을 따르면, 강력하면서도 신뢰할 수 있고 유지관리 가능한 에이전트를 만들 수 있음

고객 사례: 실무에서의 에이전트 활용

  • A. 고객 지원
    • 자연스러운 대화 흐름과 외부 데이터 통합을 통해 효과적인 해결책 제공
    • 장점:
      • 성공적 해결 비율로 측정 가능
      • 사용량 기반 가격 모델 적용 가능
  • B. 코딩 에이전트
    • 코드 솔루션은 자동화된 테스트를 통해 검증 가능
    • 장점:
      • 테스트 결과를 피드백으로 활용
      • 문제 공간이 명확하고 구조적임
  • C. 도구 설계 및 최적화
    • LLM의 도구 사용 방식을 고려해 설계
    • 추천 방법:
      • 직관적이고 간결한 매개변수 이름 사용
      • 테스트 및 반복적 개선
      • 도구 정의에 예제, 가장자리 사례 포함

로우코드에 낮설게 하기가 적용된 것 같은데 데이터 스키마, 버전관리 없이는 변경추적이 안될겁니다

얕은 경험으로는 외관상 함수형 프로그래밍의 함수를 결합하는 느낌인데, 함수의 I/O (파라미터, 리턴 타입)이 뭐가 될지 모르는 혼돈의 프로그래밍? 같았습니다..
하면서 끊임 없이 드는 생각은 이걸 굳이 해야하나..? 이렇게까지 지원해야 하나..
아직까진 에이전틱 시스템이 꼭 필요한 분야가 뭘지 확 체감되진 않네요