Skip to main content

튜토리얼: CrewAI로 AI 에이전트 구축하기

이 가이드는 CrewAI로 구동되는 AI 에이전트가 적응형 워크플로, 실시간 데이터 분석, 반복적 개선을 통합해 최소한의 인간 개입으로 복잡한 작업을 자동화하는 방법을 살펴봅니다. 이 글은 AI 번역본입니다. 오역이 의심되는 부분이 있으면 댓글로 알려주세요.
Created on September 12|Last edited on September 12
AI 에이전트 작업 자동화 방식을 바꾸며, 더 적응적이고 지능적이며 최소한의 인간 개입으로 복잡한 워크플로를 처리할 수 있도록 만들고 있습니다. AI가 처음이든, 아니면 이미 익숙하지만 첫 번째 에이전트를 만들어 보세요이 가이드는 에이전트의 역할 정의부터 적절한 도구 설정, 그리고 실제 애플리케이션에 통합하는 것까지 전체 과정을 단계별로 안내합니다.
우리는 사용할 것입니다 CrewAI, 를 위해 설계된 프레임워크 멀티 에이전트 시스템을 구축하기 구성하고 관리하기 쉽습니다. 이어서 AI 에이전트 개발을 단순하고 관리하기 쉬운 단계로 나누기, 작업을 자동화할 뿐만 아니라 반복적인 개선을 통해 출력 품질을 고도화하는 시스템을 만드는 방법을 배우게 됩니다. 범위를 정의하고, 적절한 도구를 선택하며, 워크플로를 구성하고, 성능을 평가하는 방법을 다루어, 당신의 AI 에이전트가 효과적이고 신뢰할 수 있도록 하겠습니다.
CrewAI로 직접 에이전트를 만들기 전에 예제를 먼저 실행해 보고 싶다면, 이를 위한 Colab이 여기 있습니다:

학습을 시작해 보고 싶다면, 바로 시작해 봅시다.


목차



AI 에이전트란 무엇일까요?

AI 에이전트는 다음을 활용하는 자율 시스템입니다 대형 언어 모델 그리고 생성형 AI를 활용해 정보를 검색하고, 처리하고, 분석합니다. 엄격한 규칙을 따르는 전통적 자동화와 달리, AI 에이전트는 환경에 적응합니다. 이들은 메모리, 추론, 외부 도구를 사용해 정보를 분석하고 최소한의 인간 감독으로 작업을 완수합니다.
AI 에이전트를 만들 때, CrewAI를 사용하든 그렇지 않든 가장 먼저 할 일은 목적, 범위, 그리고 경계 조건을 정의하는 것입니다. 명확한 가이드라인이 없으면 에이전트가 관련성이 떨어지거나 오해를 불러일으키거나 지나치게 포괄적인 결과를 낼 수 있습니다. 잘 정의된 범위는 효율성과 정확성, 그리고 의도한 목표와의 정렬을 보장합니다.
이 예제에서는 CrewAI를 사용해 AI 기반 뉴스 리서치 에이전트를 구축합니다. 목표는 웹을 탐색하고 출처를 분석하며 구조화된 보고서를 생성해, 최신 AI 동향을 자율적으로 추적하고 요약하는 것입니다. 우리 시스템은 다음과 같은 전문 역할을 가진 두 개의 에이전트로 구성됩니다:
  1. AI 뉴스 리서처최근 24시간 내에 게시된 최신 AI 뉴스를 찾습니다. 오래되었거나 관련성이 낮은 콘텐츠를 걸러내고 신뢰할 수 있는 출처로 연결되는 직접 링크를 제공합니다.
  2. AI 스토리 인베스티게이터: 초기 조사 결과를 ��탕으로 더 깊은 맥락, 추가 출처, 전문가 의견을 확보해 내용을 확장합니다. 각 뉴스 항목마다 300단어 분량의 상세 분석을 제공하여, 충분한 근거를 갖춘 요약을 보장합니다.

범위와 제약 정의하기

정확성을 유지하기 위해, 우리 에이전트는 다음을 수행합니다:
  • 최신성 및 관련성을 보장하기 위해 최근 24시간 내에 게시된 AI 뉴스만 스캔합니다.
  • 신뢰할 수 있는 출처를 우선시하고, 품질이 낮거나 신뢰할 수 없는 콘텐츠는 걸러냅니다.
  • 새로운 모델, 연구적 돌파구, 산업 동향 등을 포함한 중요한 AI 발전에 초점을 맞춥니다.
