王仕宇是如何使用 AI Tool Calling 的

这两年我对 AI 的使用方式发生了一个非常明显的变化。

最开始,我把 ChatGPT、Claude、DeepSeek 这些大模型当成:

text 复制代码
一个更聪明的搜索引擎
+
一个随时可以问问题的人

后来开始用 AI 写代码,它变成了:

text 复制代码
程序员的 Copilot

而现在,我越来越少把 AI 当成一个单纯的聊天机器人。

我更愿意把它理解成:

一个可以调度各种工具,替我完成任务的执行者。

这里面有一个非常重要的能力:

Tool Calling

如果你正在研究 AI Agent、MCP、Codex、Claude Code,或者各种自动化工作流,那么 Tool Calling 基本上是一个绕不过去的概念。

今天这篇文章,我不准备只讲 Tool Calling 的理论。

我想结合自己目前真正使用 AI 的方式,聊聊:

王仕宇是怎么使用 AI Tool Calling 的。


一、以前我怎么使用 AI?

最早的时候,使用 AI 基本都是这种模式:

text 复制代码
我
 ↓
输入问题
 ↓
ChatGPT
 ↓
输出一段文字

比如:

text 复制代码
帮我写一个 Go 的 HTTP Client。

AI 返回代码:

go 复制代码
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    resp, err := http.Get("https://example.com")
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(body))
}

然后接下来还是我自己:

text 复制代码
复制代码
↓
打开 IDE
↓
创建文件
↓
粘贴进去
↓
运行
↓
发现报错
↓
复制错误
↓
重新问 AI

本质上 AI 做的是:

text 复制代码
生成答案

而不是:

text 复制代码
完成任务

这两个看起来很像,实际上完全不是一回事。


二、Tool Calling 改变了什么?

现在我可能直接对 AI 说:

帮我看看这个 Go 项目为什么启动失败。

如果只是普通 ChatGPT,它只能说:

text 复制代码
请把报错贴给我。

但一个拥有 Tool Calling 能力的 AI,可以自己:

text 复制代码
查看项目文件
↓
读取 go.mod
↓
查看配置文件
↓
执行 go run
↓
读取错误日志
↓
搜索错误位置
↓
修改代码
↓
再次运行
↓
确认问题是否解决

这时候 AI 就已经不是:

text 复制代码
Chat

而更接近:

text 复制代码
Agent

这里真正关键的地方,就是模型拥有了一批:

text 复制代码
Tools

例如:

text 复制代码
read_file
write_file
search_file
run_command
git_diff
web_search
browser
database
generate_image
generate_video

模型根据当前任务决定:

text 复制代码
什么时候调用工具
调用什么工具
传入什么参数
根据结果下一步怎么办

这就是我现在使用 AI 的核心方式。


三、我现在越来越少"让 AI 给我代码"

这是我的一个非常明显的变化。

以前我经常问:

帮我写一个 Docker Compose。

然后 AI 给我:

yaml 复制代码
services:

  mysql:
    image: mysql:8.0

    environment:
      MYSQL_ROOT_PASSWORD: password

    ports:
      - "3306:3306"

接下来还是自己复制。

而现在我更希望 AI:

text 复制代码
直接查看当前项目
↓
判断项目需要什么
↓
创建 docker-compose.yml
↓
检查已有端口
↓
运行 Docker Compose
↓
检查容器日志
↓
发现问题以后继续修改

也就是说,我越来越喜欢给 AI:

text 复制代码
目标

而不是:

text 复制代码
某一小段代码要求

比如以前:

text 复制代码
给我写一个 Nginx 配置。

现在:

text 复制代码
把这个项目部署到服务器,
域名使用 xxx.com,
服务运行在 3000 端口,
配置 HTTPS 和 SSE,
然后检查配置有没有问题。

区别非常大。

第一个是:

text 复制代码
生成文本

第二个是:

text 复制代码
完成一个任务

