用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羣組。