이 설정은 AI 뉴스 추적을 자동화하여 수작업 조사의 필요를 줄이면서도 고품질의 구조화된 결과를 유지합니다.

CrewAI로 처음 만드는 AI 에이전트 구축

코드로 들어가기 전에, CrewAI의 핵심 구성 요소와 이들이 어떻게 함께 작동하는지부터 짚고 넘어가겠습니다. CrewAI는 다중 에이전트 AI 시스템을 정의하고 관리하기 위한 프레임워크를 제공합니다에이전트가 상호 작용하고, 작업을 위임하며, 복잡한 워크플로를 자율적으로 완료할 수 있도록 합니다.

CrewAI의 핵심 구성 요소

  1. 에이전트: 특정 작업을 수행하는 자율형 AI 엔티티. 각 에이전트는 목표, 배경 이야기, 그리고 할당된 작업을 효율적으로 완료하기 위한 도구를 갖추고 있습니다.
  2. 작업에이전트에게 할당되는 개별 목표. 작업은 무엇을 수행해야 하는지, 기대되는 출력이 무엇인지, 그리고 이를 완료할 책임이 있는 에이전트가 누구인지를 정의합니다.
  3. 크루: 여러 에이전트와 작업을 오케스트레이션하는 구성 요소. 실행 워크플로(예: 순차 또는 병렬)를 관리하고 에이전트 간 데이터 교환이 원활하도록 보장합니다.
  4. 도구: 에이전트가 능력을 확장하기 위해 사용할 수 있는 외부 API, 검색 도구 또는 함수. 예를 들어, 에이전트는 웹 검색 도구를 사용해 새로운 정보를 찾을 수 있습니다.

CrewAI에서 구성 파일 사용 vs 인라인 형식 사용

CrewAI는 구성 파일(YAML 파일) 또는 인라인 Python 방식을 사용해 에이전트와 작업을 정의할 수 있습니다. 복잡한 시스템의 경우 구성 파일(YAML)을 사용하면 유지 관리성이 향상됩니다. 반면, 단순한 사용 사례에서는 인라인 Python 형식이 구성 요소 간 상호작용을 더 명확하게 보여 주고 스크립트 내에서 동적 수정을 가능하게 하므로 더 적합합니다.
우리 에이전트가 웹을 탐색하고 실시간 AI 뉴스를 찾을 수 있도록 하려면 검색 API에 대한 액세스가 필요합니다. 여기서는 다음을 사용합니다 Serper, 최신 결과를 검색할 수 있게 해 주는 Google Search API입니다. 각 계정에는 2,500 크레딧이 무료로 제공됩니다.
또한 우리의 AI 에이전트가 처리와 요약을 위해 OpenAI의 모델에 의존하므로 OpenAI API 키도 필요합니다. 아직 없다면 다음 위치에서 생성할 수 있습니다 OpenAI 플랫폼에이전트가 올바르게 작동하려면 두 API 키 모두 환경 변수에 설정되어 있어야 합니다.
터미널에서 API 키를 설정하는 방법은 다음과 같습니다:
macOS/Linux에서:
export SERPER_API_KEY=your_serper_api_key_here
export OPENAI_API_KEY=your_openai_api_key_here
Windows(PowerShell)에서:
$env:SERPER_API_KEY="your_serper_api_key_here"
$env:OPENAI_API_KEY="your_openai_api_key_here"
다음 pip 종속성도 반드시 설치하세요:
pip install 'crewai[tools]' langchain-openai weave
이제 CrewAI로 AI 뉴스를 자동으로 추적하고 요약하는 AI 에이전트를 만들어 보겠습니다. 이 구현은 다음으로 구성됩니다:
  • 최신 AI 뉴스를 찾아내는 AI 뉴스 연구원.
  • 핵심 발견을 분석하고 확장하는 AI 스토리 조사원.
  • 작업을 순서대로 관리하고 실행하는 Crew.
import os
import warnings
from datetime import datetime
from textwrap import dedent
from crewai import Agent, Crew, Process, Task
from crewai_tools import SerperDevTool
from langchain_openai import ChatOpenAI

import weave
weave.init("crewai-ai-news-agent")

search_tool = SerperDevTool()

