AI News HubLIVE
站内改写

用Groq搭建智慧研究助手:結合LangGraph、工具呼叫、子代理和記憶功能

本教程詳細演示瞭如何利用Groq的免費OpenAI相容推理端點,結合LangGraph、LangChain以及自定義工具(包括網頁搜尋、檔案操作、Python執行、技能載入、子代理委派和長期記憶),構建一個可執行的多步驟研究代理。透過一個實際任務(小型語言模型簡報),展示了代理發現技能、委派子研究、生成結構化輸出和儲存記憶的完整流程。

文章情報

工程師進階

要點

  • 使用Groq的API作為後端,透過LangChain的ChatOpenAI介面呼叫llama-3.3-70b-versatile模型。
  • 構建了包含網頁搜尋、檔案讀寫、程式碼執行、技能管理和記憶儲存的工具集。
  • 實現了子代理機制,允許主代理將聚焦的子任務委派給隔離的工作流。
  • 透過LangGraph的圖結構管理代理迴圈,支援工具呼叫和狀態跟蹤。

為什麼重要

這條新聞值得關注,因為使用Groq的API作為後端,透過LangChain的ChatOpenAI介面呼叫llama-3.3-70b-versatile模型。

技術影響

可能影響模型選型、推理成本、產品能力和評測基準。

在本文中,我們將逐步構建一個基於Groq的智慧研究代理工作流。該工作流直接使用Groq的免費OpenAI相容推理端點,透過配置LangChain的ChatOpenAI介面,以Groq的API金鑰和基礎URL接入快速託管模型(如llama-3.3-70b-versatile)進行基於工具的邏輯推理。隨後,我們為模型連線了多種實用工具:網頁搜尋、網頁抓取、檔案處理、Python程式碼執行、技能載入、子代理委派以及長期記憶。教程結束時,我們擁有一個可執行的多步驟Groq代理,能夠研究主題、委派聚焦的子任務、生成結構化輸出,併為後續執行儲存有用資訊。

我們首先在Colab中搭建了一個沙盒專案目錄,用於組織上傳檔案、工作區、輸出、技能和記憶。Sandbox路徑為/content/deerflow_sandbox,包含uploads、workspace、outputs、skills/public、skills/custom和memory子目錄。我們還定義了路徑安全檢查函式_safe(),確保所有檔案操作都在沙盒範圍內。接著,我們定義了三種可複用技能:research(多源網頁研究並生成結構化筆記)、report-generation(將研究筆記綜合為Markdown報告)、code-execution(在沙盒中執行Python程式碼)。這些技能透過register_skill函式註冊到全域性SKILLS字典中。同時,我們初始化了一個簡單的JSON長期記憶檔案long_term.json,用於跨多次執行儲存事實和偏好。

核心工具集包括:list_skills(列出所有技能描述)、load_skill(載入特定技能的SKILL.md內容)、web_search(透過DuckDuckGo搜尋網頁,返回標題、URL和摘要)、web_fetch(抓取URL並清理HTML,提取純文本)、file_write(寫入檔案到沙盒路徑)、file_read(讀取檔案前8KB)、file_list(列出沙盒目錄下的檔案和資料夾)、python_exec(在沙盒環境中執行Python程式碼並捕獲輸出)、remember(將事實持久化到長期記憶)和recall(檢索最近20條記憶)。這些工具使用LangChain的@tool裝飾器定義,並繫結到Groq模型。

特別地,我們實現了子代理工具spawn_subagent,它允許主代理將聚焦的任務委派給一個隔離的助手,該助手擁有受限的工具集(預設為web_search、web_fetch、file_write、file_read)。子代理在獨立的對話上下文中執行,無法訪問主代理的歷史,最終返回一個以“FINAL REPORT:”開頭的結構化報告。這實現了任務的並行化和關注點分離。

我們將所有工具收集到ALL_TOOLS列表中,並定義了一個領導系統提示LEAD_SYSTEM,賦予代理名稱“DeerFlow-Lite”。系統提示描述了沙盒佈局、操作原則(如對於複雜任務先列出技能再載入執行)、使用子代理進行聚焦子任務、將中間結果儲存到workspace/、將最終交付物儲存到outputs/,以及使用remember()跨會話儲存知識。

我們使用LangGraph構建工作流:定義AgentState型別(包含訊息列表),建立agent節點(呼叫繫結工具的LLM),建立tools節點(執行工具呼叫),並透過條件邊讓代理在推理和工具執行之間迴圈,直到不再呼叫工具為止。編譯後的圖物件APP代表整個代理。

最後,我們實現了run()函式來執行任務,它流式處理每個步驟,列印工具呼叫和輸出。我們執行了一個演示任務:要求代理研究2025年小型語言模型(SLM)的簡報。代理依次執行:發現技能、生成子研究代理收集三個知名SLM的詳細資訊(包括大小、基準測試和用例)、載入報告生成技能編寫簡報、將關鍵要點儲存到長期記憶,並總結結果。整個流程展示了代理的自主工作能力。

總而言之,我們建立了一個緊湊而強大的Groq代理框架,演示了Groq的OpenAI相容API如何作為高階LLM工作流的快速、可訪問後端。利用LangGraph管理代理迴圈,LangChain繫結工具,以及自定義Python工具賦予系統對搜尋、檔案、程式碼執行和記憶的受控訪問。隔離的子代理有效處理聚焦研究任務,而主代理協調整體工作流。該框架可擴充套件為研究助手、自動化簡報生成器以及多步驟AI應用。

訪問完整程式碼和筆記本請參考原文連結。關注我們的Twitter,加入130k+ ML SubReddit或訂閱Newsletter。Telegram使用者也可加入Telegram群組。