Agent State Machine은 에이전트의 현재 상태와 다음 전이를 명시적으로 정의하는 방식입니다. 프롬프트 중심 설계보다 훨씬 예측 가능하고, 디버깅과 운영이 쉽습니다.
실무에서는 LangGraph, Temporal, Trigger.dev, Multi-Agent Orchestration, Human in the Loop와 함께 보면 가장 잘 맞습니다.
개요 #
상태 기계는 “지금 무엇을 하고 있는가"를 코드로 남깁니다. 에이전트가 입력을 받으면, 관찰, 판단, 실행, 검토 같은 상태를 거치며 이동합니다.
왜 중요한가 #
상태를 명시하지 않으면 에이전트는 자유도가 높아지는 대신 운영이 어려워집니다.
- 중간 단계가 보이지 않는다
- 예외 처리 경로가 흐려진다
- 승인과 재시도 분기가 섞인다
- 같은 입력에도 동작이 들쑥날쑥해진다
상태 기계는 이 문제를 줄입니다.
설계 방식 #
기본 원칙은 단순합니다.
- 상태를 적게 시작한다
- 전이 조건을 명시한다
- 종료 상태를 확실히 둔다
- 예외 상태를 별도로 둔다
- 사람이 개입하는 상태를 따로 분리한다
LangGraph는 상태 전이를 표현하는 데 적합하고, Temporal은 내구성 있는 실행과 재시도에 강합니다. Trigger.dev는 비동기 흐름을 붙이기 좋습니다.
아키텍처 도식 #
체크리스트 #
- 모든 상태가 이름으로 정의되어 있는가
- 각 전이 조건이 테스트 가능한가
- 실패 상태가 별도로 존재하는가
- 승인 상태가 안전하게 분리되어 있는가
- 관측성 도구로 현재 상태를 바로 볼 수 있는가
결론 #
Agent State Machine은 에이전트를 작은 규칙들로 안정화하는 방법입니다. 복잡한 에이전트일수록 상태를 줄이는 게 아니라 상태를 명시해야 합니다.