用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群组。