四、我在 AI 编程里大量使用 Tool Calling

这是我现在 Tool Calling 使用最多的地方。

我日常会接触:

text 复制代码
Go
Python
Node.js
Vue
Docker
Nginx
MySQL
Redis
MongoDB
Cloudflare

以前遇到项目问题,大概是:

text 复制代码
我自己定位
↓
找到文件
↓
复制代码
↓
发给 AI
↓
AI 给修改建议
↓
自己修改

现在有 Codex、Claude Code 这类 Agent 工具以后,我更倾向于:

text 复制代码
AI 自己读取仓库

例如我说:

帮我给这个项目增加 MongoDB 支持。

Agent 可以先:

text 复制代码
list_files

发现:

text 复制代码
config/
internal/
model/
repository/
service/
go.mod

接着读取:

text 复制代码
go.mod
config.yaml
repository/user.go
main.go

然后判断项目结构。

接下来可能自动:

text 复制代码
添加 Mongo Driver
↓
增加 MongoDB 配置
↓
写初始化代码
↓
创建 Repository
↓
更新依赖
↓
运行 go test

这些步骤每一步实际上都在调用工具。


五、一个 AI 编程 Agent 背后可能有哪些 Tool?

简单模拟一下。

一个编码 Agent 可能拥有:

json 复制代码
{
  "tools": [
    {
      "name": "read_file"
    },
    {
      "name": "write_file"
    },
    {
      "name": "list_directory"
    },
    {
      "name": "search"
    },
    {
      "name": "run_command"
    },
    {
      "name": "git_diff"
    }
  ]
}

当我说:

帮我修一下登录接口的 Bug。

模型可能先调用:

json 复制代码
{
  "name": "search",
  "arguments": {
    "query": "Login"
  }
}

然后找到:

text 复制代码
internal/handler/login.go
internal/service/login.go

再:

json 复制代码
{
  "name": "read_file",
  "arguments": {
    "path": "internal/service/login.go"
  }
}

然后执行:

json 复制代码
{
  "name": "run_command",
  "arguments": {
    "command": "go test ./..."
  }
}

发现:

text 复制代码
panic: invalid memory address

修改:

json 复制代码
{
  "name": "write_file",
  "arguments": {
    "path": "internal/service/login.go",
    "content": "..."
  }
}

最后:

text 复制代码
go test ./...

通过。

你会发现:

模型本身其实并没有"神奇地控制电脑"。

真正让它能够操作项目的,就是这些 Tool。


六、我也在用 Tool Calling 做图片生成

除了编程,我现在做内容时也大量用 AI 图片。

比如我要写一篇:

text 复制代码
Go Context:解决协程泄漏与超时控制

以前我的流程是:

text 复制代码
写文章
↓
想封面
↓
打开生图网站
↓
写 Prompt
↓
生成
↓
下载
↓
放入文章

现在我的理想流程变成:

text 复制代码
文章生成完成
      ↓
AI 分析文章核心知识点
      ↓
调用图片 Tool
      ↓
生成知识总结图
      ↓
自动得到图片

比如我只需要说:

根据这篇文章画一张总结图。

模型先理解文章。

然后调用:

text 复制代码
generate_image

把:

text 复制代码
标题
知识结构
视觉风格
尺寸
个人信息

全部转换成图片生成参数。

所以我现在越来越喜欢把:

text 复制代码
生图

也做成 Agent Tool。


七、图片 Skill 本质上也是 Tool Calling

我之前也在做自己的 AI 生图 Skill。

从最终体验来看,我希望它是这样的:

text 复制代码
用户:
帮我给这篇文章配一张图

Agent:

text 复制代码
读取文章
↓
判断适合什么图
↓
生成 Prompt
↓
调用图片 API
↓
拿到图片 URL
↓
下载图片
↓
返回本地文件

真正执行生图的还是:

text 复制代码
图片模型 API

