How to Guides
실행 과정에서의 인간 입력
Get Started
Core Concepts
How to Guides
- 커스텀 도구 만들기
- 순차적 프로세스
- 계층적 프로세스
- 나만의 매니저 에이전트 만들기
- 다양한 LLM 연결하기
- 커스텀 에이전트 설정
- 멀티모달 에이전트 활용하기
- 코딩 에이전트
- 도구 출력 결과 강제 지정
- 실행 과정에서의 인간 입력
- 비동기 방식으로 크루 시작하기
- Kickoff Crew for Each
- Replay tasks from latest crew kickoff
- 조건부 작업
- AgentOps를 활용한 에이전트 모니터링
- Langtrace를 활용한 에이전트 모니터링
- MLflow를 활용한 에이전트 모니터링
- OpenLIT로 에이전트 모니터링 시작하기
- Portkey를 활용한 에이전트 모니터링
- Langfuse로 에이전트 모니터링하기
Tools
- Browserbase Web Loader
- Code Docs RAG Search
- Code Interpreter
- Composio Tool
- CSV RAG 검색
- DALL-E Tool
- Directory RAG Search
- 디렉토리 읽기
- DOCX RAG 검색
- EXA Search Web Loader
- 파일 읽기
- 파일 쓰기
- Firecrawl 웹사이트 크롤링
- Firecrawl 웹사이트 스크랩
- Firecrawl Search
- Github Search
- Google Serper 검색
- JSON RAG 검색
- MDX RAG 검색
- MySQL RAG 검색
- NL2SQL Tool
- PDF RAG 검색
- PG RAG 검색
- 웹사이트 스크래핑
- Selenium Scraper
- Spider Scraper
- TXT RAG 검색
- Vision Tool
- 웹사이트 RAG 검색
- XML RAG 검색
- YouTube 채널 RAG 검색
- YouTube Video RAG Search
Telemetry
How to Guides
실행 과정에서의 인간 입력
복잡한 의사결정 과정에서 CrewAI와 인간의 입력을 통합하고, 에이전트의 속성과 도구의 모든 기능을 활용하는 방법
에이전트 실행 과정에서의 인간 입력
에이전트 실행 시나리오에서 인간의 입력은 매우 중요하다. 에이전트는 필요할 때 추가 정보나 명확한 설명을 요청할 수 있다. 이 기능은 복잡한 의사결정 과정이나, 작업을 효과적으로 완료하기 위해 더 많은 세부 정보가 필요한 경우에 특히 유용하다.
CrewAI에서 인간의 입력 활용하기
에이전트 실행에 인간의 입력을 통합하려면, 작업 정의에서 human_input
플래그를 설정한다. 이 기능을 활성화하면 에이전트는 최종 답변을 제공하기 전에 사용자에게 입력을 요청한다. 이 입력은 추가적인 컨텍스트를 제공하거나, 모호한 부분을 명확히 하거나, 에이전트의 출력을 검증하는 데 사용할 수 있다.
pip install crewai
import os
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool
os.environ["SERPER_API_KEY"] = "Your Key" # serper.dev API 키
os.environ["OPENAI_API_KEY"] = "Your Key"
# 도구 로드
search_tool = SerperDevTool()
# 역할, 목표, 도구, 추가 속성을 정의해 에이전트 생성
researcher = Agent(
role='수석 연구 분석가',
goal='AI와 데이터 과학 분야의 최신 동향 파악',
backstory=(
"당신은 선도적인 기술 싱크탱크에서 수석 연구 분석가로 근무한다. "
"AI와 데이터 과학 분야에서 떠오르는 트렌드와 기술을 파악하는 데 전문성을 갖췄다. "
"복잡한 데이터를 분석하고 실행 가능한 통찰력을 제시하는 능력이 뛰어나다."
),
verbose=True,
allow_delegation=False,
tools=[search_tool]
)
writer = Agent(
role='기술 콘텐츠 전략가',
goal='기술 발전에 관한 매력적인 콘텐츠 제작',
backstory=(
"당신은 기술과 혁신에 관한 통찰력 있고 매력적인 글을 쓰는 유명한 기술 콘텐츠 전략가다. "
"기술 산업에 대한 깊은 이해를 바탕으로 복잡한 개념을 매력적인 이야기로 전환한다."
),
verbose=True,
allow_delegation=True,
tools=[search_tool],
cache=False, # 이 에이전트에 대해 캐시 비활성화
)
# 에이전트를 위한 태스크 생성
task1 = Task(
description=(
"2025년 AI 분야의 최신 발전에 대한 종합적인 분석을 수행한다. "
"주요 트렌드, 획기적인 기술, 잠재적인 산업 영향을 파악한다. "
"분석 결과를 상세한 보고서로 작성한다. "
"최종 답변을 확정하기 전에 사람에게 초안을 확인받는다."
),
expected_output='2025년 AI 최신 발전에 대한 종합 보고서, 모든 내용을 빠짐없이 포함',
agent=researcher,
human_input=True
)
task2 = Task(
description=(
"연구 분석가의 보고서를 바탕으로 가장 중요한 AI 발전을 강조하는 매력적인 블로그 글을 작성한다. "
"글은 정보 제공적이면서도 접근 가능하도록 작성하며, 기술에 익숙한 독자를 대상으로 한다. "
"이러한 혁신의 본질과 미래에 대한 함의를 담은 이야기를 만든다."
),
expected_output='2025년 AI 최신 발전에 관한 3단락의 매력적인 블로그 글, 마크다운 형식으로 작성',
agent=writer,
human_input=True
)
# 순차적 프로세스로 크루 인스턴스 생성
crew = Crew(
agents=[researcher, writer],
tasks=[task1, task2],
verbose=True,
memory=True,
planning=True # 크루에 대해 계획 기능 활성화
)
# 크루가 작업을 시작하도록 함
result = crew.kickoff()
print("######################")
print(result)
On this page