https://www.youtube.com/live/OOdtmCMSOo4


What are future AI Application like?:

  • 미래의 AI Application 은 Agentic System 일 것이라고 생각함. 외부와 상호 작용하고, 인간의 행동을 모방해서 복잡한 처리를 할 수 있는 시스템.
  • examples:
    • personal assistants
    • Software Agents

 

Agentic AI Framework Desiderata:

  • Agentic Abstraction:
    • Agent = Diverse role of person + LLM models + Tools (e.g Python, Terminal, Calculator, Database, Search Engine, API)
  • Multi-Agent orchestration:
    • Agent 들의 소통하는 방식을 결정하는 것.
    • Static/Dynmaic:
      • Static 은 정적인 workflow 를 말함. 일관된 순서로 task 를 실행하는 것.
      • Dynamic 은 모든 상황에 대해서 다 알 수 없을 때 즉흥적으로 판단 또는 작업 계획을 내릴 수 있도록 하는 것. (기본적으로 예상하기 힘든 상황, 게임 플레이는 dynamic 으로 해야할듯)
      • 반면 Static 구조로 목표를 설계해놓고, 목표를 이루는 방법을 Dynamic 으로 한다면?
      • Flexibility vs Controlbility (Static 이 좀 더 안정적이고 일관적인 기대값을 낼 것, Dynamic 은 말 그대로 유연함)
    • NL/PL:
      • Natural Language (NL, 자연어):
        • 에이전트 간 메시지나 명령을 사람이 읽을 수 있는 자연어로 교환하는 방법
        • 설계가 단순하고, 사람과 에이전트가 직관적으로 상호작용하기 좋음.
        • 모호성(ambiguity)이 있을 수 있다.
      • Programming Language (PL, 프로그래밍 언어):
        • 에이전트가 코드를 통해 서로 간에 요청/응답을 주고받거나, 정해진 함수나 API 기반의 호출 구조로 상호작용하는 방법.
        • 엄격하고 명세화된 프로토콜을 사용해 모호성이 적고, 테스트/디버깅이 용이하고, 시스템 신뢰도와 예측 가능성이 높다.
        • 요구사항 변경 시 프로토콜 재설계가 필요하며, 자연어만큼 유연하지 않음.
    • Context sharing/isolation:
      • Context sharing:
        • 모든 Agent 들 간의 상태를 공유하는 것. 여러 에이전트가 동일하거나 일부 겹치는 컨텍스트(상태, 데이터, 작업 목표 등)를 함께 사용하여 협력하는 방식
        • 에이전트 간 협력이 쉬워지고, 중복 계산을 피할 수 있으며, 서로의 상태를 통해 시너지를 낼 수 있다.
        • 민감한 정보가 의도치 않게 공유될 수 있고, 병목 현상이나 동기화 문제가 발생할 가능성이 있음.
      • Isolation:
        • 계층적 구조와 같이 상태를 구별 시키는 것.
        • 보안(privacy)과 독립성이 높아지고, 에이전트 개별 단위로 테스트/디버깅하기 쉽다.
    • Cooperation/competition:
      • Cooperation(협업):
        • 여러 에이전트가 공동의 목표를 위해 서로 도움을 주고받으며 문제를 해결하는 방식.
        • 모든 에이전트가 협업하려면 조율과 커뮤니케이션 오버헤드가 늘어날 수 있음.
      • Competition(경쟁):
        • 제한된 자원을 두고, 혹은 특정 목표 달성을 위해 서로 경쟁적으로 문제를 해결하는 방식
        • 더 나은 자원 효율성을 맏늘 수 있음.
    • Centralizaed/Decentralized:
      • Centralized(중앙 집중):
        • 오케스트레이션(조정)의 주체가 되는 중앙 컨트롤러나 메타 에이전트가 모든 에이전트를 지휘/관리하는 방식
        • 전체 시스템 상태를 손쉽게 파악할 수 있어 스케줄링이 간단함.
      • Decentralized(분산):
        • 모든 에이전트가 동등한 지위를 가지며, 특정 중앙 컨트롤러 없이 분산된 형태로 상호작용하고 자율적으로 조정을 수행
        • 전체 시스템 상태를 통합적으로 파악하기 어려워지고, 복잡한 조정이 있을 수 있음.
    • Intervention/automation:
      • Intervention(개입):
        • 사람이 혹은 상위 레벨의 컨트롤 시스템이 에이전트 동작 과정에 직접 개입하여 승인(approval) 혹은 조정(intervention)하는 방식
        • 문제가 되거나 위험할 수 있는 의사결정에 사람이 개입해 안전망(Safeguard)을 확보할 수 있음.
      • Automation(자동화):
        • 에이전트가 자율적으로 의사결정을 하고, 사람의 개입 없이 프로세스 전반을 진행하며 실행 결과만을 보고하는 방식
        • 빠른 결정을 내릴 수 있고, 대규모 자동화가 가능해 시스템 운영 비용이 절감될 수 있음.
        • 의사결정 과정을 사람이 놓칠 수 있어 신뢰성과 투명성 문제가 발생할 수 있음. 잘못된 자동화가 치명적 결과를 야기할 수 있다.
  • Effective implementation of agentic design pattern:
    • 아래의 디자인 패턴을 사용하기 전에 요구사항이 만족하는지 체크해야함.
    • Conversation:
      • 에이전트들이 상호 간의 프로토콜을 통해 협의를 하면서 문제를 풀어야 할 때
    • Prompting & Reasoning:
      • 복잡한 문제를 해결해야 할 때
      • CoT, Reflextion, ReAct, ToT 그리고 Monte Carlo tree search-based methods
    • Tool use:
      • LLM이나 에이전트가 직접 해결하기 어려운 전문 작업(예: DB 액세스, 시스템 제어, 외부 API 호출)을 수행해야 할 때
    • Planning:
      • 업무가 여러 단계로 이루어져 있고, 중간 산출물을 피드백하며 최종 목표를 달성해야 할 때.
    • Integration Multiple Models, Modalities and Memory:
      • 하나의 에이전트가 여러 모델(LLM, Computer Vision, 음성 인식 등), 다양한 입력 모달리티(텍스트, 음성, 이미지, 영상 등), 그리고 메모리(컨텍스트 기록, 장기지식 저장)를 통합하여 작동하는 디자인 패턴임.
      • 에이전트가 다양한 형식의 데이터를 동시에 처리해야 하거나, 맥락을 장기적으로 기억해야 하는 경우 또는 이미지, 음성, 텍스트 등 복합적인 입력으로부터 종합적인 의사결정이 필요한 상황.
  • Support Diverse application needs:

+ Recent posts