news 2026/6/11 21:45:04

langchain怎么构造agant

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
langchain怎么构造agant

使用 LangChain 构造 Agent(智能体)现在已经变得非常简单,尤其是随着 LangChain 1.0 版本的发布,API 更加统一和易用。

你可以根据你的需求选择不同的复杂度。最简单的方式,只需要几行代码就能让大模型“动起来”。

这里我为你提供两种主流的构建方式:一种是极简的“开箱即用”模式,另一种是更灵活的“自定义”模式。

方式一:极简模式(推荐新手)

如果你只是想快速让模型具备搜索或计算能力,可以直接使用 create_react_agent 或 initialize_agent。

核心逻辑:大模型(LLM) + 工具集(Tools) = 智能体(Agent)

1. 安装依赖: pip install langchain langchain-openai python-dotenv

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import Tool
from langchain import hub

加载环境变量(把你的API Key放在 .env 文件里)
load_dotenv()

2. 准备“大脑” (LLM)
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

3. 准备“手脚” (Tools) - 这里以一个简单的计算器为例
def multiply(input_str):
a, b = map(int, input_str.split(','))
return a * b

tools = [
Tool(
name="Calculator",
func=multiply,
description="用于计算两个数字的乘积。输入格式为 '数字A, 数字B'"
)
]

4. 拿到现成的“身体框架” (Prompt)
这是一个通用的Agent提示词模板
prompt = hub.pull("hwchase17/react")

5. 组装智能体
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

6. 运行!
result = agent_executor.invoke({"input": "请计算 3 乘以 4 等于多少?"})
print(result)

方式二:自定义逻辑模式(适合复杂任务)

如果你想更深入地控制 Agent 的行为,或者使用旧版本的 LangChain(< 0.1.0),可以使用 initialize_agent。

from langchain.agents import initialize_agent, AgentType
from langchain.memory import ConversationBufferMemory

假设你已经有了 LLM 和 Tools
llm = ChatOpenAI(temperature=0)
tools = [your_tools_here]

为了让AI记得住上下文,我们给它加个“短期记忆”
memory = ConversationBufferMemory(memory_key="chat_history")

初始化 Agent
ZERO_SHOT_REACT_DESCRIPTION 是一种经典的推理模式
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True, # 开启后可以看到AI思考的过程(非常有趣!)
memory=memory # 注入记忆
)

直接运行
response = agent.run("你好,我是小明。我之前问过什么问题?")

核心组件拆解

为了让你更好地理解,我把构造 Agent 的积木拆解一下:

1. LLM(大脑):负责思考和决策。可以是 GPT、Claude、Llama 或者国产的通义千问等。
2. Tools(工具/手脚):负责执行具体任务。LangChain 社区有几百种工具(搜索、数据库查询、API调用)。
* 比如:TavilySearchResults(联网搜索)、DuckDuckGoSearchRun
3. Agent(决策逻辑):决定什么时候用哪个工具。
4. Memory(记忆):让对话有上下文,不会问了后面忘了前面。
5. AgentExecutor(执行器):负责运行整个循环,防止 AI 进入死循环。

💡 给你一个“万能公式”

如果你想接入联网搜索功能(这是最常用的功能),只需要替换 Tools 部分:

from langchain_community.tools import DuckDuckGoSearchRun
或者使用 Tavily (效果更好)
from langchain_community.tools.tavily_search import TavilySearchResults

search = DuckDuckGoSearchRun()
tools = [
Tool(
name="Search",
func=search.run,
description="当你需要回答实时问题或查找信息时使用"
)
]

总结:
现在的 LangChain 构造 Agent 就像点外卖套餐一样。你只需要准备好 LLM(主食)和 Tools(配菜),然后用 create_react_agent 这个包装器一包,就能得到一个能思考、能行动的 AI 助手了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 1:46:09

‌生物识别界面(指纹/人脸)测试方案

‌1. 测试背景与目标‌ 生物识别技术&#xff08;如指纹和人脸识别&#xff09;已广泛应用于金融支付、门禁系统和移动设备中&#xff0c;但其界面测试面临高精度要求和复杂环境挑战。软件测试从业者需确保系统在准确性、安全性和用户体验上达到工业级标准&#xff08;例如&am…

作者头像 李华
网站建设 2026/6/10 9:25:46

3.13 Ingress控制器实战:Nginx Ingress实现域名路由和HTTPS证书管理

3.13 Ingress控制器实战:Nginx Ingress实现域名路由和HTTPS证书管理 引言 Ingress是Kubernetes中用于管理外部访问的API对象,通过Ingress控制器可以实现基于域名的路由、SSL/TLS终止等功能。Nginx Ingress是最常用的Ingress控制器。本文将详细介绍Ingress的使用方法和Nginx…

作者头像 李华
网站建设 2026/6/9 22:52:00

使用 Python 批量在 HTML 文件中插入自定义 div 元素

适用人群&#xff1a;前端开发者、Python 自动化脚本初学者、网站维护人员在日常开发或网站维护中&#xff0c;我们经常需要对大量 HTML 文件进行统一修改&#xff0c;比如添加导航栏、公告条、统计代码等。手动一个个修改不仅效率低&#xff0c;还容易出错。本文将教你如何使用…

作者头像 李华
网站建设 2026/6/10 11:07:48

AI智能体框架选型指南:AutoGen、AgentScope、CAMEL和LangGraph深度解析

本文系统介绍四大AI智能体框架的设计理念与实战应用&#xff0c;探讨框架如何提升开发效率、实现组件解耦和状态管理。通过对比AutoGen的对话驱动、AgentScope的工程化架构、CAMEL的角色扮演范式和LangGraph的图结构工作流&#xff0c;分析各框架优势与局限。文章揭示了"涌…

作者头像 李华
网站建设 2026/6/9 18:32:41

接手的祖传代码全是复制粘贴,我用这招让代码量砍半还不踩坑!

接手的祖传代码全是复制粘贴&#xff0c;我用这招让代码量砍半还不踩坑&#xff01; 谁还没接过离职同事的“烂摊子”&#xff1f;打开代码文件的瞬间&#xff0c;直接瞳孔地震——同一个逻辑翻来覆去写了八遍&#xff0c;变量名起得像乱码&#xff0c;改一个小bug要在几十个地…

作者头像 李华