我让我的网站向AI代理每页收取一分钱。然后我目睹了Claude付款(阅读约13分钟)

TLDR AI 新闻

摘要

作者测试了一种系统,让AI代理通过测试网USDC按页支付费用,并探讨了Google的AI贡献试点项目以及Cloudflare为代理推出的钱包计划。

这位开发者一直在测试一种向AI代理收取内容使用费的方法。其页面在代理读取前通过x402协议设定价格。若代理希望访问,则需付费。尽管开发者尚未收到任何实际支付,但测试显示系统运作正常,因此对于拥有内容但规模不足以谈判公平许可协议的人来说,这值得深入了解。
查看原文
查看缓存全文

缓存时间: 2026/09/16 14:25

# 我让我的网站向AI智能体收取每页一美分的费用,然后我看到Claude支付了 来源:https://suganthan.com/blog/x402-pay-per-crawl/ Google正在向一些出版商付费,当他们的内容帮助生成其AI回答时。 Barry Schwartz在9月14日的Search Engine Roundtable上报道了此事(https://www.seroundtable.com/google-al-contribution-pilot-42076.html),此前Digiday当天早上发布了一篇报道(https://digiday.com/media/google-rolls-out-pay-value-ai-licensing-program-to-publishers/)。Google向Digiday确认了该计划。它被称为**AI贡献试点计划**。 接受条款的出版商每月会在Search Console中看到一个收益数字。他们无法获得的是Google如何计算这个数字的详细说明。 Google在以下情况付费:它判定某个页面在其生成AI概览、AI模式或Gemini应用的回答过程中做出了重大贡献。如果页面仅在答案生成之后被链接,则不符合资格。 我不在这个试点计划中。根据Digiday的报道,Google已接洽了至少数十家出版商,小型出版商比大型出版商表现出更大的兴趣。一位了解该计划的高管将其描述为一个黑匣子。Barry实际上在四月份就找到了帮助页面(https://www.seroundtable.com/google-search-console-ai-contribution-41153.html),但当时该功能的作用尚不清楚。 Search Console屏幕标题为“通过AI贡献试点开始赚钱”,邀请出版商在其内容对AI生成的回答做出重大贡献时累积收益 试点计划中的出版商在Search Console中看到的注册屏幕。图片由Search Engine Land于2026年9月14日发布。 自八月以来,我一直在我的网站上测试一种不同的方法。 我的页面在智能体读取之前就设定了价格。如果智能体想要访问,它就必须付费。 今天早上,9月15日,五笔付款完成。每笔都在区块链上结算,并有一个公开的交易哈希。其中一笔来自Claude Code,它在我的机器上运行,并使用了我为它设置的钱包。 需要明确的是,目前所有的付款都来自我自己的智能体。没有搜索爬虫出现并向我付款。这些付款也使用**测试网USDC**,这意味着这些代币没有实际货币价值。 但支付流程是有效的。智能体请求一个页面,检查价格,付款并接收内容。Cloudflare正在围绕同样的理念构建产品,我希望在它成为仪表板中的另一个设置之前,了解它是如何工作的。 Claude Code会话:WebFetch遇到402,钩子支付一美分测试网USDC,摘要引用了结算交易 ## Cloudflare钱包句柄的用途 8月4日,在智能体周期间,Cloudflare宣布了Wallets(钱包)(https://blog.cloudflare.com/wallets/)并开放了句柄预订。 预订句柄是免费的。我怀疑很多人预订他们的方式就像我们抢注用户名(https://suganthan.com/blog/get-your-dream-handle-on-x/)一样:在别人之前迅速抢注,带着一个模糊的意图以后再了解细节。 如果你这样做了,这就是那些钱包正在构建的用途之一。 Cloudflare的设计分为两部分: - **账户钱包**属于个人。你添加资金,设置支出限额,并为你的智能体分配资金。 - **虚拟钱包**是为智能体准备的。它们在你设定的权限和限额内消费。 你的句柄赋予该账户一个可识别的身份。 然而,截至9月15日,预订一个句柄会给你一个显示名称的页面,以及在钱包功能上线时的通知。Cloudflare的文档(https://developers.cloudflare.com/wallets/)明确指出,已预订的句柄尚不能发送、接收或持有资金。 另一部分是**货币化网关**,它将允许网站向智能体收取访问资源的费用。Cloudflare在7月1日宣布了它(https://blog.cloudflare.com/monetization-gateway/),目前访问仍需通过该公告中的等待列表。 因此,产品已宣布,但你尚不能使用已预订的钱包句柄来运行整个流程。 我的演示展示了使用x402技术在今天这个流程是什么样子。该网站每页收取一美分,我的智能体付款,支出限额控制着它可以购买什么。这与Cloudflare为虚拟钱包描述的总体安排相同。 ## 为什么要向爬虫收费? 搜索引擎和网站之间的关系曾经相当直接。搜索引擎抓取你的内容,在它们的结果中展示,并将访客引回你的网站。 出版商获得了流量。搜索引擎获得了向其用户展示的有用信息。 AI回答改变了这种关系。一个智能体可以阅读你的页面,在其回答中使用信息,并在不将用户引导至你的网站的情况下回答用户。 我花了数月时间研究这些系统实际获取的内容(https://suganthan.com/blog/how-chatgpt-picks-sources-part-2/)。有大量的爬取活动。返回的流量往往并不能反映这一点。 出版商们以不同的方式回应,部分取决于他们的谈判能力有多大。 小型网站通常会阻止AI爬虫。我理解原因。如果有人拿走了你的内容,而你几乎得不到回报,阻止他们是一个合理的反应。但这也有一个权衡:限制访问也可能降低你在训练数据集和AI回答中的可见性(https://suganthan.com/blog/common-crawl-checker/)。 大型出版商可以谈判许可协议。新闻集团、金融时报和Reddit都与AI公司达成了协议。根据Press Gazette在9月4日的报道(https://pressgazette.co.uk/platforms/cloudflare-says-bot-blocking-is-fueling-publisher-ai-deals/),People Inc的首席执行官告诉投资者,通过Cloudflare阻止爬虫帮助让AI公司回到了谈判桌。 Google的试点计划提供了另一种方法:根据出版商内容对AI回答的贡献价值来支付他们。 在同一篇Press Gazette文章中,Cloudflare表示正在将其自身的默认方法从按次抓取转向按使用付费,涉及与Ceramic.ai和You.com的试点合作。其理由是,获取一个页面并不能证明内容实际被使用。 我认为这个区别很重要。 使用一个页面来回答问题比仅仅下载它更能表明价值。但这也是网站所有者无法独立观察到的。一旦我的页面离开了我的服务器,我无法看到它是否影响了回答。 在按使用付费的情况下,我依赖平台来告诉我发生了什么以及价值多少。在按次抓取的情况下,我可以自己检查请求和付款。 Google的资格规则使这一点尤为清楚。正如Search Engine Land解释的那样(https://searchengineland.com/google-tests-paying-publishers-for-using-its-content-in-a-i-mode-a-i-overviews-and-gemini-488382),在回答生成期间做出贡献可以获得付款。事后被链接则不行。出版商看到的是总数,而没有背后的计算过程。 每种方法都有一些未解决的问题。 阻止访问不能直接带来任何收入。单个许可协议无法扩展到数百万个小网站。收益分享安排让平台决定支付多少。 在请求中设定价格,为网站提供了一种标准化的销售访问方式。智能体可以接受这个价格并获得内容,以及交易的收据。没有必要与每个买家单独谈判商业协议。 这就是我想要测试的按次抓取模式。 Cloudflare已经有一个名为**Pay Per Crawl**(按次抓取)的产品,但它仍处于封闭测试阶段。在付费方,机器人运营者需要通过Web Bot Auth、Stripe入驻流程和计划批准进行验证。 我个人的智能体无法简单地加入那个计划。 所以我构建了一个使用开放的**x402协议**的版本,Cloudflare在其即将推出的货币化网关中也在使用这个协议。我的演示独立于Cloudflare封闭的Pay Per Crawl计划,进行实际的x402付款。 ## x402的工作原理 自1997年以来,HTTP就包含一个名为`402 Payment Required`的状态码。该规范将其保留以备将来使用。 二十九年后,x402赋予了它实际用途。 在我的设置中,交换过程有四个步骤: 1. 智能体请求一个页面。服务器以`402 Payment Required`响应,并包含一个`PAYMENT-REQUIRED`头,描述价格和支付要求。 2. 智能体签署一个授权,以转移准确数量的USDC。然后它重试请求,并附带一个`PAYMENT-SIGNATURE`头。 3. 支付中介验证签名并在区块链上结算交易。我的演示使用Coinbase在`x402.org`的中介服务。 4. 服务器返回内容,以及包含结算收据的`PAYMENT-RESPONSE`头。 这是我网站上的报价,从今天早上的一个实时`402`响应中解码: ``` { "x402Version": 2, "accepts": [{ "scheme": "exact", "network": "eip155:84532", "amount": "10000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0xEdF2444D0259BBB8aC5094216D0148938F8308ff", "maxTimeoutSeconds": 300, "extra": { "name": "USDC", "version": "2" } }] } ``` 这个报价要求在**Base Sepolia**上支付一美分测试网USDC,支付给我在演示中使用的临时钱包。 USDC使用六位小数,所以`10000`代表`0.01 USDC`。 兼容的客户端可以读取这些支付要求并进行支付,而无需在我的网站上创建账户或向我索要API密钥。 这与`robots.txt`有一个重要的区别。`robots.txt`中的规则依赖于爬虫选择是否遵守它。在这里,服务器可以保留受保护的内容,直到支付成功。 买家钱包甚至没有**零ETH**,但每笔结算都成功了。中介提交了交易并支付了区块链交易费,通常称为Gas。我检查了两次余额。 对于这个设置,智能体只需要它要花费的测试网USDC。 该协议背后还有更广泛的行业支持。x402基金会于7月14日在Linux基金会下正式运营(https://www.linuxfoundation.org/press/linux-foundation-announces-operational-launch-of-x402-foundation-to-standardize-internet-native-payments-for-ai-agents-and-applications),拥有40名成员,包括Visa、Mastercard、Google、AWS、Stripe和Cloudflare。 这是有用的背景信息,但实际的交换仍然是那四个步骤。 ## 我的网站上运行的是什么 演示地址在paid.suganthan.com (https://paid.suganthan.com/)。 它运行在Cloudflare Worker上,使用大约300行Hono代码和x402中间件。自8月8日以来一直在运行,公共收益页面记录了自那时起的每一次付费抓取。 有三条路由: - **落地页**是免费的,解释了这个演示。 - **`/research/agentic-seo/`**每抓取收费**`$0.01`**。 - **`/earnings/`**显示累计总额、时间戳、付款方地址和交易哈希。 用`curl`请求文章,你会得到: ``` $ curl -i https://paid.suganthan.com/research/agentic-seo/ HTTP/2 402 payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3Ii... ``` curl -i 在定价URL上返回HTTP/2 402,包含payment-required头 在浏览器中打开相同的URL,你会得到一个解释收费的页面。它仍然返回HTTP状态码`402`,但人类访客会看到可读的内容。 还有一个预览按钮。它会免费打开文章并带有横幅,这样你既可以检查内容,也可以查看支付屏幕。 人类在定价URL上看到的付费墙页面:此页面面向智能体定价、收费站插图,以及“预览智能体付费的内容”按钮 我构建了另一个在演示中未启用的模式。更改一个变量会使Worker仅向那些自称为已知AI爬虫的请求收费,包括GPTBot、ClaudeBot和PerplexityBot。人类访客可以免费浏览。 我使用伪造的用户代理字符串测试了该模式,它按预期运行。 当然,这些字符串可以伪造。检查用户代理足以演示该行为,但它不能证明是谁发出的请求。Cloudflare的方法使用对爬虫身份的加密验证来解决这个问题。 ## 给智能体一个预算 买家是一个小型Node脚本。在付款之前,它会检查请求是否符合其预算。 我给了它两个限制: - 每次调用最高**`$0.05`**。 - **`$0.25`的每日限额**,记录在磁盘上的支出账本中。 该脚本解码支付报价,并在授权任何操作之前检查两个限制。 如果请求在预算内,它会付款,重试请求,打印结算详情并记录支出。如果超出任一限制,它将拒绝。 这是一个当单次调用上限设定低于页面价格时的拒绝示例: ``` [步骤 3] 支出防护 [已拒绝] 价格 $0.0100 超过了每次调用上限 $0.0010。 此智能体不进行议价。提高 MAX_PER_CALL 以覆盖。 ``` 这个拒绝是演示中最有用的部分之一。 如果一个智能体为服务器给出的每一个价格付款,你并没有真正委托一个预算。你给了它一个清空钱包的方法。 支出检查发生在签名之前。当请求未通过这些检查时,脚本会以退出码`3`退出,而不创建支付签名。 这遵循了Cloudflare为其钱包描述的总体设计:一个人提供资金并设定限额,一个智能体在限额内消费。我的买家脚本演示了这种行为,而它本身并不是一个实际的Cloudflare虚拟钱包。 买家智能体的五步运行过程:402、解码报价、防护、支付、结算(含交易哈希) 截图中的成功运行在**07:21 UTC**结算。另外两笔付款在06:10 (https://sepolia.basescan.org/tx/0x4b4029350a064cbc187edb720dd07b745d0b608ee8192ffdbeaa3af8346fef5b) 和 **06:11** 完成,第二笔仍在每日限额内。 这三笔都出现在公共收益页面(https://paid.suganthan.com/earnings/)确认后几秒内。 卖家的余额增加了,买家的余额减少了,金额相符。八月份的交易仍然列在它们下面。自那些早期付款以来,我没有动过支付代码。 公共收益页面:总收入、付费抓取次数,以及最近五次付费抓取(含时间戳、付款方地址和交易哈希) ## 观看Claude在任务中付款 这是我最感兴趣的部分。 Claude Code支持钩子:可以在工具调用前后运行的脚本。Cloudflare记录了一种监控`WebFetch`的模式,我将该模式连接到了我的钱包。 流程如下: 1. Claude尝试获取一个页面,遇到`402`。 2. 钩子请求支付报价本身。 3. 它根据每次调用支出上限检查价格。 4. 如果价格被允许,它付款并获取内容。 5. 它将内容和收据作为额外上下文传回Claude。 然后Claude可以继续其任务。我不必停下来手动为页面付款。 这就是本文开头显示的会话中发生的情况。钩子返回了这个收据: ``` Paid $0.0100 for "https://paid.suganthan.com/research/agentic-seo/" via x402. Settlement tx: 0x51b5eba4fb34ddff27052d89cb79ae3d748b379800a723a6f4f020c11e2871c9 ``` 你可以在BaseScan上查看这笔交易(https://sepolia.basescan.org/tx/0x51b5eba4fb34ddff27052d89cb79ae3d748b379800a723a6f4f020c11e2871c9/)。 Claude在任务过程中遇到了支付要求,钩子在我设定的预算内处理了它。它支付了一美分测试网,返回了文章,并让Claude继续。 如果价格超过上限,

相似文章

给一群代理分配在线赚取1美元的任务

Reddit r/artificial

一项实验中,AI代理在人类指导下,通过创建店面和提供写作服务,尝试在线赚取1美元,结果达成了首次销售,展示了实际的人机协作。