researcher = Agent(
role="AI News Researcher",
backstory="An AI-focused journalist specializing in breaking news and emerging trends.",
goal="Find the most recent AI news from the last 24 hours. Note --> IF NEWS IS NOT WITHIN THE LAST FEW DAYS, DO NOT INCLUDE IT!!!!!!!",
tools=[search_tool],
allow_delegation=False,
verbose=True,
max_iter=3,
llm=ChatOpenAI(model_name="gpt-4o-mini", temperature=0.8)
)

story_researcher = Agent(
role="AI Story Investigator",
backstory="A deep-research AI journalist who expands on initial news findings, gathering additional context, sources, and insights for each AI story.",
goal="For each news story found, conduct a deeper investigation to retrieve additional information, sources, and full context. Write **at least 300 words** for each story, including details, expert opinions, and possible implications. Ensure you provide the full URL of the main source.",
tools=[search_tool],
allow_delegation=False,
verbose=True,
max_iter=5,
llm=ChatOpenAI(model_name="gpt-4o-mini", temperature=0.7)
)

research_task = Task(
description=dedent("""
Search for the most recent AI news published in the last 24 hours.
Extract the **5 most important developments**, including company names, new AI models, breakthroughs, and market trends.

**Query Parameters:**
- Search for AI-related news.
- Filter results to only include content from the last 24 hours.

**Example Output Format:**
1. OpenAI announces GPT-5 development with a new multimodal framework. (Source: TechCrunch - https://techcrunch.com/example)
2. Google DeepMind unveils Gemini 1.5 with extended context length. (Source: The Verge - https://theverge.com/example)
3. NVIDIA releases new AI GPUs optimized for deep learning. (Source: Reuters - https://reuters.com/example)
"""),
expected_output="A list of the 10 most important AI news updates from the last 24 hours, each with a direct source URL.",
agent=researcher,
output_file="latest_ai_news.md"
)

story_research_task = Task(
description=dedent("""
For each AI news story identified, perform **detailed research** to provide a comprehensive 300-word analysis.

**Steps:**
1. Search for additional details, expert opinions, technical specifications, and market reactions for each news story.
2. Write a **detailed 300-word breakdown** of each AI news update.
3. Verify and include **full URLs** for all primary sources.

**Example Output Format:**
### OpenAI's GPT-5 Development
OpenAI has officially confirmed the development of GPT-5, its next-generation language model. The company states that this iteration will be highly multimodal, improving text, image, and potentially even video understanding. According to a TechCrunch interview with OpenAI CEO Sam Altman, GPT-5 is expected to have a significantly larger context window, allowing for improved memory and long-term coherence.

Industry experts speculate that OpenAI will release GPT-5 in late 2025, focusing on fine-tuning multimodal capabilities. Some researchers have raised concerns about AI alignment, urging OpenAI to implement stronger safeguards against biases and hallucinations.

Major competitors, including Google DeepMind and Anthropic, are also preparing advanced AI models in response. DeepMind’s Gemini 1.5 is expected to launch before GPT-5, increasing competition in the space.

**Sources:**
- TechCrunch: https://techcrunch.com/example
- MIT Technology Review: https://technologyreview.com/example
- OpenAI Blog: https://openai.com/example

Repeat this level of depth for each of the 10 AI news stories.
"""),
expected_output="A detailed 300-word analysis for each AI news story, with full source citations.",
agent=story_researcher,
context=[research_task],
output_file="expanded_ai_news.md"
)

crew = Crew(
agents=[researcher, story_researcher],
tasks=[research_task, story_research_task],
verbose=True,
process=Process.sequential
)

def run():
inputs = {
"topic": "Latest AI News",
"current_year": str(datetime.now().year),
"current_month": str(datetime.now().month),
"current_day": str(datetime.now().day)
}

result = crew.kickoff(inputs=inputs)

print("\n\n### Final AI News Report ###\n")
print(result)

print("\n\n### Task Outputs ###\n")
for task in crew.tasks:
if task.output_file:
with open(task.output_file, "r") as f:
print(f"Task: {task.description}\nOutput:\n{f.read()}\n{'-'*40}")

if __name__ == "__main__":
run()

코드 분석하기

