1P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 12 Factor Agents는 신뢰할 수 있는 LLM 애플리케이션을 구축하기 위한 원칙을 제시함
  • AI 에이전트 프레임워크를 사용해본 경험을 바탕으로, 대부분의 제품이 진정한 에이전트가 아님을 발견함
  • 12 Factor Agents는 LLM 기반 소프트웨어를 고객에게 제공할 수 있을 만큼 충분히 좋은 수준으로 만드는 방법을 탐구함
  • 12가지 요인은 LLM 소프트웨어의 신뢰성, 확장성, 유지보수성을 향상시키는 핵심 기술을 포함함
  • 모듈식 개념을 기존 제품에 통합하는 것이 고품질 AI 소프트웨어를 빠르게 제공하는 방법임

12 Factor Agents - 신뢰할 수 있는 LLM 애플리케이션 구축 원칙

  • AI 에이전트 프레임워크를 사용해본 경험을 바탕으로, 대부분의 제품이 진정한 에이전트가 아님을 발견함
  • 12 Factor Agents는 LLM 기반 소프트웨어를 고객에게 제공할 수 있을 만큼 충분히 좋은 수준으로 만드는 방법을 탐구함
  • 12가지 요인은 LLM 소프트웨어의 신뢰성, 확장성, 유지보수성을 향상시키는 핵심 기술을 포함함
  • 모듈식 개념을 기존 제품에 통합하는 것이 고품질 AI 소프트웨어를 빠르게 제공하는 방법임

요약: 12가지 요인

  • 자연어를 도구 호출로 변환: 자연어를 사용하여 도구를 호출하는 방법을 이해함
  • 프롬프트 소유: 프롬프트를 소유하고 관리하는 것이 중요함
  • 컨텍스트 윈도우 소유: 컨텍스트 윈도우를 소유하고 관리하는 것이 중요함
  • 도구는 구조화된 출력: 도구는 구조화된 출력으로 간주해야 함
  • 실행 상태와 비즈니스 상태 통합: 실행 상태와 비즈니스 상태를 통합하여 관리함

에이전트의 약속

  • DAG(Directed Acyclic Graph): 소프트웨어는 방향성 그래프로 표현될 수 있으며, DAG 오케스트레이터가 인기를 끌었음
  • 에이전트의 약속: 에이전트를 사용하면 DAG를 버리고 LLM이 실시간으로 경로를 결정하도록 할 수 있음
  • 에이전트는 루프로 작동: 에이전트는 LLM이 다음 단계를 결정하고, 도구 호출을 실행하며, 결과를 컨텍스트 윈도우에 추가하는 루프로 작동함

왜 12-factor agents인가?

  • 기존 프레임워크의 한계: 많은 SaaS 빌더들이 에이전트를 구축하려고 하지만, 기존 프레임워크의 한계로 인해 80% 이상의 품질을 달성하기 어려움
  • 모듈식 개념의 중요성: 모듈식 개념을 기존 제품에 통합하는 것이 고품질 AI 소프트웨어를 빠르게 제공하는 방법임

훌륭한 LLM 애플리케이션을 위한 디자인 패턴

  • 에이전트의 핵심 요소: 에이전트를 훌륭하게 만드는 핵심 요소가 존재하며, 프레임워크를 사용하면 대부분의 요소를 얻을 수 있음
  • 모듈식 개념의 통합: 모듈식 개념을 기존 제품에 통합하는 것이 고품질 AI 소프트웨어를 빠르게 제공하는 방법임

관련 리소스

  • Tool Use 팟캐스트: 2025년 3월 에피소드에서 관련 내용을 다룸
  • The Outer Loop: 관련 내용을 다루는 블로그
  • 웹 세미나: @hellovai와 함께 LLM 성능 극대화에 대한 웹 세미나 진행
  • 오픈 소스 에이전트: 이 방법론을 사용하여 OSS 에이전트를 구축함
