> 백엔드 개발 > 파이썬 튜토리얼 > 승무원 디버깅: CrewAI에서 에이전트 및 작업 분리

승무원 디버깅: CrewAI에서 에이전트 및 작업 분리

Barbara Streisand
풀어 주다: 2025-01-23 18:14:12
원래의
757명이 탐색했습니다.

Debugging Your Crew: Isolating Agents and Tasks in CrewAI

CrewAI로 복잡한 다중 에이전트 AI 시스템을 개발하는 것은 빠르게 어려워질 수 있습니다. 이 게시물에서는 더 쉬운 디버깅과 더 빠른 반복을 위해 개별 에이전트와 작업을 분리하고 테스트하는 방법을 보여줍니다.

고립의 이점

CrewAI 시스템의 구성요소를 분리하는 것은 단위 테스트와 유사합니다. 이 접근 방식은 다음과 같은 몇 가지 주요 이점을 제공합니다.

  • 간소화된 디버깅: 단일 에이전트나 작업에 집중하여 문제를 신속하게 식별하므로 전체 시스템의 로그를 살펴볼 필요가 없습니다.
  • 신속한 반복: 전체 팀을 반복적으로 실행하지 않고도 에이전트 동작 또는 작업 정의에 대한 수정 사항을 테스트합니다.
  • 목표 성능 최적화: 시스템의 나머지 부분과 분리될 때 개별 구성 요소를 더욱 효과적으로 프로파일링하고 최적화합니다.

핵심 요소를 살펴보겠습니다.

  1. researcher 요원(agents.yaml):

    <code class="language-yaml"> researcher:
       role: "Senior Research Analyst"
       goal: "Uncover groundbreaking technologies in AI"
       backstory: "A highly skilled researcher with a passion for AI advancements."
       llm: gemini/gemini-1.5-flash # Replace with your preferred LLM
       allow_delegation: false
       tools:
         - WebSearchTool</code>
    로그인 후 복사
  2. research_task(tasks.yaml):

    <code class="language-yaml"> research_task:
       description: "Research the latest developments in AI for 2024."
       expected_output: "A report summarizing the key AI trends."
       agent: researcher</code>
    로그인 후 복사
  3. IndependentCrew 클래스(crew.py):

    <code class="language-python"> from crewai import Agent, Crew, Process, Task
     from crewai.project import CrewBase, agent, crew, task
     from .tools import WebSearchTool
    
     @CrewBase
     class IndependentCrew():
         """IndependentCrew crew"""
    
         agents_config = 'config/agents.yaml'
         tasks_config = 'config/tasks.yaml'
    
         @agent
         def researcher(self) -> Agent:
             return Agent(
                 config=self.agents_config['researcher'],
                 verbose=True,
                 tools=[WebSearchTool()]
             )
    
         @task
         def research_task(self) -> Task:
             return Task(
                 config=self.tasks_config['research_task'],
             )
    
         @crew
         def crew(self) -> Crew:
             """Creates the IndependentCrew crew"""
    
             return Crew(
                 agents=self.agents,
                 tasks=self.tasks,
                 process=Process.sequential,
                 verbose=True,
             )</code>
    로그인 후 복사
  4. 에이전트를 독립적으로 실행(run_agent.py): 이 예에서는 제작진 컨텍스트 외부에서 에이전트를 생성 및 사용하고, 사용자 정의 작업을 실행하고, 정의된 에이전트와 작업을 재사용하는 방법을 보여줍니다.

  5. 작업을 독립적으로 실행(run_task.py): 이는 동기 및 비동기 실행을 포함하여 작업을 독립적으로 생성 및 실행하고 사용자 정의 컨텍스트 및 도구를 사용하는 방법을 보여줍니다. 또한 사용자 정의 컨텍스트로 정의된 작업을 재사용하는 방법도 보여줍니다.

결론

에이전트와 작업을 독립적으로 실행할 수 있는 기능은 CrewAI 개발에 상당한 유연성과 제어 기능을 제공합니다. 이러한 격리된 테스트 접근 방식은 디버깅을 간소화하고 반복을 가속화하며 전반적인 효율성을 향상시킵니다. 제공된 코드 예제는 이 기술을 프로젝트에 통합하기 위한 실용적인 시작점을 제공합니다. 자세한 내용과 지원은 CrewAI 문서와 GitHub 저장소를 참조하세요.

자원:

위 내용은 승무원 디버깅: CrewAI에서 에이전트 및 작업 분리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