Panacea 다중 에이전트 오케스트레이션¶
이 레시피는 Panacea의 에이전트 오케스트레이션 아키텍처를 설명합니다: 오케스트레이터가 작업을 할당하고, 에이전트를 선택하며, 순차적 및 계층적 워크플로를 지원하는 방법입니다.
배울 내용¶
- 시스템의 두뇌로서 오케스트레이터의 역할
- Panacea가 작업을 전문 에이전트에 라우팅하는 방법
- 순차적 워크플로와 계층적 워크플로의 차이
- 에이전트 팀이 공동 목표를 위해 협력하는 방법
- 에이전트가 새로운 기능을 사용할 수 있도록 도구 등록이 작동하는 방법
왜 중요한가¶
Panacea에서 오케스트레이터는 무작위가 아닙니다. 능력 설명, 작업 맥락 및 워크플로 상태에 따라 최상의 에이전트를 선택합니다. 이는 시스템을 예측 가능하고 확장 가능하게 만듭니다.
주요 개념¶
- 오케스트레이터 — 다음에 실행할 에이전트를 결정하는 중앙 조정자
- 에이전트 —
DocumentRetrievalAgent,GeneralKnowledgeAgent또는ChatHistoryAgent와 같은 정의된 목적을 가진 자율 단위 - 팀 — 공동 목표를 위해 함께 작업하는 에이전트 그룹
- 워크플로 — 협업 스타일; 다음과 같을 수 있습니다:
- 순차적: 한 단계가 다른 단계 뒤에 이어짐
- 계층적: 오케스트레이터가 전문가에게 하위 작업을 위임하는 명령 체계
- 도구 — 에이전트가 검색, 업로드 또는 코드 실행과 같은 작업을 수행하기 위해 호출할 수 있는 기능
주요 Panacea 파일¶
| 파일 | 중요성 |
|---|---|
Panacea/backend/agents/multi_agent_system.py |
오케스트레이터 및 워크플로 라우팅 로직 |
Panacea/backend/agents/autonomous_agent.py |
도구 등록 및 에이전트 생애 주기 |
Panacea/backend/agents/routing.py |
작업 라우팅 보조 로직 |
Panacea/backend/agents/reactive_agent.py |
다중 에이전트 시스템을 초기화하고 채팅 흐름에 연결 |
작동 방식¶
- 사용자가 작업이나 쿼리를 제출합니다.
- 오케스트레이터 에이전트가 입력을 검토하고 능력 및 작업 요구 사항에 따라 다음 에이전트를 선택합니다.
- 전문 에이전트가 파이프라인의 자신의 부분을 실행하고 중간 결과를 반환할 수 있습니다.
- 오케스트레이터는 순차적으로 계속 진행하거나 계층적 패턴으로 하위 작업을 계속 위임할 수 있습니다.
- 최종 결과가 조합되어 사용자에게 반환됩니다.
순차적 워크플로¶
순차적 워크플로는 다음과 같은 고정 파이프라인에 유용합니다:
- 문서 청크 검색 → 요약 → 사용자에게 답변
- 코드 컨텍스트 수집 → 코드 분석 → 검토 제안 반환
각 단계는 순서대로 실행되며, 다음 단계는 이전 단계의 출력을 사용합니다.
계층적 워크플로¶
계층적 워크플로는 오케스트레이터가 전문가를 관리하는 복잡한 작업에 유용합니다:
- 오케스트레이터가 데이터를 수집할 에이전트를 할당
- 다른 에이전트가 데이터를 검증
- 세 번째 에이전트가 최종 응답을 생성
이는 명령 체계와 유사합니다: 오케스트레이터가 통제권을 유지하고 주제 전문가에게 작업을 위임합니다.
도구 등록¶
Panacea는 동적 도구 등록을 지원합니다. 에이전트가 새로운 기능이 필요할 경우, backend/agents/autonomous_agent.py에서 register_tool(...)을 호출할 수 있습니다.
이는 요리책이 기존 도구를 사용하는 방법뿐만 아니라 시스템에 새로운 도구를 추가하는 방법도 문서화할 수 있음을 의미합니다.
피드백 루프¶
사용자 피드백은 에이전트 선택을 개선하는 데 필수적입니다. Panacea는 문서 Q&A 및 작업 결과에서 피드백을 기록하여 오케스트레이터가 어떤 에이전트와 도구가 최상의 결과를 생성하는지 학습할 수 있도록 합니다.
요리책을 위한 노트¶
이 레시피는 매뉴얼 설명의 강력한 후보입니다. 오케스트레이터가 결정을 내리는 이유를 보여주는 다이어그램이나 단계별 흐름 예제를 포함해야 합니다. 에이전트 선택을 우연에 맡기지 않아야 합니다.