Crewai의 에이전트 흐름은 무엇입니까? - 분석 Vidhya
Crewai 흐름으로 AI 워크 플로를 간소화하십시오! 이 강력한 프레임 워크는 AI 에이전트 간의 상호 작용을 조정하기위한 구조화 된 패턴을 제공하므로 개발자는 강력한 AI 자동화를 위해 코딩 작업과 승무원을 완벽하게 통합 할 수 있습니다. Crewai의 에이전트 흐름은 AI 응용 프로그램 내에서 이벤트 중심의 워크 플로우, 작업 조정, 상태 관리 및 실행 제어를 단순화합니다.
목차
- 승무원은 무엇입니까?
- 흐름 이해
- 워크 플로 제어 및 시퀀싱
- 효율적인 국가 관리
- 유연한 입력 처리
- 이벤트 중심의 아키텍처 및 동적 조정
- 작업 라우팅 및 조건부 실행
- 실제로 흐름 : 영화 추천 예제
- 설정 및 설치
- 경고 처리
- 환경 변수 로딩
- 필요한 모듈 가져 오기
- 에이전트 정의
- 작업 정의
- 각 장르마다 승무원을 만듭니다
- 장르 및 제국 테이트 정의
-
MovieRecommendationFlow
구축 - 흐름 시각화
- 흐름 시작
- 결론
- 자주 묻는 질문
승무원은 무엇입니까?
Crewai의 승무원은 자동화 된 작업 완료를 위해 AI 에이전트의 오케스트레이션을 용이하게합니다. 이들은 에이전트 간의 원활한 협력을 가능하게하여 복잡한 문제를 해결합니다. 그러나 왜 "흐름"? Crewai Flow는 이러한 에이전트 상호 작용을 관리하기위한 구조화 된 패턴을 제공하기 때문에 에이전트가 특정 목표를 달성하기 위해 에이전트가 의사 소통하고 협력하는 방식을 정의합니다. 흐름은 본질적으로 일련의 작업이며, 한 작업의 출력이 다음 작업을 트리거 할 수 있습니다. 이 시스템은 상태 및 조건부 실행을위한 유연한 메커니즘을 제공합니다.
흐름 이해
흐름은 이벤트 중심 모델에서 작동하여 특정 트리거 및 조건에 반응합니다. 이를 통해 작업 실행 결과를 기반으로 동적 워크 플로 조정을 통해 복잡한 AI 프로세스를 간소화합니다.
워크 플로 제어 및 시퀀싱
Crewai 흐름을 통해 개발자는 작업 시퀀스를 구조화하고 작업 간 정보 흐름을 제어 할 수 있습니다. 작업을 함께 연결하여 논리적 인 운영 순서를 만듭니다. 사전 작업 출력을 기반으로 작업의 조건부 실행도 지원됩니다.
효율적인 국가 관리
종종 Pydantic의 BaseModel
사용하는 구조화 된 상태 관리는 작업 간 데이터 일관성과 구조를 보장합니다. 이는 복잡한 데이터 상태의 유형 안전, 검증 및 더 쉬운 관리를 제공합니다.
유연한 입력 처리
흐름은 실행 중 언제라도 상태를 초기화하거나 업데이트하기위한 입력을 수락합니다. 워크 플로 요구에 따라 시작, 실행 중 또는 실행 후 입력을 제공 할 수 있습니다.
이벤트 중심의 아키텍처 및 동적 조정
Crewai 흐름은 작업 결과에 따라 동적으로 조정됩니다. 작업은 이전 단계에서 출력을 듣고 이전 출력에 따라 새로운 작업이 트리거되는 반응 시스템을 만듭니다. @listen()
및 @router()
데코레이터는 이러한 유연성을 제공하여 조건부 및 동적 작업 링크를 가능하게합니다. @start()
데코레이터는 흐름의 시작점을 표시합니다.
데코레이터 및 조건부 논리 | 설명 |
@listen()
|
특정 이벤트 또는 작업 출력에 의해 트리거 된 리스너 메소드를 만듭니다. |
@router()
|
조건부 라우팅을 활성화하여 이전 단계 출력에 따라 다른 실행 경로를 허용합니다. 성공/실패 결과를 관리하는 데 유용합니다. |
지정된 모든 메소드가 출력을 방출 할 때만 리스너를 트리거합니다. |
작업 라우팅 및 조건부 실행
흐름은 조건에 따라 실행을 제어하기 위해 라우팅을 사용합니다. @router()
데코레이터를 사용하면 메소드가 이전 작업 결과를 기반으로 실행 경로를 선택할 수 있습니다. 예를 들어, 메소드는 이전 작업의 출력을 확인하고 특정 조건이 충족되는지 여부에 따라 경로를 선택할 수 있습니다.
실제로 흐름 : 영화 추천 예제
장르를 기반으로 영화를 추천하기 위해 Crewai Flows를 사용하여 에이전트 시스템을 만들어 봅시다.
설정 및 설치
<code>!pip install crewai -U !pip install crewai-tools</code>
경고 처리
<code>import warnings warnings.filterwarnings('ignore')</code>
환경 변수로드 (실제 키로 자리 표시자를 교체)
<code>import os os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY' os.environ['OPENAI_MODEL_NAME'] = 'gpt-4o-mini-2024-07-18' os.environ["SERPER_API_KEY"]='YOUR_SERPER_API_KEY'</code>
필요한 모듈 가져 오기
<code>from crewai import Agent, Task, Crew from crewai.flow.flow import listen, start, and_, or_, router from crewai_tools import SerperDevTool from crewai import Flow from pydantic import BaseModel</code>
에이전트 정의
모든 작업에 단일 에이전트가 사용됩니다. 이 에이전트는 Google 검색 도구를 사용합니다.
<code>movie_agent = Agent( role="Recommend popular movie specific to the genre", goal="Provide a list of movies based on user preferences", backstory="You are a cinephile, " "you recommend good movies to your friends, " "the movies should be of the same genre", tools=[SerperDevTool()], verbose=True )</code>
작업 정의
<code>action_task = Task(name="ActionTask", description="Recommends a popular action movie", expected_output="A list of 10 popular movies", agent=movie_agent) comedy_task = Task(name="ComedyTask", description="Recommends a popular comedy movie", expected_output="A list of 10 popular movies", agent=movie_agent) drama_task = Task(name="DramaTask", description="Recommends a popular drama movie", expected_output="A list of 10 popular movies", agent=movie_agent) sci_fi_task = Task(name="SciFiTask", description="Recommends a sci-fi movie", expected_output="A list of 10 popular movies", agent=movie_agent)</code>
각 장르마다 승무원을 만듭니다
<code>action_crew = Crew(agents=[movie_agent], tasks=[action_task], verbose=True) comedy_crew = Crew(agents=[movie_agent], tasks=[comedy_task], verbose=True) drama_crew = Crew(agents=[movie_agent], tasks=[drama_task], verbose=True) sci_fi_crew = Crew(agents=[movie_agent], tasks=[sci_fi_task], verbose=True)</code>
장르 및 제국 테이트 정의
<code>GENRES = ["action", "comedy", "drama", "sci-fi"] class GenreState(BaseModel): genre: str = ""</code>
MovieRecommendationFlow
구축
이 클래스는 Flow
클래스에서 물려 받고 상태 기능을 사용합니다.
<code>class MovieRecommendationFlow(Flow[GenreState]): @start() def input_genre(self): genre = input("Enter a genre: ") print(f"Genre input received: {genre}") self.state.genre = genre return genre @router(input_genre) def route_to_crew(self): genre = self.state.genre if genre not in GENRES: raise ValueError(f"Invalid genre: {genre}") if genre == "action": return "action" elif genre == "comedy": return "comedy" elif genre == "drama": return "drama" elif genre == "sci-fi": return "sci-fi" @listen("action") def action_movies(self, genre): recommendations = action_crew.kickoff() return recommendations @listen("comedy") def comedy_movies(self, genre): recommendations = comedy_crew.kickoff() return recommendations @listen("drama") def drama_movies(self, genre): recommendations = drama_crew.kickoff() return recommendations @listen("sci-fi") def sci_fi_movies(self, genre): recommendations = sci_fi_crew.kickoff() return recommendations @listen(or_("action_movies", "comedy_movies", "drama_movies", "sci_fi_movies")) def finalize_recommendation(self, recommendations): print("Final movie recommendations:") return recommendations</code>
@listen
, @router
, or_
및 @start
데코레이터는 흐름의 실행을 관리합니다.
흐름 시각화
<code>flow = MovieRecommendationFlow() flow.plot() #This will generate a file, you'll need to display it separately (eg, using an image display function in your environment)</code>
흐름 시작
<code>recommendations = await flow.kickoff_async()</code>
결론
Crewai의 이벤트 중심 워크 플로는 AI 작업 오케스트레이션을 단순화합니다. @listen()
, @router()
및 주 관리와 같은 기능과 결합 된 Crewai Flows의 유연하고 적응적인 특성은 효율적이고 동적 AI 애플리케이션을 구축하기위한 강력한 도구를 만듭니다.
자주 묻는 질문
Q1. 입력을 흐름으로 어떻게 전달합니까? flow.kickoff(inputs={"counter": 10})
.
Q2. @start()
와 @listen()
의 차이점은 무엇입니까? @start()
마크 흐름 시작점; @listen()
마크 작업 완료에 의해 트리거 된 메소드.
Q3. 내 흐름을 어떻게 시각화합니까? flow.plot()
사용하십시오.
Q4. 인간의 피드백을 통합 할 수 있습니까? 예, Crewai Flows는 인간의 루프 피드백을 지원합니다.
위 내용은 Crewai의 에이전트 흐름은 무엇입니까? - 분석 Vidhya의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