Hacker News 의견
  • 매우 유익한 위키임. 감사하며, 꼭 사용할 것임. 나는 어제 막 출시한 "AI Agents framework"을 만들었음. 이 프레임워크는 액터 모델, 상태 기계, 그리고 관점 지향 프로그래밍을 기반으로 함. 특히 5번과 7번 포인트가 마음에 듦

    • 실행 상태와 비즈니스 상태를 통합하는 것
    • 자신의 제어 흐름을 소유하는 것
    • SecAI는 이러한 점을 잘 수행하며, 그래프 제어 흐름 라이브러리로서 LLM 호출이 그래프의 노드에 내장되어 있음. 협상, 취소, 상태 관계로 흐름이 강화되어 더 유기적임
    • 다른 프레임워크에서 종종 놓치는 것은 전용 개발 도구임. 실패를 프로그래밍하고, 모든 단계를 세부적으로 검사하며, 자동 데이터 내보내기와 간단한 통합을 제공함
    • 첫 번째 기술 데모를 출시했으며, 모든 개발 도구를 보여주는 참조 구현을 포함함
    • Send/Stop 버튼은 간단한 API로 시작/일시정지/재개를 가능하게 함. 네트워크 투명성을 가지고 있어 확장 가능함
  • 훌륭함. 몇 년 동안 이 작업을 하면서 나만의 교훈 목록을 만들었음. 가장 중요한 것은 가장 낮은 수준의 계획 루프를 소유하는 것임

    • 동적 계획이 있어도 괜찮지만, OODA 루프를 소유하고 해결책으로 수렴하는지 여부를 결정하는 휴리스틱을 가져야 함
    • 워크플로우 엔진을 내장하고, 모델이 그 엔진에서 실행되는 워크플로우 사양을 구축하도록 해야 함
  • 이 시점에 이 자료가 나와서 정말 다행임. 감사함

    • vvvv와 같은 오디오비주얼 샌드박스를 구상 중임. LM 또는 간단한 로컬 신경망 노드를 삽입하여 특정 작업을 수행하도록 하고, 출력이 매우 제한되도록 하는 아이디어임
    • 질문에서 답변으로의 흐름이 매우 매력적임. 다단계 파이프라인도 매우 흥미로움
  • DSPY와 같은 라이브러리가 factor-2에 어떻게 맞는지 궁금함

    • BAML을 사용하여 프롬프트를 생성하는 예시를 봄. 비구조화된 데이터에서 구조화된 정보를 추출하기 위해 프롬프트를 손으로 작성하는 것은 쉽지 않음
    • DSPY의 원시 프롬프트를 사용하는 것에 대해 어떻게 생각하는지 궁금함
  • 오래된 블로그 글이지만 프레임워크 패턴에 대한 내용이 내 경력 내내 공감됨. LLM은 프레임워크보다는 라이브러리로 사용하는 것이 좋음

    • 프레임워크는 더 매력적이고 판매하기 쉬우며, 잠금 효과와 추가 서비스로 이어짐
  • 훌륭함. 80%는 어렵게 배웠고, 나머지 20%는 가치 있는 읽을거리가 될 것임

    • LangGraph와 pydantic 스키마로 성공을 거둠. 다른 사람들이 유용하다고 생각하는 것이 궁금함
  • 또 하나: 확장 시 비용을 계획해야 함

    • 확장 시 비용이 많이 들 수 있으므로, 결정론적 구성 요소로 처리할 수 있는 것은 먼저 시도해야 함. 환각과 지연을 줄이고, 비용 절감에 큰 차이를 만들 수 있음
  • 원칙을 따르기 더 쉬워지려면 일관된 내러티브가 필요함. 실세계 예시를 사용하는 것이 좋음

  • HN 첫 페이지에 올라와서 매우 기쁨

  • BAML이 여기 있는 것을 보니 정말 멋짐. LLM을 함수로 취급하는 것에 100% 동의함