이제 구현을 살펴봤으니, 핵심 구성 요소를 정리해 보겠습니다. 각 에이전트에는 고유한 역할, 목표, 그리고 도구 세트가 부여됩니다. 이 예시에서는 최신 AI 뉴스를 수집하는 역할의 뉴스 리서처와, 추가 조사를 통해 그 발견을 확장하는 스토리 인베스티게이터가 있습니다.
에이전트에는 그들의 역할과 맞는 작업이 할당됩니다. 연구 작업은 지난 24시간 동안의 AI 뉴스를 검색하는 데 초점을 맞추고, 스토리 연구 작업은 그 결과를 바탕으로 더 깊은 맥락을 담은 상세 보고서를 생성합니다. Crew 객체는 실행을 관리하여 에이전트가 작업을 구조화된 순서로 완료하도록 보장합니다. 순차적 프로세스를 사용하므로 하나의 작업이 끝나야 다음 작업이 시작됩니다.
이 예시는 에이전트가 서로 다른 역할에 특화되어 모듈식이고 확장 가능한 AI 시스템을 CrewAI로 구현하는 방법을 보여줍니다. 여기서 에이전트는 더 많은 도구를 추가하고, API를 통합하며, 새로운 동작을 정의하여 기능을 확장할 수 있습니다.
기반 LLM 추론 라이브러리에 이미 Weave가 통합되어 있으므로, 우리는 Weave를 임포트하기만 하면 됩니다. 그러면 모델에 대한 모든 호출이 Weave 안에 표시됩니다. 이는 프롬프트를 다듬고 정확도를 높이며, 불일치를 디버깅하는 데 유용합니다. 로그를 수작업으로 점검하는 대신, Weave는 정보가 시스템을 통해 어떻게 흐르는지 구조화된 뷰를 제공하여 최적화와 조정을 훨씬 쉽게 만들어 줍니다.
스크립트를 실행한 후 Weave 내부에서 보이는 화면의 스크린샷은 다음과 같습니다:


CrewAI 에이전트를 위한 작업과 프롬프트 정의하기

