AI 에이전트 인프라는 모델이 실제 시스템에서 작업을 완료하게 해주는 기반입니다. 에이전트 루프, 도구, 호출자 ID, 권한, 영속 상태, 코드 실행, 애플리케이션 백엔드, 텔레메트리가 여기에 포함됩니다. 모델은 이런 요소 없이도 계획할 수 있지만 안정적으로 작업할 수는 없습니다.
각 계층에 역할을 하나씩 부여하면 스택을 이해하기 쉬워집니다. 두 계층이 같은 쓰기 작업을 재시도하거나 같은 상태를 저장하거나 인가를 함께 결정하면 장애를 재현하기 어려워집니다.
에이전트 스택의 일곱 가지 구성 요소
모델과 에이전트 루프
모델은 다음 작업을 제안합니다. 에이전트 루프는 컨텍스트와 도구를 제공하고 결과를 기록하며 실행을 언제 끝낼지 결정합니다. 프레임워크로 이 루프를 구현할 수 있지만 런타임에는 시간, 도구 호출, 비용에 대한 명시적인 한도가 여전히 필요합니다.
이 구분은 모델을 바꿀 때 권한 규칙이나 복구 동작까지 암묵적으로 바뀌지 않게 합니다. 이런 제어는 프롬프트 밖에 있어야 합니다.
도구와 통합
도구는 에이전트 루프를 데이터베이스, API, 파일, 브라우저, 내부 서비스에 연결합니다. 유용한 도구는 작업 하나를 명확히 설명하고 입력을 검증하며 안정된 결과와 호출자가 대응할 수 있는 오류를 반환합니다. MCP 도구 명세는 탐색과 호출을 표준화하지만, 명세에 맞는 MCP 서버라도 모호하거나 안전하지 않은 도구를 포함할 수 있습니다.
실제 설계의 핵심은 도구 경계입니다. 에이전트가 안정적으로 사용할 수 있는 MCP 도구 설계 가이드에서는 이름, 스키마, 결과가 도구 선택에 미치는 영향을 설명합니다.
ID와 정책
모든 에이전트 세션에는 다운스트림 서비스가 인가할 수 있는 ID가 필요합니다. 도구 설명에는 작업이 읽기 전용이라고 적혀 있을 수 있지만, 실제 데이터 소유 서비스가 그 규칙을 강제해야 합니다. 공유 관리자 키는 작업 주체를 알 수 없게 하고 비밀 하나가 유출됐을 때의 영향을 키웁니다.
OWASP의 Excessive Agency 지침은 확장 기능, 권한, 자율성을 제한하라고 권고합니다. 실제로는 범위가 좁은 자격 증명을 사용하고, 영향이 큰 작업 전에 승인을 요구하며, 실행 중인 에이전트를 중지하거나 권한을 회수할 별도 수단을 마련해야 합니다.
상태와 메모리
상태는 워크플로가 수행한 작업을 기록합니다. 메모리는 이후 판단에 도움이 될 수 있는 정보를 제공합니다. 둘은 겹치지만 서로 대신할 수 없습니다. 주문 ID와 결제 결과는 영속 상태에 저장해야 합니다. 질문에 답할 때 참고할 검색 문단은 컨텍스트나 메모리에 속합니다.
Postgres 하나로 구조화된 상태와 의미 기반 검색을 모두 처리할 수 있는 경우가 많습니다. 에이전트 메모리를 위한 Postgres와 벡터 데이터베이스 비교에서 전용 벡터 서비스가 필요한 시점을 설명합니다.
내구성 실행과 샌드박싱
내구성 실행은 장애가 발생해도 완료된 부수 효과를 반복하지 않고 워크플로를 재개합니다. 샌드박싱은 신뢰할 수 없는 코드가 실행 중 접근할 수 있는 범위를 제한합니다. 둘은 서로 대체하지 못합니다. 샌드박스 안에서도 결제가 중복될 수 있고, 내구성 워크플로가 악성 코드를 안정적으로 재개할 수도 있습니다.
Temporal의 내구성 실행 모델은 워크플로 진행 상황을 저장하고 장애 후 결정론적 코드를 재생합니다. 반면 코드 샌드박스에는 파일 시스템, 프로세스, 네트워크, 비밀 값, 수명 제한이 필요합니다. 프로덕션 에이전트 체크리스트는 두 제어를 하나의 릴리스 과정으로 묶습니다.
애플리케이션 백엔드
애플리케이션에는 여전히 데이터베이스, 인증, 오브젝트 스토리지, 큐, 호스팅, 외부 API가 필요합니다. 에이전트용 백엔드는 구조화된 프로비저닝과 범위가 제한된 자격 증명을 추가해, 코딩 에이전트가 생성 코드에 공급자 비밀 값을 모으지 않고도 리소스를 만들고 운영하게 합니다.
Cohesivity는 이 계층에 해당합니다. 에이전트는 격리된 테넌트를 만들고 애플리케이션에 필요한 백엔드 리소스를 요청한 뒤 나중에 사람에게 소유권을 넘길 수 있습니다. Cohesivity가 모델을 대신하거나 애플리케이션의 비즈니스 규칙을 결정하지는 않습니다.
텔레메트리와 평가
텔레메트리는 실행 중 발생한 일을 기록합니다. 평가는 정해진 작업 모음에서 동작이 허용 범위를 유지하는지 확인합니다. 유용한 트레이스는 사용자 요청, 모델 호출, 도구 호출, 정책 결정, 다운스트림 작업을 연결합니다. 유용한 평가는 모델, 프롬프트, 도구, 정책이 바뀐 뒤 대표적인 성공과 실패 사례를 다시 실행합니다.
OpenTelemetry의 GenAI 규칙은 모델 및 에이전트 스팬에 공통 필드를 제공합니다. 공통 어휘를 제공할 뿐, 기록하기에 안전하고 유용한 식별자와 결과는 애플리케이션이 결정해야 합니다.
프로덕션 워크플로 하나에 필요한 최소 스택
| 영역 | 최소 구현 | 방지하는 실패 |
|---|---|---|
| 도구 접근 | 결과 범위가 제한된 작업 단위의 타입 지정 도구 | 잘못된 도구 선택과 사용할 수 없는 출력 |
| ID | 에이전트 또는 세션별 범위 제한 자격 증명 하나 | 광범위한 접근과 불분명한 작업 주체 |
| 상태 | 영속 작업 및 체크포인트 기록 | 진행 상황 손실과 부수 효과 중복 |
| 실행 | 시간, 도구 호출, 비용, 네트워크 한도 | 무한 루프와 통제되지 않은 코드 |
| 복구 | 멱등성과 결과 조정 | 결과를 알 수 없는 쓰기 작업의 반복 |
| 텔레메트리 | 모델, 도구, 백엔드를 잇는 단일 트레이스 | 재구성할 수 없는 장애 |
| 평가 | 고정된 작업과 합격 기준 | 성공한 데모에 가려진 회귀 |
각 행마다 별도 공급자를 쓸 필요는 없습니다. 다만 각 동작의 책임자는 하나로 명확해야 합니다.
공급자를 선택하기 전에 워크플로 하나를 매핑하세요
쓰기 작업이 반복되거나 잘못된 자격 증명을 사용했을 때 피해가 가장 큰 워크플로를 고르세요. 사용자 요청부터 최종 백엔드 효과까지 경로를 그립니다. 모델, 도구, ID, 상태 기록, 실행 경계, 승인, 트레이스가 나타나는 지점에 각각 표시하세요.
누락된 표시가 일반적인 스택 다이어그램보다 더 유용합니다. 아래 프롬프트는 프로젝트를 변경하지 않고 코딩 에이전트가 이 지도를 만들게 합니다.