news 2026/2/8 13:59:55

PythonREPL、Search API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PythonREPL、Search API

day30: 了解部分内置工具(PythonREPL、Search API)的作用

一、 Agent 一定要有「内置工具」的原因

一句话结论:

LLM ≠ 会做事,Tool 才是“手”

LLM 的天然短板:

能力问题
数学易算错
时间不知道现在
实时信息不知道
代码执行不能

👉 Tool 是在补 LLM 的“物理能力”


二、PythonREPL 工具(最重要的内置工具之一)

1. PythonREPL 是什么?

  • PythonREPL = Agent 可调用的 Python 运行环境

你可以把它理解为:

  • 一个受控的 exec()

  • 一个可以:

    • 计算
    • 处理数据
    • 跑简单脚本
    • 验证中间结果

2. PythonREPL 能解决什么问题?

❌ LLM 不擅长的事

27 * 43 / 19 的结果?

✅ Agent + PythonREPL

27 * 43 / 19

常见用途总结

用途示例
数学复杂计算
数据列表、dict 处理
验证推理中间结果
简单算法排序、统计

⚠️ 不适合:

  • 网络请求

  • 长时间任务

  • 高安全风险代码

3. 核心知识点(非常重要)

🔹 1. PythonREPL 是 Tool,不是 Notebook

LLM 用自然语言决定是否调用 Executor 真的执行 Python

🔹 2. LLM 写代码 ≠ 你写代码

LLM 写的 Python 往往是:

一次性 偏脚本 不优雅但能跑

👉 这是预期行为,不是 Bug

🔹 3. Tool 描述决定调用成功率

PythonREPL 的 description 会告诉 LLM:

“当你需要计算或执行 Python 时,用我”

4️⃣ 从 0 到 1 Demo:PythonREPL Agent
Step 0:安装依赖

langchain>=0.1.0
langchain-openai

fromlangchain_classic.agentsimportinitialize_agent,AgentTypefromlangchain_experimental.toolsimportPythonREPLToolfromlangchain_openaiimportChatOpenAI llm=ChatOpenAI(model="qwen-plus-latest",temperature=0,api_key="sk-Your-key",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)python_tool=PythonREPLTool()tools=[python_tool]agent=initialize_agent(tools,llm,agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,verbose=True,handle_parsing_errors=True)defmain():res=agent.invoke({"计算 (127 * 39 - 58) / 13"})print(res["output"])if__name__=="__main__":main()# Observation: NameError("name 'py' is not defined")# Thought:The issue is that the tool expects only the raw Python expression, without any markdown code block syntax or "py" keyword. I'll input just the expression directly.## Action: Python_REPL# Action Input:# (127 * 39 - 58) / 13# Observation:# Thought:377.0# Final Answer: 377.0## > Finished chain.# 377.0

三、Search API(让 Agent 连接真实世界)

1. Search API 是什么?

  • Search API = Agent 可用的“外部信息获取工具”

解决的问题:

问题LLM
实时新闻
最新政策
实时价格
当前事件

2. LangChain 常见 Search Tool

Tool特点
TavilySearch官方推荐、简单
SerpAPI老牌、强
Bing / Google商用

👉 推荐学习阶段用 Tavily

3. Tavily Search 的核心认知

Tavily 是什么?

  • 专为 LLM 设计的搜索 API

返回的是:

精简摘要 可读文本 低噪声

Agent 使用方式

Thought: 我需要最新信息 Action: tavily_search Action Input: 查询内容 Observation: 搜索结果

4️⃣ 从 0 到 1 Demo:Search Agent

export TAVILY_API_KEY=your_key# 1. Tavily API Key 获取方法# 步骤:## 访问 Tavily 官网## 点击 "Get Started" 或 "Sign Up"## 注册账户(可能需要邮箱验证)## 登录后进入 Dashboard## 在 API Keys 部分生成新的 API Key## 通常有免费额度供试用
fromlangchain_classic.agentsimportinitialize_agent,AgentTypefromlangchain_openaiimportChatOpenAIfromlangchain_tavilyimportTavilySearch llm=ChatOpenAI(model="qwen-plus-latest",temperature=0,api_key="sk-YOURKEY",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)search_tool=TavilySearch(k=3)tools=[search_tool]agent=initialize_agent(tools,llm,agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,verbose=True,handle_parsing_errors=True)defmain():res=agent.invoke({"2025 年诺贝尔和平奖是谁"})print(res["output"])if__name__=="__main__":main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 15:23:47

34、Bash脚本中的循环控制与故障排查

Bash脚本中的循环控制与故障排查 1. 循环控制 在Bash脚本中,循环是一种强大的工具,可用于重复执行特定的代码块。下面将介绍 while 、 until 循环以及如何在循环中控制程序流程。 1.1 while 循环 while 循环会在条件为真时持续执行代码块。以下是一个简单菜单程序…

作者头像 李华
网站建设 2026/2/3 12:41:10

直接撸起袖子开干!今天咱们聊聊怎么用LabVIEW整一个带报警记录的上位机监控系统。这玩意儿在工业现场特别实用,尤其是需要24小时盯着设备状态的时候

labview上位机监测报警记录,状态显示。 报警记录存储,存储格式txt。 csv保存文件。先看状态显示部分。LabVIEW的前面板放几个指示灯控件就能实时反映设备状态,比如用绿色圆形表示正常,红色三角表示报警。背后用个While循环不断读取…

作者头像 李华
网站建设 2026/2/4 9:50:14

基于A*算法的无人机三维动态避障路径规划设计,MATLAB编程实现

基于A* 算法的无人机三维路径规划算法,可以动态避障,自己可以规定设计障碍物位置,MATLAB编程实现。 无人机在三维空间耍杂技这事儿,靠的就是路径规划的真功夫。今天咱们来聊个硬核玩法——基于MATLAB实现的A*算法三维动态避障系统…

作者头像 李华
网站建设 2026/2/4 16:46:34

基于vue的宠物寄养机构管理系统_96zn64i1_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/2/8 1:35:38

20、GTK+ Tree View 开发指南

GTK+ Tree View 开发指南 1. 引言 在 GTK+ 开发中,Tree View 是一个非常重要的组件,它实现了 MVC(Model-View-Controller)模式中的视图部分。用户可以通过 Tree View 与数据进行交互,如选择行、展开或折叠树等。本文将详细介绍 GTK+ 中 Tree View 的相关函数、属性、信号…

作者头像 李华
网站建设 2026/2/8 8:53:32

22、文本缓冲区操作全解析

文本缓冲区操作全解析 1. 文本缓冲区基础 1.1 基本特性 文本缓冲区采用 UTF - 8 编码,这使得字节计数(索引)和字符计数(偏移量)有所不同。一个文本缓冲区至少包含一行(可能为空),除最后一行外,每行以行分隔符结尾,行分隔符被视为一个字符,它可以是 Unix 换行符、…

作者头像 李华