返回所有文章
Chae-won Chae-won · 2026年9月16日

Webhook、轮询,还有任务——把工作交给 AI 的第三种方式

Webhook、轮询,还有任务——把工作交给 AI 的第三种方式

大家好,我是 Chae-won。

之前的文章里,我用快递比喻过 Webhook 和轮询。轮询就像一遍遍给快递员打电话问“我的快递到了吗?”,Webhook 则是快递到了门铃自己会响。

现在越来越多的人直接在 ChatGPT、Claude 这样的 AI 里处理工作:查资料、写文案,甚至一边对话一边让 AI 去操作自己的系统。于是我们开始收到这样的需求:“怎样让 AI 去做一件事,再把结果拿回来?”

今天就来聊聊,为什么 Webhook 和轮询都不太适合这个需求,以及我们为此新做的任务功能。

以前只能自己搭

没有任务功能的时候,其实也有办法:用两个端点,当作连接 AI 和自己系统的通道。流程大概是这样:

  1. AI 把要做的事写进“请求”端点
  2. 自己的服务器通过 Webhook 接收,或者用轮询不停地检查
  3. 服务器做完工作,把结果写进“结果”端点
  4. AI 查询结果端点,再告诉用户

这就像两个人用两个信箱互相传纸条。能用,但用久了会发现有三个别扭的地方。

AI 对话不会一直等你

生成报表、批量转换、在 ERP 里下单,这类工作要花几分钟甚至几个小时。可 AI 的回复没法等那么久。

AI 也没法说一句“10 分钟后我再查一下”然后自己定个闹钟。因为 AI 只有在你发消息时才会行动。结果只能等你下次跟它说话时再去查。

所以真正需要的是“先把工作交出去,之后问一声就能知道结果”的机制。换成快递的说法,就是需要一个快递单号

Webhook 为什么不合适:门铃没地方装

Webhook 的意思是“到了我通知你”。这需要一个接收通知的地址。

但 AI 对话里没有能装门铃的门。聊天窗口不是一台有地址的服务器。结果到了,也没办法叫醒对话里的 AI。

还有安全问题。通过 AI 对话配置 Webhook,就得把认证头这类密钥输入到对话里,而对话记录会留存在比你想象中更多的地方。所以从这次更新开始,Webhook 认证头只能在仪表板中设置。已经保存的认证头会照常发送。

轮询为什么费钱:大部分都是白问

轮询本身其实和 AI 对话很搭,想知道的时候问一下就行。问题出在接活的那一方

在上面那种传纸条的方式里,你的服务器得不停地问“有新请求吗?”,哪怕一天只有几个请求。每分钟查一次,一个月就是 43,200 次,而且绝大多数回答都是“没有”。每一次都会占用你的月调用上限。

于是我们做了任务功能

任务功能把这种“传纸条”变成了快递寄件窗口

  1. 注册一次 Worker — 在仪表板里填写接活的地方(Worker)的名称、说明和 URL
  2. AI 把工作交出去 — 说一句“在我们的 ERP 里给 A-1042 下 30 件的订单”,AI 就会创建任务,并拿到快递单号(任务 ID)
  3. 3Min API 投递给 Worker — 带上签名发送到 Worker 的 URL,失败了会自动重发
  4. Worker 干活并回传结果 — 耗时久也没关系,最长可以等 24 小时
  5. AI 查看结果 — 下次你问“刚才那个订单怎么样了?”,它就会告诉你结果

AI 只根据 Worker 的名称和说明来决定把工作发给谁。Worker 的 URL、认证信息和签名密钥只保存在仪表板里,从来不会出现在对话中。

任务由谁来准备?

看到这里,你可能会想:“世界上的工作千千万,难道 3Min API 都提前准备好了?”

并不是。3Min API 本身不做这些工作。它只负责把工作投递给 Worker,并记录当前的状态。就像快递公司不负责生产包裹里的东西一样。

  • Worker — 真正干活的地方。它是你的服务器或程序,做什么工作由 Worker 决定
  • 任务 — 交给 Worker 的一件工作。不是功能列表,而是一张快递单

也就是说,注册一个“下单” Worker,AI 就能帮你下单;注册一个“生成报表” Worker,AI 就能帮你出报表。AI 能做多少事,取决于你接入了多少 Worker。

不用从零开始搭

“那我还是得重新搭一台服务器?”不一定。Worker 要做的事其实只有两件:

  1. 接收 3Min API 发来的请求
  2. 工作完成后,把结果发回 3Min API