但是大模型决定了:

text 复制代码
该不该生成
生成什么
用哪个模型
如何组织 Prompt

这就是:

text 复制代码
LLM + Tool

八、视频生成也是同样的逻辑

AI 视频也是我现在比较关注的一类工具。

比如:

帮我生成一个 4 秒钟的动物世界视频,一只猎豹在草原追逐羚羊。

大模型负责理解:

text 复制代码
主体
场景
镜头
动作
光影
视频长度
画面风格

然后调用:

text 复制代码
generate_video

真正的视频可能由:

text 复制代码
Kling
即梦
Grok Imagine
MiniMax
其他视频模型

完成。

流程:

text 复制代码
自然语言
 ↓
LLM
 ↓
Prompt 编排
 ↓
Video Tool
 ↓
Video API
 ↓
任务 ID
 ↓
查询任务状态
 ↓
获取视频
 ↓
下载

注意这里已经不是只调用一次 Tool 了。

而是:

text 复制代码
create_video
↓
get_video_status
↓
download_video

多个 Tool Calling 串联。

这就是一个很典型的 Agent 工作流。


九、我特别看好"AI + API"

我自己本身做后端比较多。

所以在我看来:

任何已有 API 的系统,理论上都非常适合接入 AI。

比如一个传统后台里已经存在:

text 复制代码
GET /users
GET /orders
POST /orders
POST /refund
GET /statistics

过去这些 API 是给:

text 复制代码
Web
App
小程序

使用。

未来完全可以包装成:

text 复制代码
Tools

比如:

text 复制代码
get_user
get_order
create_order
refund_order
get_statistics

于是管理员可以直接问 AI:

今天退款金额超过 500 元的订单有多少?

AI:

text 复制代码
调用 get_statistics
↓
拿到订单
↓
筛选
↓
汇总
↓
回答

接着你说:

把金额最大的 10 个订单列出来。

Agent 再调用 Tool。

甚至:

给这 10 个订单的负责人分别发消息确认。

又继续调用:

text 复制代码
send_message

这就是我认为 Tool Calling 特别有价值的一点:

它可以直接复用我们已经存在的大量后台能力。


十、数据库是我很看好的一个 Tool

我自己做项目经常使用:

text 复制代码
MySQL
Redis
MongoDB
SQL Server

过去要查业务数据:

text 复制代码
登录服务器
↓
进入数据库
↓
写 SQL
↓
复制结果
↓
分析

以后完全可能变成:

帮我查一下最近 7 天每天新增用户数量。

AI 调用:

text 复制代码
query_database

产生 SQL:

sql 复制代码
SELECT
    DATE(created_at) AS day,
    COUNT(*) AS total
FROM users
WHERE created_at >= NOW() - INTERVAL 7 DAY
GROUP BY DATE(created_at)
ORDER BY day;

数据库返回:

text 复制代码
2026-08-16  128
2026-08-17  156
2026-08-18  181
...

AI 再帮我:

text 复制代码
总结趋势
计算环比
找异常
画图

这就比传统 BI 更自然。


十一、但我不会给 AI 无限数据库权限

Tool Calling 最大的问题之一其实不是:

text 复制代码
技术做不做得到

而是:

text 复制代码
权限

比如给 AI 一个:

text 复制代码
execute_sql

Tool。

然后什么 SQL 都允许执行:

sql 复制代码
DROP DATABASE production;

那肯定不行。

所以如果让我设计,我会拆成:

text 复制代码
query_database

默认:

text 复制代码
Read Only

或者限制:

text 复制代码
SELECT

而下面这些操作:

text 复制代码
DELETE
UPDATE
DROP
TRUNCATE

需要:

text 复制代码
更高权限
+
人工确认

我认为未来 Agent 开发一个很重要的方向就是:

不是 Tool 越多越好,而是权限设计越合理越好。


十二、服务器运维也是非常好的 Tool Calling 场景

