<aside> 🔥
AI Agent가 환경(Environment)과 상호작용하기 위해 수행하는 구체적인 단계들을 살펴봅니다!
</aside>
행동(Actions)은 AI Agent가 환경(Environment)과 상호작용하기 위해 수행하는 구체적인 단계들을 의미합니다.
정보를 수집하기 위해 web 서칭을 하거나 물리적인 디바이스(ex : 아이폰 등)를 사용하는 등 각각의 행동은 Agent가 의도를 가지고 실행하는 작업입니다. 예를들어, agent가 고객 데이터를 조회하거나, 관련 문서를 제공하거나, 문제를 인간 상담원에게 이관하는 등의 행동을 수행할 수 있습니다.
이러한 행동(Actions)은 구체적으로 JSON이나 코드 형식으로 표현할 수 있고, stop and parse 라고 하는 접근법을 사용하게 됩니다. 좀더 구체적으로 알아봅시다!
다양한 종류의 **행동(Actions)**을 수행하는 Agent들은 다음과 같이 나타낼 수 있습니다.
| Type of Agent | Description |
|---|---|
| JSON Agent | JSON 형태에 구체적인 행동들이 담겨있는 방식 |
| Code Agent | 외부에서 실행 가능한 코드 블록을 Agent가 직접 작성하는 방식 |
| Function-calling Agent | JSON Agent의 하위 카테고리 중에 하나로, 각 행동마다 새로운 메세지를 생성하도록 fine-tuning된 모델 |
**행동(Actions)**은 많은 목적을 가지고 수행됩니다.
| Type of Action | Description |
|---|---|
| 정보 수집(information Gathering) | 웹 검색 수행, 데이터베이스 질의, 문서 조회 등 |
| 도구 사용(Tool Usage) | API 호출, 계산 실행, 코드 실행 등 |
| 환경 상호작용(Environment Interaction) | 디지털 인터페이스 조작 또는 물리적인 디바이스 제어 등 |
| 의사소통 (Communication) | User와의 대화 또는 다른 Agent와의 협업 등 |
Agent(JSON, Code, Function-calling 전부)에서 가장 중요한 것은 행동(action)이 잘 수행되었을 때, 그 다음 토큰을 generate하는 것을 중단(STOP)하는 능력입니다. 이러한 능력은 의도하지 않은 결과물이 나오지 않도록 하고 agent의 응답을 명확하고 간결하게 해줍니다.
LLM은 오직 text data만을 다룰 수 있기 때문에 텍스트를 이용해서 원하는 행동이나 도구에 해당하는 파라미터들을 설명할 수 있습니다.
가장 중요한 행동(actions) 중에 하나는 중단 후 파싱 접근법(stop and parse approach) 입니다. 이러한 방법은 Agent가 구조화되고 예측가능한 결과물을 출력할 수 있도록 해줍니다. 중단 후 파싱 접근법은 다음과 같은 단계로 진행됩니다.
예를 들어, agent는 날씨를 체크하기 위해서 아래와 같은 구조화된 결과물이 필요합니다.
Thought: I need to check the current weather for New York.
Action :
{
"action": "get_weather",
"action_input": {"location": "New York"}
}
프레임워크는 그런 다음 호출할 함수의 이름과 적용할 인수를 쉽게 파싱할 수 있습니다.
이와 같이 명확하고 기계어와 친숙한 형태(like JSON)는 오류를 최소화하고 외부 도구(Tool)가 Agent의 명령을 정확하게 처리할 수 있도록 해줍니다.
다른 접근법은 Code Agent를 사용하는 방법입니다. 아이디어는 다음과 같습니다.
JSON 형태 대신, Code Agent가 고수준 언어인 파이썬처럼 실행 가능한 코드 블럭을 생성하는 방식 instead of outputting a simple JSON object, a Code Agent generates an executable code block—typically in a high-level language like Python.

위의 이미지를 아래와 같이 설명할 수 있습니다.
만약, US dollars를 각 나라의 화폐 단위로 변환한다고 하면, 보통의 컴퓨터 언어는 for loop 등의 iteration 코드를 작성할 겁니다. 이 경우, 행동은(action) for loop를 포함한 코드를 실행하는 행동 한번만 필요합니다.
반면에, JSON 형식으로 되어 있다면 하나의 도구(함수)를 한번씩만 사용할 수 있으므로 나라의 수만큼 행동(Action)을 하게 됩니다. 즉, 여러번의 행동(action)이 발생하게 되므로 추론 시간의 증가와 LLM 추론 비용이 발생하게 됩니다.
이러한 Code Agent의 장점은 정리해보면 다음과 같습니다.
이러한 Code Agent 또한 코드 블록을 명확히 구분하고, 코드 실행이 끝났을 때 신호를 주는 방식(print문 등)으로 **중단 후 파싱 접근법(stop and parse approach)**을 사용합니다.
우리는 지금까지 액션(Action)이 JSON, 코드, 또는 함수 호출을 통해 명확하고 구조화된 작업을 실행함으로써, 에이전트의 내부 사고과정(reasoning)과 실제 환경(real-world) 간의 상호작용을 연결하는 다리 역할을 한다는 점을 배웠습니다.
이러한 신중한 실행 방식은 **중단 후 파싱 접근법(stop and parse approach)**을 통해 각 행동(Action)이 정확하며 외부 프로세싱이 가능하도록 준비되어 있음을 보장합니다.
⬅️ 이전 페이지
1.7. Thought, Internal Reasoning and the Re-Act Approach
➡️ 다음 페이지
1.9. Observe: Integrating Feedback to Reflect and Adapt
https://huggingface.co/learn/agents-course/en/unit1/actions
<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>