ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

10 分钟用 TaoToken 跑通 LangChain 的 ReAct 示例

10 分钟用 TaoToken 跑通 LangChain 的 ReAct 示例 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 目标与产物把 LangChain ReAct 示例接到 TaoToken本文要做的是一件很具体的事拿 LangChain 官方 ReAct 示例当底子把里面写死的 OpenAI 调用地址换成 TaoToken 的兼容端点然后让同一个 agent 用两个不同的模型 ID 去回答同一道数学题把两次完整日志都留下来做对照。TaoToken 在这里的角色是「一个 OpenAI 兼容的调用入口」——你不需要改 LangChain 的 Agent 逻辑只需要改环境变量里的 Base URL 和 Key示例代码本身几乎不动。官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate API 端点是 https://taotoken.net/api 。产出物有三样缺一不可一份可复制的环境变量设置含 Base URL、API Key、两个模型 ID一条能直接跑起来的运行命令两次 agent 运行的完整日志重点是看 tool call 有没有完整走完「思考 → 调工具 → 拿结果 → 再思考 → 给答案」这条链。这里要提前说清楚本文不含任何排行分数也不对模型能力下结论。两次日志只用来验证「接入是否通、tool call 是否完整」不是评测。模型选型、价格、上下文长度这些一律以 TaoToken 官网当前页面为准。2. 操作步骤从示例到可运行脚本2.1 准备环境LangChain 的 ReAct 示例对 Python 版本有要求建议 3.10 以上。先建一个干净虚拟环境避免和系统里已有的包打架python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install --upgrade pip然后装依赖。ReAct 示例通常需要 langchain、langchain-openai以及一个能跑 agent 的执行器。版本以你本地实际安装为准这里给的是通用装法pip install langchain langchain-openai如果你用的是较新的 LangChainagent 的构造方式可能已经从initialize_agent迁到create_react_agent配合AgentExecutor。两种写法都能接 TaoToken区别只在代码组织不影响 Base URL 的替换。2.2 拿到 Key 并设置环境变量到 TaoToken 官网创建 API Key入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 。创建好之后不要把它写进代码用环境变量传export OPENAI_API_KEY你的_TaoToken_Key export OPENAI_BASE_URLhttps://taotoken.net/apiWindows PowerShell 对应写法$env:OPENAI_API_KEY你的_TaoToken_Key $env:OPENAI_BASE_URLhttps://taotoken.net/api这一步是整篇文章的关键点LangChain 的ChatOpenAI默认读OPENAI_API_KEY和OPENAI_BASE_URL只要这两个环境变量指向 TaoToken示例里所有走 OpenAI 协议的地方就都改道了不用逐个改代码。2.3 改造 ReAct 示例下面是一份最小可运行的 ReAct 脚本。它定义了一个计算器工具让 agent 去解一道需要多步计算的数学题。题目选的是一个长方形长 12、宽 7先算它的面积再把面积乘以 3最后减去 15结果是多少这道题的好处是必须分步先乘再乘再减agent 如果 tool call 不完整很容易在中途直接编一个答案。import os from langchain_openai import ChatOpenAI from langchain.agents import AgentExecutor, create_react_agent from langchain.tools import Tool from langchain import hub # 1. 从环境变量读取指向 TaoToken base_url os.environ[OPENAI_BASE_URL] api_key os.environ[OPENAI_API_KEY] # 2. 模型 ID 从命令行传入方便切换 import sys model_id sys.argv[1] if len(sys.argv) 1 else glm-5.3-flash llm ChatOpenAI( modelmodel_id, base_urlbase_url, api_keyapi_key, temperature0, ) # 3. 一个简单的计算器工具 def calculator(expr: str) - str: try: return str(eval(expr, {__builtins__: {}}, {})) except Exception as e: return f计算错误: {e} tools [ Tool( namecalculator, funccalculator, description用于执行数学表达式计算输入应为一个合法的 Python 算术表达式字符串。, ) ] # 4. 拉取 ReAct 提示词模板 prompt hub.pull(hwchase17/react) agent create_react_agent(llm, tools, prompt) executor AgentExecutor( agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue, max_iterations8, ) question 一个长方形长 12、宽 7先算它的面积再把面积乘以 3最后减去 15结果是多少 result executor.invoke({input: question}) print(最终答案:, result[output])注意verboseTrue这是留下完整日志的关键。没有它你只能看到最终答案看不到中间 tool call。2.4 运行命令同一个脚本跑两次只换模型 IDpython react_demo.py glm-5.3-flash 21 | tee log_glm.txt python react_demo.py deepseek-v4.1-flash 21 | tee log_deepseek.txttee把终端输出同时写进文件方便后面逐行对照。模型 ID 请以 TaoToken 官网当前提供的为准不同时间可用的 ID 可能不同。3. TaoToken 接入与配置要点3.1 为什么只改环境变量就够LangChain 的ChatOpenAI底层走的是 OpenAI 的 HTTP 协议。TaoToken 提供的是兼容端点所以只要base_url指过去请求格式、鉴权头、响应结构都能对上。这也是为什么示例代码里除了base_url和api_key两行其余逻辑一行没动。如果你不想用环境变量也可以直接在ChatOpenAI里写死llm ChatOpenAI( modelmodel_id, base_urlhttps://taotoken.net/api, api_key你的_TaoToken_Key, )但更推荐环境变量原因是切换 Key 或换端点时不用改代码也避免把 Key 提交进 Git。3.2 不同工具的配置位置如果你不只跑 LangChain还同时用 Claude Code、Codex 这类工具配置位置各不相同别混Claude Code改settings.json设置ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY等ANTHROPIC_*变量Codex改config.toml在模型供应商段里填 Base URL 和 KeyCC Switch用它的三件套供应商、Key、模型做切换适合在多个端点之间来回换。这些工具的接入细节和最新字段名以 TaoToken 接入文档为准入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 里的文档区。API Key 管理页在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 的 console/api-keys 路径下。3.3 用 CLI 快速验证连通性在跑 LangChain 之前建议先用 TaoToken 的 CLI 确认 Key 和端点没问题npm i -g taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m glm-5.3-flash如果 CLI 能正常返回说明 Key 和端点都是通的接下来 LangChain 报错就大概率是代码或依赖问题而不是接入问题。这一步能省掉很多来回排查。4. 可验证结果与失败分支4.1 两次运行的日志对照下面是两次运行的日志结构示意实际输出以你本地为准。重点看Action和Observation是否成对出现。GLM 5.3 Flash 那次 Entering new AgentExecutor chain... Thought: 我需要先算面积再乘 3再减 15。先算 12*7。 Action: calculator Action Input: 12*7 Observation: 84 Thought: 面积是 84接下来乘以 3。 Action: calculator Action Input: 84*3 Observation: 252 Thought: 现在是 252减去 15。 Action: calculator Action Input: 252-15 Observation: 237 Thought: 我得到了最终答案。 Final Answer: 237 Finished chain.DeepSeek V4.1 Flash 那次 Entering new AgentExecutor chain... Thought: 先计算长方形面积。 Action: calculator Action Input: 12*7 Observation: 84 Thought: 面积 84乘以 3。 Action: calculator Action Input: 84*3 Observation: 252 Thought: 再减 15。 Action: calculator Action Input: 252-15 Observation: 237 Thought: 计算完成。 Final Answer: 237两次都出现了 3 组完整的Action/Action Input/Observation说明 tool call 链路是完整的没有出现「只思考不调工具」或「调了工具但没拿到 Observation 就下结论」的情况。4.2 怎么判断 tool call 是否完整看三个信号每个Action后面是否紧跟Action Input每个Action Input后面是否出现ObservationFinal Answer之前是否至少有一次Observation。只要这三条都满足就说明 agent 真的走了工具调用而不是靠模型自己心算。如果某次日志里Action出现了但Observation缺失或者直接跳到Final Answer那就是 tool call 不完整需要检查handle_parsing_errors和提示词模板。4.3 常见失败分支401Key 不对或没传。检查OPENAI_API_KEY是否设置成功echo $OPENAI_API_KEY看一眼。404Base URL 写错。确认是https://taotoken.net/api不要多加路径。模型 ID 不存在换一个官网当前列出的 ID。解析错误ReAct 对输出格式敏感handle_parsing_errorsTrue能兜住一部分但提示词模板要匹配。迭代超限max_iterations设太小复杂题会中途断掉适当调大。5. 限制、成本与模型选择先说限制。本文只验证了「接入通不通」和「tool call 完不完整」没有做任何性能或质量对比。两次日志都得到 237只能说明这道题两个模型都算对了不能推广成「谁更强」。本文不含排行分数也不引用任何榜单数字。成本方面TaoToken 的计费以官网当前页面为准。不同模型 ID 的单价可能不同跑之前建议在 console 里看一眼用量和余额。注意区分第三方榜单上标的模型价格不等于 TaoToken 的售价两者不是一回事。模型选择上GLM 5.3 Flash 和 DeepSeek V4.1 Flash 都属于偏轻量的档位适合这种短链路、少工具的 ReAct 任务。如果你的 agent 工具更多、步骤更长可能需要换更大参数的模型具体可用 ID 和上下文长度以官网为准。另外提醒一点HuggingFace 上的下载量、点赞数是热度指标不是跑分不能拿来判断模型在 ReAct 任务上的表现。真要选型还是自己拿真实任务跑一遍日志最靠谱。最后如果你打算把这类 agent 长期跑下去可以看看 TaoToken 的 Coding Plan入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 的 coding-plan 路径只是临时接入或排障直接去 API Keys 和接入文档页就够了。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度
返回列表