这是另一个我自己非常容易用到的地方。

平时维护服务器经常遇到:

text 复制代码
504
502
Docker 容器退出
Nginx 配置错误
磁盘满
CPU 高
连接数异常
日志报错

传统排错:

bash 复制代码
docker ps
bash 复制代码
docker logs
bash 复制代码
top
bash 复制代码
df -h
bash 复制代码
free -h
bash 复制代码
journalctl
bash 复制代码
nginx -t

以后完全可以定义:

text 复制代码
get_server_status
get_docker_status
get_logs
restart_container
test_nginx
reload_nginx

然后直接说:

帮我看看 api 服务为什么 502。

AI 自己:

text 复制代码
检查 Nginx
↓
检查 upstream
↓
检查 Docker
↓
查看日志
↓
发现 3000 端口没启动
↓
检查对应容器

如果权限允许:

text 复制代码
重启容器
↓
再次 curl
↓
确认恢复

这就是一个真正能干活的运维 Agent。


很多人没有意识到:

text 复制代码
联网搜索

本身也是 Tool Calling。

比如我问:

MongoDB 8.3 最近更新了什么?

模型训练数据不一定包含最新资料。

它就应该:

text 复制代码
search_web
↓
打开 MongoDB 官方文档
↓
读取 Release Notes
↓
总结

而不是依靠:

text 复制代码
模型参数里的旧知识

我现在做技术内容,一个非常明显的变化就是:

越来越多内容必须"模型 + 搜索",而不是只靠模型。

特别是:

text 复制代码
模型版本
软件版本
价格
API
新功能
GitHub 项目
最新发布

这些变化非常快。


十四、我为什么很关注 MCP?

Tool Calling 解决的是:

text 复制代码
AI 怎么调用工具

但还有另一个问题:

这么多工具到底怎么接到不同的 AI 上?

比如我自己写了:

text 复制代码
MongoDB Tool
图片 Tool
视频 Tool
GitHub Tool
数据库 Tool

如果:

text 复制代码
Codex
Claude Code
Cursor
OpenCode
ChatGPT

全部使用不同协议。

那每个都重新开发一遍,很麻烦。

所以 MCP 出现以后,我觉得它非常值得关注。

我的理解很简单:

text 复制代码
Tool Calling
=
AI 使用工具的能力

MCP
=
AI 连接工具的一种标准

未来我更希望:

text 复制代码
我的服务
 ↓
MCP Server
 ↓
暴露 Tools
 ↓
不同 Agent 都可以使用

而不是:

text 复制代码
每个平台单独做一套插件

十五、我理想中的 AI 使用方式

我认为 AI 最终不应该变成:

text 复制代码
一个越来越大的聊天框

而应该越来越像:

text 复制代码
一个任务调度中心

比如我未来希望直接说:

写一篇 MongoDB 的文章,然后给它生成一张总结图,检查里面的 MongoDB 命令是否有明显问题,最后整理成适合发布的版本。

这句话背后可能发生:

text 复制代码
读取已有内容风格
      ↓
搜索 MongoDB 官方资料
      ↓
生成文章
      ↓
校验关键命令
      ↓
生成图片
      ↓
处理图片
      ↓
生成最终 Markdown

这里面可能连续调用:

text 复制代码
Memory Tool
Web Search
Image Tool
File Tool
Code Tool

但是对我来说,我只需要提供:

text 复制代码
目标

这才是我真正期待的 Agent。


十六、Tool Calling 以后,人最重要的能力是什么?

我认为不是:

text 复制代码
记住更多命令

也不是:

text 复制代码
学会更多软件按钮

而是:

text 复制代码
知道自己想要什么

因为以前使用软件,你需要知道:

text 复制代码
第一步点哪里
第二步点哪里
第三步输什么
第四步怎么保存

未来使用 Agent:

text 复制代码
告诉它目标

Agent 自己调 Tool。

