实验三 使用 LangChain 实现AI智能体
时间: 2025-07-13 22:39:15 浏览: 5
<think>好的,用户想了解如何通过LangChain实现AI智能体,特别是教程中的实验三。首先,我需要回忆一下LangChain的基本概念和构建智能体的流程。根据引用[4],LangChain可以用来构建智能体,并提到了使用Tavily检索工具。用户可能希望知道具体的步骤和代码示例。
接下来,我需要确定实验三可能涵盖的内容。通常教程中的实验三可能涉及多工具协同或更复杂的逻辑。结合引用[3],提到基于llama3和Phi-3-Vision的实践,可能涉及多模态处理。但用户的问题更关注LangChain本身,可能需要聚焦在基本智能体的构建步骤。
然后,考虑用户提供的引用内容。引用[4]提到了使用TavilySearchResults工具,需要注册API密钥。所以构建智能体的第一步是配置环境变量,导入必要的模块。接着需要初始化语言模型,比如使用ChatOpenAI,然后定义工具,比如搜索工具。然后创建智能体,并运行它。
用户可能需要详细的步骤说明和代码示例。根据引用[1],教程需要详细,确保代码正确。同时,引用[2]提到调教AI和用代码衔接大模型与业务,所以需要强调如何将工具与大模型结合。
需要检查是否有遗漏的步骤,比如智能体的类型(如ZERO_SHOT_REACT_DESCRIPTION),以及执行过程中可能遇到的问题,比如API密钥的设置。另外,引用[3]中的多模态可能需要额外处理,但用户的问题可能不需要涉及,除非实验三特别要求。
最后,生成相关问题时要围绕LangChain构建智能体的扩展,比如性能优化、多模态集成、工具开发等,参考已有的引用内容中的关键词。</think>以下是如何通过LangChain构建AI智能体的分步教程,结合实验三的核心内容:
### 一、LangChain构建AI智能体基础步骤
1. **环境配置**
```python
# 安装依赖
!pip install langchain openai tavily-python
# 设置API密钥(示例)
import os
os.environ["OPENAI_API_KEY"] = "sk-xxx"
os.environ["TAVILY_API_KEY"] = "tvly-xxx"
```
2. **工具与模型初始化**
```python
from langchain_openai import ChatOpenAI
from langchain_community.tools import TavilySearchResults
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-3.5-turbo")
tools = [TavilySearchResults(max_results=1)]
```
3. **智能体构建**
```python
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个能使用搜索工具回答问题的助手"),
("user", "{input}"),
("placeholder", "{agent_scratchpad}")
])
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
```
4. **执行查询**
```python
response = agent_executor.invoke({
"input": "2024年诺贝尔奖获得者有哪些最新进展?"
})
print(response["output"])
```
输出示例:
```
> 调用Tavily搜索"2024诺贝尔奖最新进展"...
> 根据搜索结果,2024年诺贝尔生理学或医学奖授予了...
```
### 二、实验三核心技术解析
1. **多工具协同机制**
- 可添加多个工具实现复合能力:
```python
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
wiki_tool = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
tools += [wiki_tool]
```
2. **记忆增强实现**
```python
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
memory=memory,
verbose=True
)
```
3. **响应格式控制**
通过输出解析器确保结构化返回:
```python
from langchain.output_parsers import StructuredOutputParser
from langchain_core.prompts import PromptTemplate
parser = StructuredOutputParser.from_response_schemas(...)
prompt = PromptTemplate(
template="...{format_instructions}...",
partial_variables={"format_instructions": parser.get_format_instructions()}
)
```
### 三、关键优化技巧
1. **提示工程优化**
```python
system_prompt = """你是一个专业研究员,需要遵守:
1. 优先使用Tavily搜索最新信息
2. 使用Wikipedia验证历史背景
3. 对矛盾信息标注来源"""
```
2. **错误处理机制**
```python
from langchain.schema import AgentAction, AgentFinish
def handle_error(error):
return AgentFinish(
return_values={"output": f"执行失败:{str(error)}"},
log=str(error)
)
```
[^1]: 通过持续学习和实践,你将能够充分利用LangChain的强大功能[^1]
[^2]: 大模型应用技术架构代码示例展示了如何将大模型和业务衔接[^2]
阅读全文
相关推荐



















