Agentes 101 - 02: El ciclo del agente como State Machine (y Hierarchical State Machines)
개요
LLM 에이전트의 Think-Act-Observe 주기는 명시적이고 제어 가능하며 확장 가능한 모델링을 위해 상태 기계(State Machine)로 간주될 수 있습니다.
주요 내용
* 에이전트 주기와 상태 기계: 에이전트의 기본적인 '작업 수행 - 추론 - 도구 사용 - 결과 관찰 - 다음 단계 결정' 흐름은 유한 상태 기계(Finite State Machine, FSM)로 모델링될 수 있으며, 각 상태(thinking, acting, observing, done, error)는 추론, 실행, 관찰, 완료, 오류와 같은 단계를 나타냅니다.
* 도구의 역할: 도구는 에이전트의 상태를 변화시키는 액션으로, 'thinking' 상태에서 벗어나 'acting' 상태로 진입하게 하고, 실행 후 관찰을 통해 상태를 업데이트하며 다음 상태 전이를 결정합니다.
* 계층적 상태 기계 (Hierarchical State Machines, HSM): 복잡한 에이전트의 경우, FSM은 상태가 많아지고 추적하기 어려워질 수 있습니다. HSM은 하나의 상태가 다른 완전한 상태 기계를 포함하는 방식으로, 개발자가 '연구 모드'나 '구현 모드'와 같이 경험 많은 개발자가 복잡한 작업을 수행하는 방식과 유사하게 에이전트의 흐름을 계층적으로 구성할 수 있게 합니다.
* LangGraph에서의 구현: LangGraph는 StateGraph를 통해 FSM을 구현하며, Subgraph 기능을 활용하여 HSM을 구현합니다.
* Shared State 패턴: Subgraph와 부모 그래프가 상태 키를 공유합니다.
* Isolated State 패턴: Subgraph는 자체 스키마를 가지며, 상태 변환이 명시적으로 이루어집니다.
* HSM의 장점: LangGraph의 Subgraph는 각 하위 기계의 상태를 격리하고, 오류 후 상태 복구, 하위 프로세스 레벨에서의 Human-in-the-loop 적용을 가능하게 하여 실제 시스템 구축에 강력한 기능을 제공합니다.
* 구체화 시점: 프로토타입이나 간단한 에이전트의 경우 FSM으로 충분하지만, 에이전트가 복잡해지거나 명확한 모드가 필요할 때 HSM으로 전환하는 것이 자연스러운 다음 단계입니다.
시사점
LLM 에이전트의 동작 주기를 상태 기계, 특히 계층적 상태 기계로 이해하고 LangGraph와 같은 프레임워크를 활용하여 구현하는 것은 에이전트의 설계, 디버깅 및 운영 방식을 개선하고 복잡한 시스템을 더 명확하고 확장 가능하게 만드는 데 중요한 접근 방식입니다.
댓글
GitHub Discussions