基于Langchain框架的Agent智能体实现之工具集成
来源:互联网
时间:2026-07-22 14:58:58
掌握智能体开发的关键技术,探索 Langchain 框架下的实用工具集成。
核心内容:
- 智能体开发中工具调用的重要性与核心理念
- Langchain 框架下的工具集成与函数实现
- 实例演示:基于 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,然后自然语言提问即可。官方文档中还有更详细的场景示例,感兴趣的话可以深入研究一下。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名