本篇目标:这是卷 3(工程化扩展)的第一篇。我们将打破“聊天框”的限制,给 AI 装上四肢,让它能操作你的电脑、访问互联网、管理数据。


一、为什么 AI 需要“工具”?

在前面的章节里,我们学会了用 Tool Calling 让 AI 知道“我想查天气”。
但如果每次都要你自己写 get_weather 函数,太累了。
现实世界中,我们 90% 的需求都可以归类为这四大类操作:

  1. 文件操作(读写 PDF、Excel、代码文件)。
  2. 网络操作(搜索 Google、抓取网页)。
  3. 数据库操作(查 SQL、存数据)。
  4. 浏览器操作(模拟点击、填表单)。

幸运的是,现在有现成的工具箱(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 的 LangChainDify 为例,你不需要写底层代码,只需要“组装”。

伪代码示例

# 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 的执行过程

  1. 思考:“我需要先搜价格 -> 调用 GoogleSearchTool。”
  2. 拿到结果:“iPhone 16 价格是 $999。”
  3. 思考:“我需要存文件 -> 调用 FileSystemTool。”
  4. 写入文件 price.txt
  5. 回复用户:“搞定了。”

四、安全边界:别让 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,每天早上自动去竞品网站截图,看看有没有新活动。
请回答

  1. 它需要哪类工具?(文件?网络?浏览器?)
  2. 它最大的安全风险是什么?
  3. 如果网页改版了,它找不到按钮了,应该怎么办?
点击查看参考答案
  1. 工具:浏览器自动化(Playwright)用于访问和截图;文件系统用于保存截图。
  2. 风险:如果网站有反爬虫机制,IP 可能会被封;或者 AI 误点了广告链接。
  3. 异常处理:设置“元素查找超时”机制。如果 10 秒找不到按钮,报错并发送通知给人类,而不是一直死等。

下一步:工具选好了,但每个工具的接口都不一样,怎么统一管理?下一章我们将学习 MCP(Model Context Protocol)——这是 2026 年最火的 AI 互联标准,让你的 Agent 能即插即用所有工具。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