所以人的角色逐渐变成:

text 复制代码
目标制定
↓
结果判断
↓
风险判断
↓
最终决策

这也是为什么我一直认为:

AI 越强,判断力反而越重要。


十七、但我并不认为 Agent 可以完全放任

我现在比较认同的一套方式是:

text 复制代码
低风险任务
AI 自动执行

中风险任务
AI 执行 + 日志

高风险任务
AI 提方案 + 人确认

比如:

可以自动执行

text 复制代码
读取文件
搜索代码
查询数据库
搜索网页
生成图片
生成草稿
运行测试

可以执行,但需要记录

text 复制代码
修改代码
部署测试环境
创建文件
修改配置

最好人工确认

text 复制代码
删除生产数据
退款
转账
删除服务器
修改 DNS
发布生产环境
批量发送消息

真正成熟的 Agent,不应该只是:

text 复制代码
能调用 Tool

而应该知道:

text 复制代码
什么时候不能直接调用 Tool

十八、我现在怎么理解 AI Agent?

如果用一个比较简单的公式,我会写成:

text 复制代码
AI Agent
=
LLM
+
Tool Calling
+
Memory
+
Planning
+
Environment

其中:

text 复制代码
LLM

负责理解和推理。

text 复制代码
Tool Calling

负责做事情。

text 复制代码
Memory

负责记住过去。

text 复制代码
Planning

负责拆任务。

text 复制代码
Environment

可能是:

text 复制代码
电脑
浏览器
服务器
代码仓库
数据库
企业系统
互联网

如果没有 Tool Calling:

text 复制代码
AI 再聪明

很多时候也只是:

text 复制代码
一个会说话的大脑

有了 Tool:

text 复制代码
AI 才真正拥有手和脚。

十九、为什么我越来越关注 Harness?

最近我也越来越关注一个词:

text 复制代码
Harness

可以简单理解为:

给大模型提供一套运行环境和工具系统。

同一个模型:

text 复制代码
DeepSeek
Claude
GPT
Gemini

如果只是放进聊天框:

text 复制代码
能力是一种表现

如果放进:

text 复制代码
Codex
Claude Code
OpenCode
其他 Agent Harness

表现可能完全不同。

为什么?

因为 Harness 给模型增加了:

text 复制代码
文件
Shell
代码执行
Git
搜索
Memory
Tool Calling

所以我现在越来越觉得:

未来比拼的不只是"谁的模型参数更多",还包括"谁给模型配的工具更好"。


二十、我的 Tool Calling 使用方式正在发生一个变化

我目前明显在从:

text 复制代码
使用别人做好的 AI 工具

逐渐走向:

text 复制代码
给 AI 做自己的 Tool

比如:

text 复制代码
图片生成
视频生成
API
代码操作
服务器管理
数据库查询
内容生产

以前:

text 复制代码
我调用 API

以后:

text 复制代码
AI 帮我决定什么时候调用 API

这中间只多了一层:

text 复制代码
LLM

但是整个交互方式发生了非常大的变化。


二十一、一个非常值得程序员关注的机会

我认为 Tool Calling 对程序员特别重要。

为什么?

因为过去我们写了大量:

text 复制代码
API
SDK
CLI
后台系统
微服务
数据库接口

这些东西其实天然就可以变成:

text 复制代码
AI Tools

过去是:

text 复制代码
程序调用程序

现在变成:

text 复制代码
人说一句话
↓
AI 理解
↓
AI 调用程序

所以很多旧系统不需要推倒重做。

你完全可以在上面加一层:

text 复制代码
AI Agent

让现有能力通过自然语言暴露出去。

我觉得这会带来大量新的产品机会。


二十二、如果让我重新学习 AI,我会怎么学?

如果现在让我重新开始,我不会只学:

text 复制代码
Prompt

而会按照下面的顺序:

text 复制代码
LLM API
    ↓
Structured Output
    ↓