각 CrewAI 에이전트의 동작을 이끄는 작업과 프롬프트를 정의하는 일은 매우 중요합니다. 이 에이전트들이 어떻게 작동하는지 더 잘 이해하기 위해, AI News Researcher와 AI Story Investigator에 사용된 구체적인 프롬프트를 단계별로 살펴보겠습니다.
연구 작업은 최신 뉴스를 수집하는 기반이 됩니다. 다음은 AI News Researcher에 사용된 프롬프트의 구성입니다:
description=dedent("""
Search for the most recent AI news published in the last 24 hours.
Extract the **5 most important developments**, including company names, new AI models, breakthroughs, and market trends.

**Query Parameters:**
- Search for AI-related news.
- Filter results to only include content from the last 24 hours.

**Example Output Format:**
1. OpenAI announces GPT-5 development with a new multimodal framework. (Source: TechCrunch - https://techcrunch.com/example)
2. Google DeepMind unveils Gemini 1.5 with extended context length. (Source: The Verge - https://theverge.com/example)
3. NVIDIA releases new AI GPUs optimized for deep learning. (Source: Reuters - https://reuters.com/example)
""")
이 프롬프트는 AI News Researcher 에이전트가 지난 24시간 내에 발행된 AI 관련 뉴스를 수집하도록 보장합니다. 쿼리 파라미터는 에이전트가 오래된 정보를 걸러내고 가장 관련성 높고 최신 동향에 집중하도록 돕습니다. 에이전트는 새로운 모델, 획기적 성과, 산업 트렌드를 포함한 AI 발전을 우선시합니다. 이러한 접근 방식은 수집된 뉴스가 적시에 제공되며, 핵심 AI 동향을 요약한다는 프로젝트의 목표와 직접적으로 부합하도록 보장합니다.
출력 형식은 각 뉴스 항목을 간결하게 제시하도록 구성되어 있습니다. 각 결과에는 사건을 요약하는 헤드라인, 뉴스가 게시된 출처, 그리고 직접 접근 가능한 URL 링크가 포함됩니다. 이러한 명확한 형식은 출력이 쉽게 읽히고 접근 가능하도록 보장하며, AI News Researcher 에이전트가 정보를 효과적으로 수집하고 제시하도록 안내합니다.
두 번째 에이전트인 AI Story Investigator는 초기 발견 내용을 바탕으로 더 깊은 맥락, 추가 출처, 전문가 견해를 제공하여 내용을 확장하는 역할을 맡습니다. 다음은 스토리 리서치 작업의 구성입니다:
description=dedent("""
For each AI news story identified, perform **detailed research** to provide a comprehensive 300-word analysis.

**Steps:**
1. Search for additional details, expert opinions, technical specifications, and market reactions for each news story.
2. Write a **detailed 300-word breakdown** of each AI news update.
3. Verify and include **full URLs** for all primary sources.

**Example Output Format:**
### OpenAI's GPT-5 Development
OpenAI has officially confirmed the development of GPT-5, its next-generation language model. The company states that this iteration will be highly multimodal, improving text, image, and potentially even video understanding. According to a TechCrunch interview with OpenAI CEO Sam Altman, GPT-5 is expected to have a significantly larger context window, allowing for improved memory and long-term coherence.

Industry experts speculate that OpenAI will release GPT-5 in late 2025, focusing on fine-tuning multimodal capabilities. Some researchers have raised concerns about AI alignment, urging OpenAI to implement stronger safeguards against biases and hallucinations.

Major competitors, including Google DeepMind and Anthropic, are also preparing advanced AI models in response. DeepMind’s Gemini 1.5 is expected to launch before GPT-5, increasing competition in the space.

**Sources:**
- TechCrunch: https://techcrunch.com/example
- MIT Technology Review: https://technologyreview.com/example
- OpenAI Blog: https://openai.com/example
""")
이 프롬프트는 AI Story Investigator가 심층 조사를 수행하고 각 뉴스 항목에 대해 300단어 분량의 종합적인 분석을 작성하도록 안내합니다. 에이전트는 각 스토리가 충분히 맥락화되도록 여러 출처를 수집합니다. 출처 확인과 전체 URL을 포함함으로써 에이전트는 투명성과 신뢰성을 유지합니다.
에이전트는 초기 뉴스 항목을 확장하여 그 중요성을 설명하고, 전문가 인사이트를 반영하며, 기술적 또는 산업적 영향을 자세히 다룹니다. 검증된 출처를 포함함으로써 최종 출력이 근거가 탄탄하고 신뢰할 수 있도록 보장합니다.
이들 에이전트의 효과는 프롬프트의 명확성과 정밀도에 달려 있습니다. AI News Researcher는 지난 24시간 내의 기사만을 대상으로 삼아 뉴스의 적시성을 보장하고, Story Investigator는 각 스토리에 깊이와 맥락을 더합니다. 두 에이전트는 함께 결과의 정확성과 관련성을 지속적으로 개선할 수 있는 간결한 AI 뉴스 리서치 시스템을 구성합니다.

CrewAI로 AI 에이전트 만드는 방법

AI 에이전트를 만든다는 것은 단순히 코드를 작성하는 일이 아닙니다. 과제를 이해하고, 이를 더 작은 단계로 나눈 뒤, 시스템이 안정적으로 동작할 때까지 반복적으로 개선하는 일입니다.
유용한 AI 에이전트를 개발하려면 올바르게 동작할 때까지 여러 차례의 반복, 조정, 그리고 정교화가 필요합니다. 에이전트를 신뢰할 수 있고 효과적이며 확장 가능하게 만들기 위한 핵심 단계는 다음과 같습니다.

1단계 – 개념화와 목표 정의

AI 에이전트의 목표를 먼저 정의하세요, 고객 상호작용 자동화든 연구 효율 향상이든 간에. 에이전트의 범위를 정의하면 명확한 개발 목표를 설정하고 시스템이 집중도를 유지하도록 도울 수 있습니다. 이 단계에서의 적절한 기획은 불필요한 복잡성을 피하고 AI의 의사결정 과정을 올바르게 이끄는 데 필수적입니다.
AI 에이전트는 정보를 처리하고 작업을 수행하기 위해 LLM에 의존하므로, 모델이 데이터와 어떻게 상호작용하고 응답을 어떻게 정교화할지 고려해야 합니다. 탄탄한 구조적 기반은 적응성과 성능을 향상시켜 에이전트가 의도한 목적을 더욱 효과적으로 달성하도록 돕습니다.

2단계 – 먼저 작업을 수동으로 수행하세요(여러 번)

