이번 포스트는 LLM 기반의 Autonomous Agent(이하 자율 에이전트)에 대해서 설명해보고자 한다.

자율 에이전트는 지시없이 일련의 복잡한 작업목적을 갖고 수행할 수 있는 인공 지능(AI) 시스템을 말한다.

사람이 직접 제어하지 않아도 스스로 작동하며, 자신의 행동에 대한 정보를 스스로 생성하고 스스로 판단하는 능력을 갖추고 있다. 즉, 환경과 상호작용하면서 어떤 상태나 사건에 대해서 의도된 결과가 예측되는 액션을 자율적으로 수행이 가능하다.

1980년대부터 로드니 브룩스, 앨런 뉴웰, 허버트 사이먼 등 인공지능의 발전에 크게 기여한 여러 학자들의 연구에 기반을 두고 다양한 형태와 목적으로 인공지능(AI), 로봇공학, 컴퓨터 과학 등 여러 분야에서 점진적으로 발전해왔고 현재도 그 정의와 범위가 계속해서 발전하고 확장되고 있는 개념이다.

자율 에이전트는 크게 4가지 구성요소들이 다음과 같은 Flow로 유기적으로 연결되어 있다.

  • Planning 📝
    • Subgoal and decomposition: 복잡한 문제를 작은 subtask들로 나누고 목표를 달성하기 위한 (효율적인) 우선순위 할당
    • Reflection and refinement: 자기 비판과 반성을 통한 계획 개선
  • Memory 🧠
    • Short-term memory: 새로운 정보를 학습하고 기존 지식과 연결짓는 작업
    • Logn-term memory: 과거의 경험과 지식을 저장하고 필요할 때 꺼내서 사용
  • Tool use 🔧
    • 웹 검색, 계산, 이미지 생성 등 주어진 도구나 API를 상황에 맞게 적절히 활용
    • 모델이 현재의 무게에서 누락된 정보를 얻을 수 있도록 하는 것이 목적 (더 복잡한 작업을 가능토록)
  • Action 🏃‍♂️
    • 환경과 상호작용하면서 의도한 결과를 생성 (계획을 수행)

OpenAI의 매니저인 Lillan Weng은 아래와 같은 한계들을 자율 에이전트의 도전과제로 두고 있다.

  • 유한한 컨텍스트 길이: 에이전트가 과거 정보나 자세한 지시사항을 포함시키는 데 한계가 있다.
  • 장기 계획 및 작업 분해의 어려움: 예상치 못한 오류에 대응하는 계획 조정이 어렵다.
  • 자연어 인터페이스의 신뢰성 문제: 형식 오류나 명령 불이행 등의 문제가 발생할 수 있다.

References

Blog of Lilian Weng, the Manager of the OpenAI