에이전트 AI에서 작업하는 동안 개발자는 종종 속도, 유연성 및 자원 효율성 사이의 상충 관계를 탐색하는 것을 발견합니다. 나는 에이전트 AI 프레임 워크를 탐구하고 Agno를 만났다 (이전에는 ph-이었다.

SQL의 Alter Table 문 : 데이터베이스에 열을 동적으로 추가 데이터 관리에서 SQL의 적응성이 중요합니다. 데이터베이스 구조를 즉시 조정해야합니까? Alter Table 문은 솔루션입니다. 이 안내서는 Colu를 추가합니다

릴리스에는 GPT-4.1, GPT-4.1 MINI 및 GPT-4.1 NANO의 세 가지 모델이 포함되어 있으며, 대형 언어 모델 환경 내에서 작업 별 최적화로 이동합니다. 이 모델은 사용자를 향한 인터페이스를 즉시 대체하지 않습니다

문제가있는 벤치 마크 : 라마 사례 연구 2025 년 4 월 초, Meta는 LLAMA 4 제품군을 공개하여 GPT-4O 및 Claude 3.5 Sonnet과 같은 경쟁자들에 대해 호의적으로 배치 한 인상적인 성능 지표를 자랑했습니다. Launc의 중심

임베딩 모델의 힘 잠금 해제 : Andrew Ng의 새로운 코스에 대한 깊은 다이빙 기계가 완벽한 정확도로 질문을 이해하고 응답하는 미래를 상상해보십시오. 이것은 공상 과학이 아닙니다. AI의 발전 덕분에 R이되었습니다

비디오 게임이 불안을 완화하거나 집중하거나 ADHD를 가진 어린이를 지원할 수 있습니까? 건강 관리 도전이 전 세계적으로 급증함에 따라, 특히 청소년들 사이에서 혁신가들은 비디오 게임 인 가능성이없는 도구로 전환하고 있습니다. 이제 세계 최대의 엔터테인먼트 인더스 중 하나입니다

Rocketpy : 포괄적 인 가이드로 로켓 발사 시뮬레이션 이 기사는 강력한 파이썬 라이브러리 인 Rocketpy를 사용하여 고출력 로켓 런칭을 시뮬레이션하는 것을 안내합니다. 로켓 구성 요소 정의에서 Simula 분석에 이르기까지 모든 것을 다룰 것입니다.

Google의 AI 전략의 기초로서 Gemini Gemini는 Google의 AI 에이전트 전략의 초석으로 고급 멀티 모드 기능을 활용하여 텍스트, 이미지, 오디오, 비디오 및 코드에서 응답을 처리하고 생성합니다. Deepm에 의해 개발되었습니다