무엇이든 자동화하기 전에, 먼저 작업을 수동으로 수행하세요 어떻게 작동해야 하는지 직접 확인하세요. 에이전트가 AI 뉴스를 수집하는 역할이라면, 먼저 여러분이 스스로 전 과정을 수행해 보며 최적의 출처, 실제로 유용한 결과의 유형, 그리고 발생하는 문제들을 파악하세요.
검색 도구는 시스템의 중심축이며, 그 성능이 떨어지면 에이전트가 생성하는 최종 결과도 마찬가지로 부실해집니다. 이 과정을 수동으로 거쳐 보면 에이전트의 범위를 명확히 정의할 수 있어 불필요한 복잡성이나 관련 없는 기능을 방지할 수 있습니다.

3단계 – 작업을 더 작은 구성 요소로 분해하고 지침을 정의하기

워크플로를 명확히 이해했다면, 작업을 모듈식 단계로 분해할 수 있습니다. AI 에이전트가 처리할 수 있도록 하세요. 한 번에 모든 것을 자동화하려 하기보다, 명확하게 정의된 하위 작업에 집중하세요. 자율적인 의사결정 능력을 구축할 수 있도록 AI 에이전트를 위한 구체적인 지침과 변수들을 마련하세요. 이렇게 하면 사전에 정의된 매개변수에 따라 에이전트가 독립적으로 동작할 수 있습니다.
예를 들어, AI 뉴스 리서치 워크플로에는 다음이 포함될 수 있습니다:
  1. 뉴스 리서치 에이전트: 가장 관련성 높은 AI 뉴스를 찾아 선별합니다.
  2. 스토리 확장 에이전트: 핵심 기사들을 분석하고 전문가 인사이트를 수집해 요약을 생성합니다.
이 각 단계는 에이전트가 신뢰성 있게 수행할 수 있는 작고 관리 가능한 작업입니다. 또한 이 방식은 전체 시스템에 통합하기 전에 각 구성 요소를 별도로 테스트할 수 있어 디버깅을 더 쉽게 만들어 줍니다.

4단계 – 테스트와 반복

AI 에이전트가 처음 시도에서 완벽하게 “작동”하는 경우는 드뭅니다. 아마도 에이전트는 버그를 잡고 의사결정을 다듬으며 정확도를 높이기 위해 여러 번의 반복이 필요합니다. 첫 번째 버전은 결과가 불완전하거나 중요한 정보를 놓치고, 일관성 측면에서 어려움을 겪을 수 있습니다.
테스트에는 다음이 포함됩니다:
  • 에이전트가 유용한 출력을 내는지 확인하기 위해 실제 예제를 실행합니다.
  • 성능에 따라 프롬프트 지시문, 파라미터, 또는 도구를 조정합니다.
  • 저품질 데이터 소스나 잘못된 추론과 같은 실패 지점을 식별하기.
반복은 지속적인 과정입니다. 에이전트가 동작한 뒤에도 다음이 필요할 수 있습니다 파인튜닝 응답을 개선하고, 작업 위임을 최적화하며, 효율을 높이기 위해 더 나은 도구를 추가하세요. AI 에이전트는 단지 작동하기만 해서는 안 되며, 문제 영역이 진화함에 따라 안정적으로 작동하고 적응할 수 있어야 합니다.
이 단계들을 따르면, 전체 배포에 앞서 실제 환경에서 검증된 명확하고 모듈화된 AI 에이전트를 만들 수 있습니다.

5단계 – 외부 도구 및 워크플로와의 통합

AI 에이전트의 인사이트는 적절한 사람에게 전달될 때만 가치가 있습니다. Slack, 이메일, 대시보드 같은 도구와의 통합을 통해 사용자가 자신의 워크플로 내에서 보고서를 끊김 없이 접근할 수 있도록 하세요.
목표는 추가 단계를 늘리지 않고도 업데이트와 인사이트가 적절한 사람에게 도달하도록 하는 것입니다. 또한 이슈 보고와 실패 처리에 필요한 기본 인프라를 갖추는 것이 도움이 됩니다. 로그, 알림, 간단한 보고 도구를 활용하면 시스템을 원활하게 운영하고 디버깅을 쉽게 할 수 있습니다. 에이전트가 더 큰 워크플로의 일부라면, 사용자가 일부러 찾아서 상호작용하지 않아도 자연스럽게 녹아들도록 통합해야 합니다.
Python으로 프로그래매틱 이메일 발송을 설정하는 방법을 보여주는 튜토리얼이 필요하다면, 다음 자료를 참고하세요 이 튜토리얼 에이전트 설정에서 이메일을 보내는 방법에 대한 지침을 포함합니다.
💡
더 나은 모니터링과 트러블슈팅을 위해 Weave 같은 도구를 사용하면 에이전트의 활동을 추적할 수 있습니다. API 호출과 상호작용을 로깅하면 시스템이 어떻게 동작하는지 가시성을 높이고, 문제를 조기에 발견하기 쉬워집니다.

