회사에서 AI Agent 스터디를 하고 있습니다. 그런데 공부할수록 해결되지 않은 의문이 있었습니다.
1. Agent와 AI 모델의 차이는 무엇인가?
- 모델을 여러 개 붙여 쓴 걸 Agent라고 하는 건가?
- 워크플로우로써의 Agent만을 Agent라고 할 수 있는 것인가?
2. Agent는 언제 써야 할까?
- 언제 모델을 쓰고, 언제 Agent를 써야 효과적/효율적일까?
질문을 해결하기 위해 두 자료를 읽고 정리하였습니다. 제목마다 원문 링크를 달아 두었으며, 직접 전문을 읽어보시면 또다른 인사이트를 얻으실 수 있을 것 같습니다.
Anthropic의 Building effective agent (24.12.20)
Google의 Agents (24.9)
자료 정리 이후 포스팅 마지막 부분에는 다른 분의 글과 AI Agent 공부하실 때 도움 받으실 수 있는 내용도 추가해 두었습니다. 저와 같은 질문을 가지고 계셨던 분들께 이 포스팅이 도움 되기를 바랍니다 🙌
특징 | 워크플로우(Workflows) | 에이전트(Agents) |
---|---|---|
작업 흐름 | LLM과 도구들이 미리 정의된 코드 경로를 통해 조율되는 시스템 | LLM이 스스로의 프로세스와 도구 사용을 동적으로 조정, 결정하여 작업을 수행하는 시스템 |
LLM의 역할 | 고정된 규칙을 따름 | - 스스로 작업을 제어 - 상황에 따라 의사결정과 작업 경로 변경 - LLM이 어떻게 목표를 달성할지 스스로 결정 |
자율성 | 낮음 | 높음 |
적합한 작업 | 예측 가능한 작업, 단순하고 반복적인 작업 | 복잡하고 필요한 단계 수 예측이 어렵거나 불가능한 작업, 유동적인 작업 |
예시 | - 챗봇이 고객 문의를 처리하기 위해 미리 정의된 질문-응답 경로를 따르는 경우 - 데이터 파이프라인에서 미리 정의된 순서로 LLM이 데이터를 처리하도록 설계된 시스템 | - LLM이 특정 도구를 호출하거나, 새로운 계획을 세워 문제를 해결하는 자율적인 AI 에이전트 - 사용자가 던진 모호한 질문에 따라 적절한 리소스를 탐색하고 최적의 답변을 생성하는 시스템 |
Building block을 추가하여 세 가지를 비교합니다. 아래와 같이 이해하시면 좋을 것 같습니다.
Building block ▶ LLM 단독 활용
Workflows ▶ LLM 여러 개를 엮어 워크플로우 생성
Agents ▶ LLM의 자율적 계획 및 운영
Building block: The augmented LLM
스스로 검색 쿼리 생성, 적절한 툴 선택, 유지할 정보 결정
Workflows
Prompt chaining, Routing, Parallelization, Orchestrator-workers, Evaluator-optimizer
![]() | ![]() | ![]() |
![]() | ![]() |
인간의 명령으로 작업을 시작, 작업이 명확해지면 에이전트는 독립적으로 계획하고 운영하며, 추가 정보나 판단을 위해 인간에게 확인하기도 합니다.
📍 Summary
LLM 분야의 성공은 가장 정교한 시스템을 구축하는 것이 아닙니다. 필요에 맞는 올바른 시스템을 구축하는 것이 중요합니다. 간단한 프롬프트로 시작하여 종합적인 평가를 통해 최적화하고 더 간단한 솔루션으로 해결할 수 없는 경우에만 다단계 에이전트 시스템을 추가하는 것이 좋습니다.
에이전트를 구현할 때, Anthropic은 세 가지 핵심 원칙을 따르도록 권합니다.
- 에이전트 설계에서 간단함을 유지하십시오.
- 에이전트의 계획 단계를 명시적으로 보여줌으로써 투명성을 우선시하십시오.
- 도구 문서화와 테스트를 통해 에이전트-컴퓨터 인터페이스(ACI)를 신중하게 설계하십시오.
에이전트가 외부 시스템과 상호작용할 수 있도록 도와주는 도구(Tools)에 대해 설명합니다. 여기서는 언어 모델이 외부 세계와 직접 상호작용할 수 없는 한계를 해결하기 위해 다양한 도구들을 소개하며, 그 중 확장(Extensions), 기능(Functions), 데이터 저장소(Data Stores) 등을 활용하여 에이전트가 실시간으로 외부 시스템과 연결되어 작업을 수행할 수 있게 만드는 방법을 다룹니다.
LangChain 활용 에이전트 예제 제공
Vertex AI agents 구축 프레임워크 예시 제공
1. 에이전트의 역할: 에이전트는 실시간 정보에 접근하고, 행동을 제시하며, 복잡한 작업을 자율적으로 계획하고 실행할 수 있습니다. 에이전트는 여러 개의 언어 모델을 활용해 상태 전환 시기와 방법을 결정하고, 모델 단독으로 수행하기 어려운 복잡한 작업을 외부 도구를 통해 완수합니다.
2. 에이전트의 작동 핵심: 에이전트의 핵심은 오케스트레이션 계층으로, 이는 추론, 계획, 의사결정을 구조화하고 에이전트의 행동을 유도합니다. ReAct, Chain-of-Thought, Tree-of-Thoughts와 같은 다양한 추론 기법은 오케스트레이션 계층이 정보를 수집하고 내부 추론을 수행하며, 신뢰성 있는 결정을 내리거나 반응을 생성할 수 있도록 합니다.
3. 도구의 역할: Extensions, Functions, Data Stores는 에이전트가 외부 시스템과 상호작용하고 훈련 데이터 이상의 지식에 접근할 수 있게 하는 도구입니다. Extensions는 외부 API와의 연결을 제공하며, Functions는 개발자가 세밀한 제어를 할 수 있도록 도와줍니다. Data Stores는 구조화된 데이터나 비구조화된 데이터에 접근할 수 있게 하여 데이터 기반 애플리케이션을 구현할 수 있도록 합니다.
4. 미래의 에이전트: 에이전트의 미래는 더욱 진화된 도구와 추론 능력 향상으로 더 복잡한 문제를 해결할 수 있는 가능성을 열어줍니다. 에이전트 체이닝 전략이 중요한 역할을 할 것입니다. 각기 다른 분야나 작업에서 뛰어난 성과를 내는 전문화된 에이전트를 결합한 전문가 에이전트의 혼합 접근 방식은 다양한 산업과 문제 영역에서 탁월한 결과를 도출할 수 있습니다.
5. 반복적인 접근법: 복잡한 에이전트 아키텍처를 구축하는 데에는 반복적인 접근이 필요합니다. 실험과 개선을 통해 특정 비즈니스 사례와 조직의 요구에 맞는 해결책을 찾는 것이 중요합니다. 기본 모델의 생성적 특성으로 인해 모든 에이전트는 다르게 생성됩니다. 그러나 각 구성 요소의 강점을 활용함으로써 언어 모델의 능력을 확장하고 실제 가치를 창출하는 애플리케이션을 만들 수 있습니다.
Gim GyungJin on LinkedIn: Toolformer: Language Models Can Teach Themselves to Use Tools
내가 Agent를 사용하고자 한다면, 내가 풀고자 하는 use case가 greedy한 문제인지 static한 문제인지 문제정의부터 명확하게 하는 것이 필요하다. static한 문제일수록 고전적인 AI solution의 완성도가 더 높고, Agent가 풀고자 하는 dynamic workflow와 방향성이 다를 가능성이 크기 때문이다.
AI 에이전트 프레임워크, 런치패드, 도구, 튜토리얼 및 리소스 목록 제공
부족한 부분이 있을 수 있습니다. 댓글 환영합니다 🤭 여러분의 인사이트가 있다면 공유해 주세요 ❗