LangChain + 通义千问:从0开始搭建 Agent
LangChain + 通义千问:从0开始搭建 Agent
最近想使用LangChain写个 Agent 玩玩,因为通义千问有免费 Token 额度,就想拿它练手。结果发现相关资料太碎了,有的说要装这个包,有的代码跑起来报找不到类。我把这几天的自学成果整理了一下:从去哪里领免费 Token,到怎么写配置文件,再到最后写出一个能自动查天气的 Agent 实例。
相关参考资源
在自学过程中,以下文档给了我很大帮助,推荐大家收藏备用:
-
阿里云百炼参考手册:在 LangChain 中使用百炼模型
-
百炼可用模型列表:查看支持的模型及名称
-
LangChain 官网文档:LangChain Python Quickstart
-
LangChain 中文文档:LangChain 中文网快速入门
一、 领取通义千问免费额度
想要领取这些 Token,你需要完成阿里云账号的注册并开通“百炼”服务。
第一步:准备工作
- 访问 阿里云官网。
- 注册/登录账号,并确保已完成 实名认证(这是领取的必要条件)。
第二步:进入百炼控制台
- 搜索“百炼”或“大模型服务平台”。
- 进入百炼控制台首页。
- 如果是首次进入,页面顶部会弹出“开通模型服务”的提示,点击 “立即开通”。
- 阅读并同意相关服务协议。
第三步:查看与确认额度
- 开通成功后,系统会自动发放新人礼包,无需手动点击“领取”按钮。
- 验证方法:在左侧菜单栏点击 “模型用量”,在“免费额度”页签下,你可以清晰地看到每个模型的总额度、已用额度和到期时间。
二、 集成准备:获取 API Key 与环境配置
下面主要介绍如何将阿里云百炼提供的模型集成到大模型应用开发框架 LangChain 中。
1. 获取 API Key
- 进入百炼控制台,在左侧导航栏找到 “密钥管理”。
- 点击 “创建 API-KEY”,系统会生成一串密钥。
注意:请妥善保存 API-KEY,它是你调用模型的凭证,不要泄露。
2. 配置 API Key 到环境变量
在 Windows 系统中,可以通过CMD 或 PowerShell 配置环境变量。
CMD 中配置:
- 在 CMD 中运行以下命令(用您的 Key 代替提示文字):
# 用刚刚创建的API Key代替YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
- 打开一个新的 CMD 窗口,运行以下命令检查是否生效:
echo %DASHSCOPE_API_KEY%
PowerShell 中配置:
- 在 PowerShell 中运行以下命令:
# 用刚刚创建的API Key代替YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)
- 打开一个新的 PowerShell 窗口,运行以下命令检查是否生效:
echo $env:DASHSCOPE_API_KEY
三、 LangChain 集成说明
这里当时看的时候有些迷糊,重点说明一下:
LangChain 提供了数百个大型语言模型和数千个其他集成的集成。这些服务由独立供应商的包组成。本文主要通过 DashScope(阿里云推出的大模型服务平台)进行集成。
其实也可以使用 OpenAI 平台协议进行集成(百炼目前支持部分模型兼容 OpenAI 格式),但由于本文是为了解决“通义千问原生集成”的痛点,所以不多做 OpenAI 平台的介绍。本文全程使用 Python 进行讲解。
1. 配置环境
在使用前需要安装以下基础依赖:
# 安装 LangChain 主包
pip install -U langchain
# 安装集成插件库
pip install langchain-community
pip install dashscope
四、 代码实现:模型调用与 Agent 搭建
这是我最终跑通的代码实例。我定义了一个简单的天气查询工具,并让 Agent 使用通义千问模型来回答。
import json
from langchain.agents import create_agent # 注意:请确保您的环境版本支持此调用
from langchain_community.chat_models.tongyi import ChatTongyi
# 1. 定义工具函数
def get_weather(city: str) -> str:
"""获取指定城市的天气情况"""
return f"{city}总是阳光明媚"
# 2. 初始化大模型
# 这里使用的是 qwen3-max,你也可以换成 qwen-plus 等
llm = ChatTongyi(model="qwen3-max", streaming=True)
# 3. 创建 Agent 实例
agent = create_agent(
model=llm,
tools=[get_weather],
system_prompt="你是一个说话温柔的漂亮御姐,人民的好帮手,我的好工具人",
)
# 4. 调用 Agent 处理问题
result = agent.invoke(
{"messages": [{"role": "user", "content": "上海天气如何"}]},
)
print("\n\n--- 最终完整结果 (JSON) ---")
# 5. 格式化输出结果
def json_serial(obj):
"""JSON 序列化辅助函数,处理模型返回的特殊对象"""
if hasattr(obj, 'model_dump'):
return obj.model_dump()
if hasattr(obj, 'dict'):
return obj.dict()
return str(obj)
print(json.dumps(result, indent=4, ensure_ascii=False, default=json_serial))
五、 结语
当我第一次搜索“langchain使用通义千问api”时,出来的结果真的让我很头大。希望这篇笔记能把这一套流程讲清楚,从领额度到最后看到代码跑出 JSON 结果,大家照着做应该都能成功。
自学大模型的路上坑很多,尤其是国产模型和国外框架的适配,大家在运行中遇到了 ImportError 或者其他报错,欢迎在评论区一起交流!
更多推荐



所有评论(0)