디버깅과 시각화를 위한 Weave 사용

이 구현에서는 Weave AI 에이전트가 OpenAI에 수행하는 모든 API 호출을 로깅하는 데 사용됩니다. 다음 줄은 weave.init("crewai-news-agent") Weave 추적을 초기화합니다. 이는 모든 요청이 OpenAI API 기록됩니다. 이를 통해 프레임워크가 각 API 호출을 어떻게 수행하는지 시각화할 수 있어, 내부에서 어떤 일이 일어나는지에 대한 통찰을 제공합니다.
CrewAI 같은 멀티 에이전트 프레임워크를 사용할 때 가장 큰 과제 중 하나는 디버깅입니다. 잘못된 출력, 에이전트가 작업을 제대로 완료하지 못하는 문제, 예기치 않은 실패 등 문제가 발생했을 때, 원인이 어디에서 비롯되었는지 항상 명확하지 않습니다. 문제는 LLM의 응답, 잘못된 작업 정의, 미흡한 에이전트 조정, 혹은 외부 도구의 실패에서 비롯될 수 있습니다.
Weave는 API 호출과 응답을 로깅하여 AI 에이전트의 동작을 실시간으로 가시화합니다. 이를 통해 다음을 할 수 있습니다:
  • 추적 오류: 실패가 잘못된 프롬프트, 부정확한 검색 결과, 또는 LLM의 일관성 문제 중 어디에서 비롯됐는지 식별하세요.
  • 쿼리 정교화하기: 로깅된 상호작용에 따라 검색 매개변수를 조정하세요.
  • 응답 최적화하기: 로깅된 출력을 활용해 프롬프트 지시문을 미세 조정하세요.
예를 들어 AI Story Investigator가 저품질 요약을 생성한다면, 문제의 원인이 검색 도구가 부정확한 결과를 반환하는 것인지, 프롬프트 구조가 미흡한 것인지, 아니면 LLM 자체가 응집성에 어려움을 겪는 것인지 확인할 수 있습니다. 추측하는 대신 Weave의 로그를 사용해 에이전트의 워크플로를 단계별로 따라가며 어디에서 문제가 발생하는지 확인할 수 있습니다.
이런 종류의 로깅과 가시화는 자율 에이전트를 다룰 때, 특히 시스템이 복잡해질수록 필수적입니다. 이것이 없으면 디버깅이 훨씬 어려워지고, 다단계 프로세스를 문제 해결하는 동안 쉽게 길을 잃기 마련입니다. Weave는 실제 데이터에 기반해 AI 에이전트의 동작을 이해하고, 정교화하고, 개선하기 쉽게 만들어 줍니다.

Weave는 개발 단계에서만 유용한 것이 아니라, 배포 이후 운영 환경에서도 가치 있게 활용할 수 있습니다. AI 에이전트가 실제 사용자에게 배포되어 사용되기 시작하면, 현실 환경에서 어떻게 성능을 내고 있는지 파악하는 일이 더욱 중요해집니다. Weave는 사용자가 에이전트와 어떻게 상호작용하는지 지속적으로 가시성을 제공합니다., 어떤 종류의 쿼리를 처리하고 있는지, 그리고 어디에서 어려움을 겪거나 실패하고 있는지.
예를 들어 사용자가 에이전트가 제대로 가져오지 못하는 정보를 반복해서 요청한다면, Weave의 로그를 통해 문제가 불완전한 검색 쿼리 때문인지, 미흡한 프롬프트 설계 때문인지, 아니면 LLM 자체의 한계 때문인지 파악할 수 있습니다. 에이전트가 부정확한 요약을 생성하는 경우에도, Weave는 원인에 나쁜 소스 선택, 환각으로 인한 내용, 혹은 모델 응답의 취약한 추론이 있는지 여부를 판단하는 데 도움이 됩니다. 사용자가 문제를 신고할 때까지 기다리거나 근거 없이 파라미터를 조정하는 대신, 정확한 API 호출과 응답을 검토해 실시간으로 문제를 진단할 수 있습니다.
이는 Weave를 GenAI 애플리케이션을 위한 현대적 디버거처럼 만들어, 개발자가 에이전트의 의사결정을 단계별로 추적할 수 있게 해줍니다. 또한 프로덕션 환경에서는 시간이 지남에 따라 에이전트의 동작을 모니터링하는 데에도 도움이 됩니다. AI 모델이 발전하더라도 성능이 저하되지 않도록 보장합니다. 새로운 버전의 LLM이 프롬프트에 응답하는 방식이 달라지거나, 검색 API가 더 낮은 품질의 결과를 반환하기 시작하더라도, 이러한 문제를 초기에 포착할 수 있습니다.
로깅과 모니터링을 갖춘 상태에서는 실제 사용 데이터를 바탕으로 AI 에이전트를 지속적으로 개선할 수 있어, 신뢰성이 높아지고 사용자 니즈에 더 잘 부합하게 됩니다.

