연구 및 작문을위한 llamaindex가있는 다중 에이전트 워크 플로
이 기사는 데이터 과학 블로그 톤의
자주 묻는 질문
-
이 예에서 핵심 도구는 DuckDuckGosearch입니다.이 도구는 후드 아래에서 Langchain의 DuckDuckGoSearchApiWrapper를 사용하는 DuckDuckGosearch입니다. 또한 메모를 녹음하고 보고서를 작성하고 검토 할 수있는 도구 도구도 있습니다.
- 작업 실행을위한 AI 에이전트를 정의합니다
- functionAgent 의 인스턴스입니다. 주요 필드는 다음을 포함합니다
- 이름 및 description System_Prompt : 에이전트에게 역할과 제약 조건에 대해 지시합니다 llm : 사용 된 언어 모델은 입니다 도구 도구 : 에이전트가 를 호출 할 수있는 기능 can_handoff_to : 어떤 에이전트가
- 에 손으로 제어 할 수 있는지
researchAgent
웹을 검색합니다 (지정된 쿼리 제한까지) 는 관련 결과를“노트”로 저장합니다 충분한 정보가 수집되면 다음 에이전트에게 손을 hand습니다. -
writeAgent 는 ResearchAgent가 수집 한 모든 메모를 사용하여 Markdown에서 보고서를 작성합니다. 피드백을 위해 검토 대기에 손을 대십시오
reviewAgent
-
는 정확성과 완전성을 위해 초안 내용을 검토합니다 변경이 필요한 경우 핸드 제어 그렇지 않으면 최종 승인을 제공합니다
에이전트 워크 플로 - 조정 작업 실행 에이전트 워크 플로우는 메시지와 상태가 에이전트 간의 이동 방법을 조정합니다. 사용자가 요청을 시작하면 (예 :“인터넷의 역사에 대한 간결한 보고서를 작성하십시오…”), 워크 플로우 : - 사용자 프롬프트를 받고 웹 검색을 수행할지 여부를 결정합니다. WriteAgent
- 는 메모를 사용하여 구조화 또는 스타일의 출력을 만듭니다 (마크 다운 문서와 같은). reviewAgent
- 최종 출력을 확인하고 개정을 위해 다시 보내거나 승인합니다.
컨텐츠가 승인되고 추가 변경이 요청되지 않으면 워크 플로가 종료됩니다. 워크 플로를 빌드 이 단계에서는 연구, 작문 및 검토 대리인을 포함한 에이전트 워크 플로를 정의합니다. root_agent는 research_agent로 설정되므로 프로세스는 연구 수집으로 시작합니다. 초기 상태에는 연구 노트, 보고서 내용 및 검토 상태에 대한 자리 표시자가 포함되어 있습니다. 워크 플로를 실행하십시오 워크 플로는 사용자 요청을 사용하여 실행되며, 이는 보고서에서 다루는 주제와 핵심 포인트를 지정합니다. 이 예제의 요청은 기원, 월드 와이드 웹 개발 및 현대의 진화를 포함하여 인터넷의 역사에 대한 간결한 보고서를 요구합니다. 워크 플로우는 에이전트를 조정 하여이 요청을 처리합니다 워크 플로의 실행을 모니터링하기 위해 이벤트를 스트리밍하고 에이전트 활동에 대한 세부 정보를 인쇄합니다. 이를 통해 현재 작동중인 상담원을 추적하고 중간 출력을보고 에이전트가 작성한 도구 호출을 검사 할 수 있습니다. 더 나은 가시성을 위해 도구 사용 및 응답과 같은 디버깅 정보가 표시됩니다. ############################################################################### # 1. INSTALLATION ############################################################################### # Make sure you have the following installed: # pip install llama-index langchain duckduckgo-search ############################################################################### # 2. IMPORTS ############################################################################### %pip install llama-index langchain duckduckgo-search from llama_index.llms.openai import OpenAI # For DuckDuckGo search via LangChain from langchain.utilities import DuckDuckGoSearchAPIWrapper # llama-index workflow classes from llama_index.core.workflow import Context from llama_index.core.agent.workflow import ( FunctionAgent, AgentWorkflow, AgentInput, AgentOutput, ToolCall, ToolCallResult, AgentStream ) import asyncio ############################################################################### # 3. CREATE LLM ############################################################################### # Replace "sk-..." with your actual OpenAI API key llm = OpenAI(model="gpt-4", api_key="OPENAI_API_KEY")
로그인 후 복사최종 보고서를 검색하고 인쇄하십시오 워크 플로가 완료되면 생성 된 보고서가 포함 된 최종 상태를 추출합니다. 보고서 내용이 인쇄되고 검토 에이전트의 검토 피드백이 이어집니다. 이렇게하면 출력이 완료되고 필요한 경우 더 세련 될 수 있습니다. ############################################################################### # 4. DEFINE DUCKDUCKGO SEARCH TOOL WITH SAFEGUARDS ############################################################################### # We wrap LangChain's DuckDuckGoSearchAPIWrapper with our own logic # to prevent repeated or excessive searches. duckduckgo = DuckDuckGoSearchAPIWrapper() MAX_SEARCH_CALLS = 2 search_call_count = 0 past_queries = set() async def safe_duckduckgo_search(query: str) -> str: """ A DuckDuckGo-based search function that: 1) Prevents more than MAX_SEARCH_CALLS total searches. 2) Skips duplicate queries. """ global search_call_count, past_queries # Check for duplicate queries if query in past_queries: return f"Already searched for '{query}'. Avoiding duplicate search." # Check if we've reached the max search calls if search_call_count >= MAX_SEARCH_CALLS: return "Search limit reached, no more searches allowed." # Otherwise, perform the search search_call_count += 1 past_queries.add(query) # DuckDuckGoSearchAPIWrapper.run(...) is synchronous, but we have an async signature result = duckduckgo.run(query) return str(result) ############################################################################### # 5. OTHER TOOL FUNCTIONS: record_notes, write_report, review_report ############################################################################### async def record_notes(ctx: Context, notes: str, notes_title: str) -> str: """Store research notes under a given title in the shared context.""" current_state = await ctx.get("state") if "research_notes" not in current_state: current_state["research_notes"] = {} current_state["research_notes"][notes_title] = notes await ctx.set("state", current_state) return "Notes recorded." async def write_report(ctx: Context, report_content: str) -> str: """Write a report in markdown, storing it in the shared context.""" current_state = await ctx.get("state") current_state["report_content"] = report_content await ctx.set("state", current_state) return "Report written." async def review_report(ctx: Context, review: str) -> str: """Review the report and store feedback in the shared context.""" current_state = await ctx.get("state") current_state["review"] = review await ctx.set("state", current_state) return "Report reviewed."
로그인 후 복사무한 검색 루프를 피하는 웹 검색 도구를 사용할 때 LLM이 "혼란스러워"및 검색 기능을 반복적으로 호출 할 수 있습니다. 이로 인해 불필요한 비용이나 시간 소비가 발생할 수 있습니다. 이를 방지하기 위해 두 가지 메커니즘을 사용합니다 하드 한계는 max_search_calls = 2 복제 DETECTION은 세트 ( past_queries )에 과거 쿼리를 저장하여 정확히 동일한 검색을 여러 번 반복하지 않도록합니다.
두 조건 중 하나가 충족되면 (최대 검색 또는 중복 쿼리), safe_duckduckgo_search 함수는 새 검색을 수행하는 대신 통조림 메시지를 반환합니다. > 무엇을 기대 해야하는가?
researchAgent
- writeAgent
-
는 공유 컨텍스트에서 "research_notes"를 읽습니다
짧은 마크 다운 보고서를 작성합니다
리뷰 에이전트에게 손을 대고 reviewAgent
인터넷 기록에 대한 간결한 보고서를 작성하라는 사용자 요청을받습니다. 아마도 최대 두 개의 뚜렷한 Duckduckgo 검색 (예 :“인터넷의 역사”및“월드 와이드 웹 팀 베르너 레어,”등을 수행 한 다음 record_notes를 호출하여 요약을 저장할 수 있습니다.컨텐츠를 평가합니다 변경이 필요한 경우 제어를 WriteAgent로 다시 전달할 수 있습니다. 그렇지 않으면 보고서를 승인합니다. 워크 플로가 끝나
최종 출력은 final_state [ "report_content"]에 저장됩니다
결론검색 에이전트로 나뉘어 검색 ,
및 리뷰 를 위해 :- 의 강력한 모듈 식 시스템을 만들 수 있습니다.
-
는 관련 정보를 수집합니다 (통제 된 방식으로 과도한 검색을 방지) 는 구조화 된 고품질 출력 를 생성합니다 정확도와 완전성에 대한 자체 점검
Langchain을 사용한 Duckduckgo 통합은 특수 API 키 또는 자격 증명없이 다중 에이전트 워크 플로우를위한 플러그 앤 플레이 웹 검색 솔루션을 제공합니다. 내장 된 보호 조치 (검색 통화 제한, 중복 탐지)와 결합 된이 시스템은 강력하고 효율적이며 광범위한 연구 및 콘텐츠 생성 작업에 적합합니다. 키 테이크 아웃 Multi-Agent 워크 플로우 LLM 에이전트에 특수 역할을 할당하여 효율성을 향상시킵니다. Duckduckgo와 같은 외부 도구를 사용하면 LLM 에이전트의 연구 기능이 향상됩니다. 검색 한계와 같은 제약 조건 구현은 불필요한 자원 소비를 방지합니다. 조정 된 에이전트 워크 플로우는 구조화 된 고품질 컨텐츠 생성을 보장합니다 잘 설계된 핸드 오프 메커니즘은 중복 작업과 무한 루프를 피하는 데 도움이됩니다. 자주 묻는 질문 - q1. 단일 다목적 대리인 대신 여러 에이전트를 사용하는 이유
위 내용은 연구 및 작문을위한 llamaindex가있는 다중 에이전트 워크 플로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











Vibe Coding은 끝없는 코드 라인 대신 자연 언어를 사용하여 애플리케이션을 생성함으로써 소프트웨어 개발의 세계를 재구성하고 있습니다. Andrej Karpathy와 같은 비전가들로부터 영감을 얻은이 혁신적인 접근 방식은 Dev가

2025 년 2 월은 Generative AI의 또 다른 게임 변화 달이었으며, 가장 기대되는 모델 업그레이드와 획기적인 새로운 기능을 제공합니다. Xai 's Grok 3 및 Anthropic's Claude 3.7 Sonnet, Openai 's G에 이르기까지

Yolo (한 번만 보이면)는 주요 실시간 객체 감지 프레임 워크였으며 각 반복은 이전 버전에서 개선되었습니다. 최신 버전 Yolo V12는 정확도를 크게 향상시키는 발전을 소개합니다.

이 기사는 최고의 AI 아트 생성기를 검토하여 자신의 기능, 창의적인 프로젝트에 대한 적합성 및 가치에 대해 논의합니다. Midjourney를 전문가에게 최고의 가치로 강조하고 고품질의 사용자 정의 가능한 예술에 Dall-E 2를 추천합니다.

ChatGpt 4는 현재 이용 가능하고 널리 사용되며 ChatGpt 3.5와 같은 전임자와 비교하여 상황을 이해하고 일관된 응답을 생성하는 데 상당한 개선을 보여줍니다. 향후 개발에는보다 개인화 된 인터가 포함될 수 있습니다

이 기사에서는 AI 모델이 Lamda, Llama 및 Grok과 같은 Chatgpt를 능가하는 것에 대해 논의하여 정확성, 이해 및 산업 영향의 장점을 강조합니다. (159 자).

Mistral OCR : 복수 문서 이해를 가진 검색 방지 생성 혁신 RAG (Resprieved-Augmented Generation) 시스템은 AI 기능을 크게 발전시켜보다 정보에 입각 한 대응을 위해 방대한 데이터 저장에 액세스 할 수 있도록했습니다.

이 기사는 Grammarly, Jasper, Copy.ai, Writesonic 및 Rytr와 같은 최고의 AI 작문 조수에 대해 논의하여 콘텐츠 제작을위한 독특한 기능에 중점을 둡니다. Jasper는 SEO 최적화가 뛰어나고 AI 도구는 톤 구성을 유지하는 데 도움이된다고 주장합니다.