Tool Calling
    ↓
MCP
    ↓
Memory
    ↓
RAG
    ↓
Agent
    ↓
Multi-Agent

其中我会特别重视:

Tool Calling

因为从这里开始,大模型第一次真正从:

text 复制代码
"会回答"

跨到了:

text 复制代码
"会行动"

二十三、最后

过去我们评价一个 AI,最常问的是:

text 复制代码
这个模型聪不聪明?

以后我觉得还要增加一个问题:

这个 AI 能用什么工具?

因为一个模型再聪明,如果它只能:

text 复制代码
输出文字

很多任务最终还是得你自己完成。

而一个拥有:

text 复制代码
文件工具
浏览器
搜索
Shell
Git
数据库
图片
视频
支付
企业 API

的大模型,即使模型本身没有发生变化,它的实际价值也可能完全不同。

所以我现在使用 AI,越来越少关注:

text 复制代码
"让 AI 给我一个答案。"

而越来越关注:

text 复制代码
"怎么让 AI 把这件事情做完。"

这也是我理解 Tool Calling 最简单的一句话:

Tool Calling,就是让大模型从会说话,开始真正拥有做事的能力。

模型负责:

text 复制代码
理解
判断
推理
决策

Tool 负责:

text 复制代码
搜索
读取
执行
修改
查询
生成
操作

二者结合,才逐渐形成我们今天所说的:

text 复制代码
AI Agent

我认为未来真正有价值的 AI 应用,很可能并不是再做一个聊天框。

而是:

把真实世界里那些已有的 API、软件、数据和工作流,全部变成 AI 可以调用的 Tool。

到了那个时候,我们和软件之间的交互方式,也许真的会从:

text 复制代码
学习软件怎么用

逐渐变成:

text 复制代码
告诉 AI 我想做什么。

现在是最好的时代。中国有全世界最高性价比的制造业,有发达的网络和全球物流。

只要你愿意,你几乎可以买到这个世界上任何地方生产的、任何你想要的商品。你可以用很低的成本,撬动全球的资源为你服务。

不过,真正稀缺的,从来不是商品,而是注意力、判断力,以及把事情做成的能力。

所以,这是最好的时代,也是最坏的时代。

我是王仕宇,关注 AI、Web3 与开源,持续探索如何把技术做成产品,把产品转化为真实价值。

相关推荐
geneculture4 小时前
基于融智学框架的领军人才实训实操示范基地建设: 课题、课程与项目的系统工程(人机三双协同即人机双脑双智双语协同)
人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·序位逻辑的实例化·人机三双协同
key_3_feng4 小时前
智能体 Loop 工程:循环架构与状态机
人工智能·loop·智能体
冬奇Lab4 小时前
Code Agent 解剖(08):一个任务太复杂,怎么拆给子 agent 做?
人工智能·开源
冬奇Lab4 小时前
开源项目第195期:OpenTelemetry Demo(Astronomy Shop)— 官方出品的分布式系统可观测性实战教材
人工智能·开源·前端工程化
海兰4 小时前
【原理】OpenClaw Agent 运行时回顾一文清
人工智能·agent
民乐团扒谱机4 小时前
【微实验】物理启发神经网络(PINN):当AI学会遵守物理定律(附matlab代码))
人工智能·神经网络·matlab
极客互动API4 小时前
企业微信 iPad 协议消息接口开发:文本 / 图片 / 群发消息的统一封装
人工智能·ios·微信·机器人·企业微信·ipad
达子6664 小时前
AI训练师图解_6.1_6.2_五大行业应用_NLP
人工智能·自然语言处理
新知图书5 小时前
11.4 基于扣子编程的实现过程(AI 数据质检工作流)
人工智能·agent·ai agent·智能体
YHL5 小时前
🚀 端侧 AI DEEPSEEK-R1-WEBGPU 项目实战(二):封装进度条组件,看懂 React 事件与组件树
人工智能