使用 LangChain 实现本地 Agent

发布时间:2025-08-12 16:13:32编辑:Run阅读(17)

    ReAct(Reasoning and Acting)是一种将推理与行动相结合的框架,用于增强智能体在复杂任务中的表现。该框架通过将逻辑推理与实际行动紧密结合,使智能体能够在动态环境中更有效地完成任务。


    本文档介绍了如何使用 ReAct 框架在 Ollama 中实现本地代理(Agent)。通过结合 Ollama 的功能与 ReAct 的灵活性,用户能够在本地环境中创建一个高效的交互式代理。此实现能够处理复杂任务,支持多种交互模式,并且优化了任务自动化和用户体验,适合需要高实时性的本地应用场景。



    Agent是有推荐决策的能力,能通过用户的问题,得出每一步的Action、Observation、Thought,最终得出的Final Answer。这里就不自行编写相关tools了(也可以自己写个爬虫实现在线联网搜索功能),使用Python库google-search-results来实现Agent在线联网搜索功能。


    而在使用google-search之前,需要serpapi.com/注册后获取SERPAPI_API_KEY。

    在获取到SERPAPI_API_KEY后,通过代码“os.environ["SERPAPI_API_KEY"]”将key加载到环境变了中,并通过代码加载搜索工具、初始化Agent。

    from langchain_community.llms import Ollama
    from langchain_community.agent_toolkits.load_tools import load_tools
    from langchain.agents import initialize_agent
    from langchain.agents import AgentType
    import os
    os.environ["SERPAPI_API_KEY"] = "google search api key"
    
    #1、加载本地ollama大模型,对中文更友好
    llm = Ollama(model="psychology:latest")
    
    #2、加载在线搜索工具serpapi。
    tools = load_tools(["serpapi"], llm=llm)
    
    
    #3、最后,让工具、模型、代理类型等参数初始化代理,verbose=True打开日志
    agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True, handle_parsing_errors=True)
    
    #4、由于昨天国足刚刚公布了美加墨世界杯亚洲区预选赛十八强赛的人员名单,我们就用最新的国足名单来测试一下
    agent.run("中国男足最新名单,通过表格方式给出所有人员的名单")

    结果如下:结果是准确的

    image.png


    本地大模型对比

    这是同样的描述,直接通过ollama向qwen3模型进行提问的结果,可以说是一本正经的胡说八道了,因为本地模型没有最新的数据。

    image.png



关键字

上一篇: 使用 LangChain 构建本地 RAG 应用

下一篇: 没有了