首页 > 教程攻略 > ai资讯 >基于Langchain框架的Agent智能体实现之工具集成

基于Langchain框架的Agent智能体实现之工具集成

来源:互联网 时间:2026-07-22 14:58:58

掌握智能体开发的关键技术,探索 Langchain 框架下的实用工具集成。

核心内容:

  1. 智能体开发中工具调用的重要性与核心理念
  2. Langchain 框架下的工具集成与函数实现
  3. 实例演示:基于 pandas 的智能数据分析工具开发过程

工具调用是大模型智能体的核心理念,没有工具就没有智能体的存在。

智能体开发,可以说是大模型应用里最值得关注的方向之一。市面上关于智能体的概念五花八门,但核心无非就两个:一个是函数调用,另一个是工具的实现。

说到函数调用,目前主流有两种方式:一种是早期的 function call,另一种是最近大火的 MCP 协议。无论哪种,最终目的都是让大模型能够调用外部工具来实现具体功能。而今天我们重点要聊的,就是基于 Langchain 框架来实现各类工具。

基于 Langchain 的工具开发

在智能体开发中,工具是一个绕不开的概念。操作数据库需要数据库工具,访问搜索引擎需要搜索工具……可以说,智能体里的所有外部调用,最终都是以工具的形式来体现的。

在实际开发中,工具通常以函数或服务的形式出现。比如定义一个搜索引擎工具,只需要封装一个函数,让大模型自己生成函数所需的参数,然后交给 Python 引擎执行,取回结果即可。

Langchain 内置了大量现成的工具,覆盖了搜索、代码解释器、数据库访问等多种场景,直接拿来用就行。具体支持哪些,可以参考下面的截图。

下面就以基于 pandas 的智能数据分析为例,演示如何实现一个简单的 Excel 数据分析工具。

首先需要安装 Langchain 相关的依赖包:

# 安装包
pip install --upgrade langchain_openai 
pip install --upgrade langchain

Langchain 官方封装了一个专门操作 pandas 的函数——create_pandas_dataframe_agent,用它来实例化一个 pandas Agent 即可:

agent = create_pandas_dataframe_agent(self.llm, df_list, allow_dangerous_code=True, verbose=True)

完整代码如下(当然,你也可以直接参考官方文档手动实现):

import os
import logging
import pandas as pd
from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
from langchain_openai import ChatOpenAI, OpenAI

# 需要换成你自己的参数
openai_api_key = "api_key"
openai_api_base = "openai_url"
model = "model"
# Adjust logging levels for specific libraries to reduce noise
logging.getLogger("openai").setLevel(logging.DEBUG)
logging.getLogger("langchain").setLevel(logging.DEBUG)
logging.getLogger("httpx").setLevel(logging.DEBUG)
logging.getLogger("httpcore").setLevel(logging.DEBUG)
logger = logging.getLogger(__name__)
logging.basicConfig(    
    level=logging.INFO,  # 设置日志级别为DEBUG    
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',  # 定义日志格式    
    datefmt='%Y-%m-%d %H:%M:%S'  # 定义时间格式
  )
  
  class LangChainPandas:    
      def __init__(self, model, temperature=0.8):        
        os.environ['OPENAI_API_KEY'] = openai_api_key        
        os.environ['OPENAI_API_BASE'] = openai_api_base        
        # self.llm = ChatOpenAI(model_name=model, verbose=True, temperature=temperature)        
        self.llm = OpenAI(model_name=model, openai_api_base=openai_api_base, openai_api_key=openai_api_key, temperature=temperature)    
        
      def create_agent(self, path_list):        
        df_list = [pd.read_excel(path) for path in path_list]        
        agent = create_pandas_dataframe_agent(self.llm, df_list, allow_dangerous_code=True, verbose=True)        
        return agent    
        
      def chat(self, query, path_list):        
        agent = self.create_agent(path_list)        
        result = agent.invoke(query)        
        return result.get('output', "")

if __name__ == "__main__":    
  agent = LangChainPandas(model)    
  # excel文件路径    
  path_list = ["path1", "path2"]    
  while True:        
    query = input("请输入您的问题: ")        
    result = agent.chat(query, path_list)        
    print(f"result: {result}")

从代码可以看出,核心逻辑并不复杂:定义好数据源,实例化 agent,然后自然语言提问即可。官方文档中还有更详细的场景示例,感兴趣的话可以深入研究一下。