本篇目标:这是卷 3(工程化扩展)的第一篇。我们将打破"聊天框"的限制,给 AI 装上四肢,让它能操作你的电脑、访问互联网、管理数据。
一、为什么 AI 需要"工具"?
在前面的章节里,我们学会了用 Tool Calling 让 AI 知道"我想查天气"。
但如果每次都要你自己写 get_weather 函数,太累了。
现实世界中,我们 90% 的需求都可以归类为这四大类操作:
- 文件操作(读写 PDF、Excel、代码文件)。
- 网络操作(搜索 Google、抓取网页)。
- 数据库操作(查 SQL、存数据)。
- 浏览器操作(模拟点击、填表单)。
幸运的是,现在有现成的工具箱(Toolkit),不需要你从头造轮子。
二、四大金刚:AI 的常用义肢
1. 文件系统(FileSystem):AI 的手
让 AI 能直接读写你电脑上的文件。
- 场景 :"帮我把这个文件夹里所有
.log文件打包压缩。" - 常用工具 :
read_file(path): 读取内容。write_file(path, content): 写入内容(慎用!容易覆盖)。list_dir(path): 看看有哪些文件。
- 安全警告 :必须限制目录! 比如只允许 AI 访问
/tmp/sandbox,绝对不能让它访问/etc/passwd或你的桌面。
2. 网络搜索(Web Search):AI 的眼
让 AI 能联网,不再胡说八道。
- 场景:"帮我查一下 DeepSeek V3 是什么时候发布的?"
- 常用工具 :
google_search(query): 返回搜索结果标题和摘要。browser_visit(url): 访问具体网页,提取正文。
- 推荐服务:SerpAPI, Tavily(专为 AI 优化的搜索 API)。
3. 数据库(Database):AI 的记忆库
让 AI 能查业务数据。
- 场景:"上个月销售额最高的产品是哪个?"
- 常用工具 :
run_sql(query): 执行 SQL 语句。get_table_schema(table_name): 查看表结构。
- 安全警告 :只给只读权限(Read-Only)! 否则 AI 可能会
DROP TABLE users。
4. 浏览器自动化(Browser Automation):AI 的替身
让 AI 像人一样操作浏览器。
- 场景:"帮我登录这个网站,把发票下载下来。"
- 常用工具 :
click(element): 点击按钮。type(text): 输入文字。screenshot(): 截图。
- 技术栈:Puppeteer, Playwright, Selenium。
三、实战:如何给 AI 装上这些工具?
以 Python 的 LangChain 或 Dify 为例,你不需要写底层代码,只需要"组装"。
伪代码示例
python
# 1. 引入现成工具
from langchain.tools import FileSystemTool, GoogleSearchTool
# 2. 创建工具箱
tools = [
FileSystemTool(root_dir="./sandbox"), # 限制只能操作沙箱目录
GoogleSearchTool(api_key="...")
]
# 3. 给 AI 装上
agent = create_agent(llm=gpt4, tools=tools)
# 4. 下指令
agent.run("去网上搜一下最新的 iPhone 价格,然后存到 price.txt 里。")
AI 的执行过程:
- 思考:"我需要先搜价格 -> 调用
GoogleSearchTool。" - 拿到结果:"iPhone 16 价格是 $999。"
- 思考:"我需要存文件 -> 调用
FileSystemTool。" - 写入文件
price.txt。 - 回复用户:"搞定了。"
四、安全边界:别让 AI 毁了你的电脑
给 AI 装工具,就像给小孩子发电锯。必须要有安全护栏。
1. 最小权限原则(Least Privilege)
- 文件:只读不写,或者只能写特定文件夹。
- 网络 :只允许访问白名单域名(如
*.google.com)。 - 数据库:只读账号。
2. 人工确认(Human-in-the-loop)
对于高危操作(如"删除文件"、"发送邮件"、"转账"),AI 必须停下来问你:
AI: "我准备执行
rm -rf /,请批准?(y/n)"你: "n!!!"
3. 超时与重试
- 网络请求可能会卡死,必须设置
timeout=5s。 - AI 可能会陷入死循环(不断点击同一个按钮),必须设置"最大步数(Max Steps)"。
五、本篇产出:你的工具能力清单
当你设计一个 Agent 时,先勾选它需要哪些能力:
| 能力模块 | 具体工具 | 权限限制 (必填) | 场景示例 |
|---|---|---|---|
| 文件读写 | read_file, write_file |
仅限 ./output 目录 |
生成报表文件 |
| 联网搜索 | tavily_search |
无限制 | 查询最新技术文档 |
| 代码执行 | python_repl |
极度危险!仅限沙箱 | 做数据分析计算 |
| 数据库 | sql_query |
只读账号 | 查询订单状态 |
| 浏览器 | playwright |
无限制 | 自动抢票/填表 |
练习题:设计一个"竞品监控 Agent"
任务 :你想做一个 Agent,每天早上自动去竞品网站截图,看看有没有新活动。
请回答:
- 它需要哪类工具?(文件?网络?浏览器?)
- 它最大的安全风险是什么?
- 如果网页改版了,它找不到按钮了,应该怎么办?
点击查看参考答案
- 工具:浏览器自动化(Playwright)用于访问和截图;文件系统用于保存截图。
- 风险:如果网站有反爬虫机制,IP 可能会被封;或者 AI 误点了广告链接。
- 异常处理:设置"元素查找超时"机制。如果 10 秒找不到按钮,报错并发送通知给人类,而不是一直死等。
下一步 :工具选好了,但每个工具的接口都不一样,怎么统一管理?下一章我们将学习 MCP(Model Context Protocol)------这是 2026 年最火的 AI 互联标准,让你的 Agent 能即插即用所有工具。