只要能接收和发送 HTTP 请求,什么都可以当 Worker。所以有好几种办法可以接到你现有的东西上:

  • 你已经在用的脚本或程序 — 套一层薄薄的外壳:收到请求就运行程序,再把结果发回去
  • 能接收和发送请求的自动化工具 — 把“接收”步骤和“发送”步骤连起来,不写代码也能搭出 Worker
  • 只能在自己电脑上跑的工作 — 用下面介绍的隧道加上公网地址,电脑也能当 Worker
  • 外壳代码交给 AI 写 — 说一句“帮我写一个 3minapi 任务 Worker”,AI 会阅读 3Min API 的文档,把代码写好

Worker 在自己电脑或公司内网上?用隧道

3Min API 要把工作送到 Worker,Worker 就得有一个能从互联网访问到的地址。可家里或办公室的电脑都在路由器后面,外面是看不到的。localhost 只在这台电脑上有效,192.168.x.x 这类地址也只在局域网里有效。

隧道就是用来解决这个问题的。在电脑上运行一行命令,它就会生成一个互联网上能访问的地址(例如 https://xxxx.trycloudflare.com),并转发到你的电脑。不需要改路由器设置。把这个地址注册为 Worker 的 URL 就可以了。

常用的工具有 Cloudflare Tunnelngrok。需要注意的是:电脑关机或隧道关闭时,工作就送不到;不登录账号使用的临时地址,每次启动都会变。详细步骤请看任务指南

还有一点要注意:直接把公司现有的内部 API 地址填成 Worker 的 URL,是不行的。因为 3Min API 发送的请求格式是固定的,而且工作完成后需要把结果发回来。所以在现有系统和 3Min API 之间,需要加上前面说的那层薄外壳。

说到底,任务也只是 HTTP 请求

任务并没有什么特殊的通信方式。它和之前文章里讲的 Webhook、API 调用一样,只是一些请求按顺序来回传递:

顺序 发送方 → 接收方 做什么 调用次数
AI → 3Min API 查看 Worker 列表(需要时) 1
AI → 3Min API 交出工作 1
3Min API → Worker 投递(失败会重试) 不计入
Worker → 3Min API 回传结果(也可以发送进度) 每发一次计 1
AI → 3Min API 查看结果 1~2

关键在第 ② 步。投递,就是 3Min API 替你完成原本由 Webhook 做的事。如果说端点的 Webhook 是“把外面传进来的数据发给你”,那任务的投递就是“把 AI 交代的工作发给你的 Worker”。它使用和 Webhook 相同的签名方式,而投递和重试都不计入调用次数。

所以 Worker 不用再问“有新请求吗?”,有活的时候自然会送上门。如果不另外发送进度,算上查看 Worker 列表,一个任务从头到尾也只需要 3~5 次调用。和每分钟检查一次、一个月用掉 43,200 次比一比就知道了。

端点和任务,什么时候用哪个?

  • 目的是接收、存储和汇总数据 → 端点(Webhook、轮询)
  • 目的是让 AI 在你的系统里干活并拿回结果 → 任务

两者不能互相替代。让 Worker 把处理好的结果再存进端点,就连“加工收到的数据并整理存档”这件事也能交给 AI。两者搭配使用效果最好。

总结

  • Webhook 需要一个接收地址,而 AI 对话里没有这个地址
  • 轮询和 AI 对话很搭,但接活的一方会把调用浪费在白问
  • 任务采用交出 → 投递 → 稍后查看的机制。3Min API 负责投递和记录,工作由你接入的 Worker 完成
  • Worker 不用从零搭建。只要能接收和发送请求,就能接到你现有的东西上

任务最长可运行 24 小时。Worker 的注册方法、请求格式和各套餐的限制,都整理在任务指南里。现在就可以在仪表板的任务菜单中开始使用。

现在可以在哪里使用?(截至 2026 年 9 月 16 日)

  • Claude、Cursor 等 — 打开一个新对话(会话)就能直接使用任务工具。之前已经打开的对话里可能看不到,请重新开始一个对话
  • ChatGPT — 暂时还看不到任务工具。ChatGPT 应用新增工具后需要重新通过 OpenAI 审核,通常需要 2~4 周。审核通过后,我们会通过邮件通知 3Min API 的会员
  • 想先在 ChatGPT 里试用? — 在 ChatGPT 设置中开启开发者模式,手动添加应用并填写 MCP 地址 https://3minapi.com/api/mcp,即可立即使用