# 12-팩터 에이전트: 신뢰할 수 있는 LLM 애플리케이션 패턴

> Clean Markdown view of GeekNews topic #20381. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20381](https://news.hada.io/topic?id=20381)
- GeekNews Markdown: [https://news.hada.io/topic/20381.md](https://news.hada.io/topic/20381.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-17T18:32:37+09:00
- Updated: 2025-04-17T18:32:37+09:00
- Original source: [github.com/humanlayer](https://github.com/humanlayer/12-factor-agents)
- Points: 1
- Comments: 1

## Topic Body

- **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 에이전트를 구축함

## Comments



### Comment 37274

- Author: neo
- Created: 2025-04-17T18:32:39+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43699271) 
* 매우 유익한 위키임. 감사하며, 꼭 사용할 것임. 나는 어제 막 출시한 "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% 동의함
