news 2026/4/16 13:26:18

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/4/12 0:06:39

区块链应用UI自动化测试的特殊挑战与应对策略

区块链技术的去中心化和不可篡改性为应用开发带来革命性变革&#xff0c;但同时也为UI自动化测试引入独特难题。与传统Web应用不同&#xff0c;区块链UI测试需处理多节点交互、数据一致性保障和安全验证等复杂场景&#xff0c;这对测试从业者的工具选择和策略设计提出更高要求。…

作者头像 李华
网站建设 2026/4/16 10:43:39

智能穿戴设备微型界面测试方法论

一、微型界面特性与测试挑战 智能穿戴设备的屏幕尺寸通常在1-2英寸之间&#xff0c;其界面测试面临三大核心挑战&#xff1a; ‌空间限制‌&#xff1a;在有限像素区域内呈现复杂数据&#xff08;如健康指标动态图表&#xff09;&#xff0c;需验证信息密度与可读性的平衡。‌…

作者头像 李华
网站建设 2026/4/16 12:18:39

UI测试在DevOps流水线中的卡点设计:质量保障的智能防线

在DevOps高速交付的背景下&#xff0c;UI测试作为用户体验的最终防线&#xff0c;其卡点&#xff08;Quality Gates&#xff09;设计直接决定软件质量与发布效率。卡点通过在流水线关键阶段植入自动化检测或人工审核机制&#xff0c;拦截缺陷流入下游&#xff0c;避免因UI问题导…

作者头像 李华
网站建设 2026/4/16 12:21:53

自动化测试中的量子计算潜力探索

在软件工程领域&#xff0c;自动化测试已成为提升开发效率和质量保障的关键手段&#xff0c;但随着系统复杂度的增加&#xff0c;传统测试方法面临处理大规模数据和优化算法的瓶颈。量子计算凭借其独特的并行处理能力和高效性问题求解机制&#xff0c;为自动化测试带来了颠覆性…

作者头像 李华
网站建设 2026/4/15 13:10:16

人工智能课程【数据库模块】01.数据库基础

文章目录 第4章 数据库基础:数据管理的演进与现代实践 引言:数据管理的千年演进 4.1 数据库技术发展史:从文件系统到云原生 4.1.1 前数据库时代:文件系统的局限 4.1.2 数据库技术演进的时间线 第一代:层次与网状数据库(1960s-1970s) 第二代:关系型数据库革命(1970s-至…

作者头像 李华