테스트와 평가

AI 에이전트를 만드는 일은 단순히 코드를 작성하는 것이 아니라, 실제 환경에서 일관되게 성능을 발휘하도록 보장하는 일입니다. 정기적인 모니터링과 평가를 통해 출력물을 정교화하고, 불일치를 발견하며, 전반적인 신뢰성을 향상시킬 수 있습니다. AI 워크플로는 전통적인 소프트웨어처럼 엄격한 규칙을 따르지 않기 때문에, 에이전트가 다양한 태스크에서 어떻게 동작하는지를 파악하는 것이 효과성을 높이는 핵심입니다.
Weave와 같은 도구는 API 호출 추적, 상호작용 로깅, 예측하기 어려운 모델 동작 디버깅을 통해 더 깊은 가시성을 제공합니다. 또한 Weave에는 평가 프레임워크 이는 실험을 관리하고, 서로 다른 에이전트를 벤치마크하며, 시간에 따른 성능을 비교하기 쉽게 해 줍니다. AI 에이전트는 프롬프트 튜닝, 더 나은 데이터 소스, 정교한 태스크 위임 등 지속적인 조정이 필요하기 때문에, 지속적인 평가는 에이전트가 의도한 목적에 부합하면서 효율성을 유지하도록 보장합니다.

결론

AI 에이전트는 자동화의 설계와 구현 방식에 변화를 가져옵니다. 엄격한 규칙에 의존하는 전통적 시스템과 달리, AI 에이전트는 데이터를 해석하고 추론하며 외부 도구와 동적으로 상호작용합니다. 이러한 유연성 덕분에 실시간 뉴스 추적, 리서치, 요약과 같은 복잡하고 변화하는 태스크를 처리할 수 있습니다. 그러나 그 효과는 신중한 설계, 지속적인 평가, 모니터링 도구와의 통합에 달려 있습니다.
신뢰할 수 있는 AI 에이전트를 만드는 일은 한 번으로 끝나지 않습니다 이는 지시문을 다듬고, 출력물을 테스트하며, 의사결정을 최적화하는 반복적 과정입니다. Weave와 같은 도구는 에이전트가 어떻게 작동하는지, 어디서 성공하고 실패하는지를 가시화하여 이 과정을 더 수월하게 만들어 줍니다. 이런 수준의 인사이트는 정확도를 유지하고 효율을 개선하며, 실제 환경에서 에이전트가 기대대로 성능을 내도록 보장하는 데 필수적입니다.
AI 시스템이 워크플로에 더 깊이 통합될수록, 구조화된 평가와 디버깅의 필요성은 더욱 커집니다. 에이전트를 많이 테스트하고 정교화할수록 그 가치는 높아집니다. 명확한 목표를 정의하고, 워크플로를 체계화하며, 성능을 지속적으로 다듬으면 AI 에이전트는 단순한 자동화를 넘어설 수 있습니다. 실시간 모니터링을 위한 Weave와 같은 도구를 활용하면, 이들은 의사결정을 간소화하고 생산성을 높이는 강력하고 적응적인 보조자로 발전합니다.



이 글은 AI로 번역된 기사입니다. 오역이 의심되는 부분이 있으면 댓글로 알려 주세요. 원문 보고서는 다음 링크에서 확인할 수 있습니다: 원문 보고서 보기