<aside> 🔥
Agent의 세가지 구성 요소
에 대해서 구체적인 예시와 함께 알아봅니다.
</aside>
여러분들이 어떤 집사에게 “커피를 타와”라고 명령해본다고 생각해봅시다.
그러면 집사는 다음 3단계로 업무를 진행합니다.
여러분이 말한 **“커피를 타와”라는 말의 의미를 이해(natural language understanding)**합니다.
커피를 타오기 위한 절차를 **생각(reasoning)**하고 **계획(planning)**합니다. 절차는 다음과 같습니다.
주방에 간다. → 커피 머신을 이용한다. → 커피를 내린다. → 커피를 가져온다.
실제로 그 **행동(Action)**을 **수행(Execute)**합니다. 여기서 사용하는 **도구(tool)**은 커피 머신입니다. 다행히도 주방에 커피 머신이 있는 **환경(environment)**이라서 커피를 타올 수 있었습니다.
이 단계를 거쳐서 집사는 여러분에게 커피를 가져왔습니다.

당연히 커피가 좀더 맛있어지기 위한 단계도 포함되어 있을 겁니다. (출처 : https://youtu.be/84zkJa9xIVA?si=dEat8hLi3GTaXtrm )
이러한 “업무 프로세스(workflow)를 AI가 알아서 한다는 것”이야 말로 Agent의 핵심 개념입니다.
좀더 명확한 Agent의 정의는 다음과 같습니다.
Agent는 AI 모델을 활용하여 환경과 상호작용하고, 사용자가 정의한 목표를 달성하는 시스템입니다. 이는 추론, 계획, 그리고 행동 실행(주로 외부 도구를 통해 수행됨)을 결합하여 주어진 작업을 수행합니다.
An Agent is a system that leverages an AI model to interact with its environment in order to achieve a user-defined objective. It combines reasoning, planning, and the execution of actions (often via external tools) to fulfill tasks.
그리고 Agent는 2개의 핵심 파트로 나뉩니다.
가장 일반적인 AI 모델은 LLM 모델입니다. 예를 들어, OpenAI 의 GPT4o나 Meta의 Llama 같은 대규모의 text 데이터를 학습한 언어 모델을 가장 널리 쓰고 있습니다.
LLM 모델은 입력으로 text만 받습니다.
이 경우에는 어떻게 도구(tools)를 입력을 받을 수 있을까요?
정답은 functionality (tools a.k.a. function call)라고 부르는 것을 사용합니다.
예를 들어, Chat-GPT에 이미지를 생성해달라고 하면 이미지를 생성해줍니다. 이것은 이미지를 생성하는 어떤 외부의 툴을 활용하여 이미지를 생성하고 여러분들에게 그 이미지를 전달해주는 역할을 합니다.

출처 : Agents Course
AI Agent는 tool을 통해서 action을 수행하는 task를 할 수 있습니다.
예를 들어, 내 컴퓨터에서 Siri와 같은 개인 비서 역할을 하는 Agent를 만든다고 가정해봅시다. 내가 Agent에게 “오늘 회의를 연기할 수 있는지 매니저에게 이메일을 보내줘.” 라고 요청하면, Agent가 이메일을 보낼 수 있도록 해당 기능을 수행하는 코드를 제공할 수 있습니다.
이 코드는 에**이전트가 이메일을 보낼 때마다 사용할 수 있는 새로운 도구(Tool)**가 됩니다. 이 기능을 Python 코드로 작성하면 다음과 같습니다.
def send_message_to(recipient, message):
"""받는 사람에게 이메일을 보내는 기능"""
...
이후 LLM은 필요할 때, 이 도구를 실행하는 코드를 생성하여, 요청된 작업을 수행할 수 있습니다.
send_message_to("Manager", "Can we postpone today's meeting?")
따라서 도구(tools)를 설계하는 작업은 매우 중요하며, 그것이 성능에 미치는 영향이 매우 큽니다.
몇몇 task들은 웹 검색과 같은 범용 도구를 사용하여 해결할 수도 있고, 일부 작업들은 특정 기능을 갖춘 도구가 필요할 수 있습니다.
Action은 tool과 매칭되지 않습니다. 하나의 액션은 여러 툴들을 사용할 수 있습니다. Note that Actions are not the same as Tools. An Action, for instance, can involve the use of multiple Tools to complete.
Agent가 환경과 상호작용할 수 있도록 한다면 기업과 개인이 실제 생활에서 활용할 수 있는 기능을 제공할 수 있습니다. 개인 비서, 고객 응대 챗봇, 게임 내에서 NPC 등과 같은 것으로 활용할 수 있습니다.
요약하자면, Agent는 AI 모델을 핵심 reasoning 엔진으로 활용하는 시스템입니다. AI 모델은 다음과 같은 작업을 수행합니다.
추가로 https://huggingface.co/learn/agents-course/unit1/quiz1에 들어가서 Quiz를 풀어보는 것도 추천드립니다! 위의 내용을 이해하셨다면 3분도 안걸립니다!
⬅️ 이전 페이지
➡️ 다음 페이지
https://huggingface.co/learn/agents-course/en/unit1/what-are-agents
https://youtu.be/84zkJa9xIVA?si=dEat8hLi3GTaXtrm
<aside>
1.4. Messages and Special Tokens
1.6. Understanding AI Agents through the Thought-Action-Observation Cycle
1.7. Thought, Internal Reasoning and the Re-Act Approach
1.8. Actions: Enabling the Agent to Engage with Its Environment
1.9. Observe: Integrating Feedback to Reflect and Adapt
</aside>