96SEO 2026-07-04 22:39 0
欢迎来到 LangChain 实战的第一站。在上一篇中,我们理解了从 LLM 到 Agent 的演进逻辑——LLM 是"大脑",工具是"手脚",框架是"神经系统"。现在我们要亲自动手搭建这条神经系统,让一个真正的 Agent 跑起来。
环境准备LangChain 1.0 要求 Python 3.9 及以上。推荐使用 Python 3.10 或 3.11,这两个版本在性Neng和兼容性方面表现Zui佳。先检查当前版本:

python --version# 输出: Python 3.x
Ru果你还没有安装 Python,或者版本过低,推荐使用 uv 来管理。uv 是用 Rust 编写的 Python 包管理器,安装速度比传统 pip 快 10-100 倍,而且自带 Python 版本管理Neng力。
# 安装 uvpowershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# macOS / Linuxcurl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后创建项目并初始化:
# 创建项目根目录mkdir agent-designcd agent-design# 使用 uv 初始化项目uv init# 锁定 Python 版本uv python pin 3.10# 验证 Python 版本uv run python --version# 输出: Python 3.10.x
安装 LangChain
LangChain 1.0 的包结构Zuo了大幅精简。核心安装只需要几个包:
# 使用 uvuv add langchainuv add langgraphuv add langchain-openaiuv add python-dotenv
每个包的职责如下:
langchain核心框架
langgraph智Neng体构建工具
langchain-openaiOpenAI 模型集成
python-dotenv环境变量管理
安装完成后验证版本:
# 使用 uvuv run python -c "import langchain; print"# 使用 pippython -c "import langchain; print"
版本兼容性要求:langchain>= 1.0.0langgraph>= 0.0.1langchain-openai>= 0.0.1。Ru果你之前安装过 langchain 的 0.x 版本,建议先卸载再重装:
uv pip uninstall langchain langchain-core langgraphuv pip install langchain langgraph langchain-openai python-dotenv
配置 API Key
在开始编码之前,需要准备一个可用的大模型 API。对于国内开发者,推荐使用硅基流动 平台——它是一站式大模型云服务平台,提供多种开源模型的 API 服务,学习初期Ke以使用免费额度,大幅降低学习成本。
注册登录硅基流动官网,进入"API 密钥"页面点击"创建密钥",复制生成的 API Key。
.env 文件配置示例:
API_KEY=sk-abc123def456BASE_URL=https://api.siliconflow.cn/v1MODEL_NAME=Qwen/Qwen3-8B
.env 文件配置示例:
Ru果你使用其他模型提供商,只需geng换 .env 中的三个配置项,上层代码完全不用改动:API_KEY、BASE_URL、MODEL_NAME。
.gitignore 配置:务必在项目根目录创建 .gitignore 文件并添加以下内容,避免将敏感信息提交到版本控制系统。
.env
.venv/
pycache/
其他不需要提交的文件或目录
说实话,这样Zuo还是有点风险的,你懂的。
为什么百度不收录?可Neng是因为网站结构不利于爬虫抓取,或者内容geng新频率太低。
回答这个问题,其实hen简单——你得确保网站对搜索引擎友好,并且持续输出高质量内容。
害,这个问题困扰了hen多人,咱就是说还是得找专业人士帮忙优化下。
不对不对,应该是先检查 robots.txt 文件配置是否正确。
然后在模型广场搜索 Qwen/Qwen3-8B.demo01hello_agents.py :
# -- encoding: utf- -- '''@File : .demo01helloagents.py @Time : // :: @Author : xcy. @Version : @Description : . '''from langchain . chatmodels import initchatmodel from dotenv import load_dotenv import osload_dotenv
model = initchatmodel ( model= os . getenv ( "MODELNAME" ), apikey= os . getenv ( "APIKEY" ), baseurl= os . getenv ( "BASEURL" ), modelprovider= "openai", temperature= )
response = model.invoke print(f "类型: {type.name}" ) print(f "内容: {response.content}" ) print(f "Token 用量: {response.usage_metadata}" ) 运行结果:
Zui简 Agent
包含 Token 使用统计,这些元数据为监控 Agent 行为、分析成本提供了基础。➜ agentDesign git: ✗ uv run .demo01helloagents.py 类型: AIMessage 内容: 你好!我是Qwen,阿里巴巴集团推出的大规模语言模型,Neng够帮助你回答问题、创作文字、编程、分析数据等,支持多语言交流,并Neng根据需求提供实时信息和个性化服务。 Token 用量: {'inputtokens': , 'outputtokens': , 'totaltokens': , 'inputtokendetails': {'cacheread': }, 'outputtokendetails': {'reasoning': }} 模型的返回类型是
AIMessage对象。content是文本输出内容,usagemetadata环境准备好了三要素也理解了现在把它们组合起来创建一个完整的 AI Agent。 先导入对应的包:
'''@File : .demo01helloagents.py @Time : // :: @Author : xcy. @Version : @Description : . '''from langchain.agents import createagent from dotenv import loaddotenv import os from tools import getcurrenttime, addnumbers # 加载环境变量 loaddotenv # 定义工具列表 tools = # 系统提示词 systemprompt = "你是一个友好且乐于助人的AI助手。请用中文回答问题。当Ke以使用工具时优先使用工具获取准确信息。" # 接入大模型 model = initchatmodel, apikey=os.getenv, baseurl=os.getenv, modelprovider="openai", temperature=0 ) # 创建Agent agent = createagent questions = for question in questions: print print response = agent.invoke aimessage = response print
运行结果:
环境搭建常见问题排查
uv run hello_agent.py ============================================================ 用户: 现在几点了?助手: 当前时间是2025年12月03日14点27分30秒。 ============================================================ 用户:帮我算一下387 +624的和等于多少?助手:387 加上624 等于1011 。 ============================================================ 用户: 介绍一下你自己助手: 你好!我是一个由通义实验室开发的AI助手,我的名字叫Qwen,是基于Qwen模型构建的。我Ke以帮你回答各种问题,无论是知识性的还是创意性的;我还Neng协助你进行文本创作、数据分析等工作。Ru果有需要,尽管告诉我!😊
注意观察三个问题的不同行为前两个问题触发了工具调用,第三个是纯对话。Agent 自动判断 了哪些问题需要调用工具——这就是 ReAct 模式的核心Neng力。
流式输出是提升用户体验的关键特性有两种常用模式值流模式和消息流模式。 值流模式适合调试,Neng显示完整的中间数据;消息流模式适合面向用户,Neng逐 Token 输出纯文本回复。
实现流式请求方式如下: 值流模式逐步显示每个执行步骤 消息流模式逐 Token 输出 AI 的文本回复 geng详细的内容请参考第 篇《LLM基础概念》。
下图展示了用户与Agent之间的完整交互流程: sequenceDiagram participant U as 用户 participant A as Agent participant L as LLM模型 participant T as Tool工具 rect rgb Note over U,T: 场景一需要工具调用 U -> A: 提问:“现在几点了?” A -> L: 发送问题 + 工具列表 L --> A: 返回 toolcalls: getcurrenttime A -> T: 执行 getcurrent_time T --> A: “年月日::” A -> L: 发送工具结果 L --> A: 生成Zui终回答 A --> U: “现在是年月日::。” end rect rgb Note over U,T: 场景二无需工具 U -> A: 提问:“请介绍你自己” A -> L: 发送问题 + 工具列表 L --> A: 直接生成回答 A --> U: “我是一个AI助手……” end
上图清晰地展示了Agent的两种决策路径当模型判断需要工具时执行“思考→调用→整合”的三步循环;当判断不需要工具时直接生成回答。这个决策过程完全由模型自主完成。
为什么百度不收录?可Neng的原因包括网站结构不利于爬虫抓取,或者内容geng新频率太低。 关于这个问题的回答其实hen简单——只要确保网站对搜索引擎友好并且持续输出高质量内容就好了。 为了解决这个问题, 要检查网站的robots.txt文件配置是否正确,然后优化网站结构和内容质量。
Tools 是 Agent 的“手脚”,让它Neng执行具体动作——查询时间、搜索网页、读取文件等。LangChain 通过
@tool装饰器将普通Python函数变成Agent可调用的工具。定义工具有三个关键点: 函数实现具体的业务逻辑,如获取当前时间或进行加法计算。
"""文档字符串说明用途和参数"""描述了该工具的功Neng和使用场景,帮助LLM理解何时调用该工具及其参数含义。 通过@tool装饰器将函数注册为LangChain可识别的Tool对象。示例代码如下: from langchain.tools import tool @tool def getcurrenttime -> str:"""获取当前的日期和时间。当用户询问现在几点、今天几号时使用此工具。"""from datetime import datetime now = datetime.nowreturn now.strftime @tool def add_numbers -> int:"""将两个整数相加并返回结果。当用户需要Zuo加法计算时使用此工具。"""return a + b
在实际应用中等待Agent完成全部思考再返回结果可Neng会让用户等hen久。 LangChain提供了流式输出来解决这个问题,有两种常用模式值流模式和消息流模式。
值流模式逐步显示每个执行步骤调试用示例代码如下: for step in agent.stream : step.pretty_print
消息流模式逐Token输出AI的文本回复面向用户示例代码如下: for token, metadata in agent.stream : if isinstance and token.content: print
核心知识点回顾Model 是 Agent 的“大脑”,负责理解用户意图、决定是否调用工具、生成Zui终回答。 LangChain通过
init_chat_model函数统一了不同模型提供商的接口,通过base_url参数将请求指向特定平台,而不是OpenAI官方。Prompt 是 Agent 的“行为准则”,通过
system_prompt参数设定。它定义了Agent的角色定位、回复风格和Neng力边界。下图展示了完整的项目目录结构: flowchart TD ROOT --> ENV ROOT --> PY ROOT --> HELLO ROOT --> DEMO ROOT --> VENV ENV -.->|"dotenv加载"| HELLO PY -.->|" 安全提示永远不要把 API Key 硬编码在代码中。
.env文件应加入.gitignore,避免提交到版本控制。常见问题及解决方案包括网络连接错误、API Key 错误、包版本冲突、以及模型名称写错等。
通过本章的学习,我们完成了从零到一的全过程环境搭建、三要素配置、Zui简Agent实现以及核心功Neng演示。下章预告第 篇将带你鸟瞰LangChain 的生态系统七大核心组件、新版包结构精简要点,以及LangChain与LangGraph的关系与分工。
关于 LangChain 的geng多高级用法多参数嵌套工具 MCP协议等我们会在后续章节深入展开。现在我们Yi经成功搭建了一个基本的AI Agent,它Neng查询时间Zuo简单计算,并具备基本的对话Neng力。这是一个hen好的起点但也是一个刚刚开始,后续还有hen多值得探索的方向比如geng复杂的任务编排、多Agent协作等geng加高级的话题等待我们去发现和实践。
flowchart TB subgraph & quot; createagent 三要素 & quot; M T P end M --> AGENT T --> AGENT P --> AGENT AGENT --> RESULT style M fill:#E3F2FD,stroke:#1565C0 style T fill:#E8F5E9,stroke:#2E7D32 style P fill:#FFF3E0,stroke:#E65100 style AGENT fill:#F3E5F5,stroke:#7B1FA2 style RESULT fill:#4CAF50,color:#fff,stroke:#2E7D32
上图揭示了
create_agent的核心设计哲学——三要素正交组合。你Ke以独立地替换模型增减工调整提示词而不影响其他部分。这种解耦设计使得Agent的迭代和维护变得非常灵活。环境搭建过程中可Neng会遇到一些问题比如网络连接错误 API Key 错误或者包版本冲突等问题。下面我们来逐一排查这些常见的问题及其解决方案以确保我们的开发环境Neng够顺利运行。
网络连接错误症状:
小贴士:Ru果直接调用OpenAI官方API ,国内开发者通常需要配置代理反向代理或VPN 。而使用硅基流动等国内平台则不受此限制大大降低了入门门槛。你懂的这样Ke以省去hen多网络问题的烦恼。openai.ConnectionError或请求超时 可Neng原因网络连通性问题代理配置错误 解决方案检查本地网络是否Ke以访问目标API 端点。Ru果使用了代理确保代理地址和端口配置正确对于Python 环境Ke以在代码中设置如 os.environ ='http://127.0 . . :789' 。Ru果想深入了解Agent的内部思考过程,Ke以遍历
result: 代码示例如下 - result = agent.invoke for i in range])'}]}')')')for msg in result['=msg.content')')')if hasattr')')print')'这段代码Ke以帮助我们geng好地理解Agent的工作原理以及如何处理用户的输入。 Zui后一下本篇的主要内容我们学习了如何从零开始搭建LangChain开发环境并实现了第一个简单的AI Agent。通过这个过程我们掌握了环境配置、三要素设置以及基本功Neng实现的方法。同时我们还探讨了一些常见的环境搭建问题及其解决方案为后续geng深入的学习奠定了坚实的基础。
希望这些内容对你有所帮助哈,Ru果还有其他疑问欢迎继续交流探讨!😊 上图展示了本篇在整个系列中的位置——承上启下是从理论走向实战的关键节点。 Model 是 Agent 的”大脑“,负责理解用户意图、决定是否调用工具、生成Zui终回答。一个常见误区:hen多人以为安装了
langchain就Neng直接用 OpenAI 的模型,实际上还需要单独安装langchain-openai。这是有意为之的设计——每个模型提供商的集成是独立的包,避免安装不需要的依赖。 然后在模型广场搜索Qwen/Qwen3-8B,复制模型名称备用。Ru果使用硅基流动等国内平台,通常不会有网络问题。但Ru果直接调用 OpenAI 官方 API,需要确保网络连通。解决方案:检查本地网络连通性,或配置代理。 常见的入门问题包括网络连接错误、API Key 错误、包版本冲突、以及模型名称写错。排查步骤包括检查网络连通性、验证 API Key 是否正确加载、确认包版本兼容性,以及核对模型名称是否与平台一致。 关于 LangChain 的geng多高级用法,我们会在后续章节深入展开。下章预告:第 篇将带你鸟瞰 LangChain 的生态系统——七大核心组件、新版包结构精简要点,以及 LangChain 与 LangGraph 的关系与分工。现在我们Yi经成功搭建了一个基本的 AI Agent,它Neng查询时间,Zuo简单计算,并具备基本的对话Neng力。这是一个hen好的起点,但也是一个刚刚开始,后续还有hen多值得探索的方向,比如geng复杂的任务编排、多Agent协作等等geng加高级的话题等待我们去发现和实践。 Zui后为什么百度不收录?可Neng是因为网站结构不利于爬虫抓取,或者内容geng新频率太低。要解决这个问题, 要检查网站的robots.txt文件配置是否正确,然后优化网站结构和内容质量,确保对搜索引擎友好并且持续输出高质量内容。这样才Neng提高被收录的机会,你懂的!😊
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback