[ai-control] New draft: draft-kelley-aipref-training-preference-signal-00

Kevin Kelley <kelleyk-ietf@kelleyk.net> Fri, 30 October 2026 15:39 UTC

Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 4990146 for <ai-control@ietf.org>; Fri, 30 Oct 2026 15:39:35 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=kelleyk.net header.s=google header.b=Qllv+J3I; arc=pass ("google.com:s=arc-20260327:i=1"); spf=pass (mx.ietf.org: domain of kelleyk-ietf@kelleyk.net designates 2a00:1450:4864:20::236 as permitted sender) smtp.mailfrom=kelleyk-ietf@kelleyk.net; dmarc=none
Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-3a1f628b1d1so7777091fa.0 for <ai-control@ietf.org>; Fri, 30 Oct 2026 08:39:35 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1793374774; cv=none; d=google.com; s=arc-20260327; b=mn3m96vUe5gzP2XR+rnwsX+Q6ip3gz8eO419UkcqUQ38b1AC9fqLIaOBdo1LoZnN5m ygtmIvu5RHjmJGGyoF9w3V72e8diADxpZjIXXE1QbwV1gn1YUj7yhLpT/9k03qCR+F3k ZoLLJVCcmIFbzSGjED1dg5mayQ1mcCzJX3BAJ0FU6Jy4NZhwtUQ79FIshq5RGJvM/YC+ W8CwL1BUaj6yhkTRS46GhWVjgF1N+d8dVYW6yvPpIhvNVOLUYiZ3S1WG685HhGt5goBb quQkppMLAjex9be71pvlcRalaUWOm40yTVp8fXp205vCs0TMfi9j2dPX0VxhLyKraDq7 4+Og==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=+5OlwwUcfOleoKxFiK7VjhjAqs67CObb1yOW0EQVusI=; fh=Lucz/LXb10E+iJZVJjb2I07ZS4Mm0JlEwviUFL/BtSM=; b=sfndA1DS+tAid5BZ6wGrcLNO1r2G1//Bsk9AXJ9jG9IHM529l/DcTtVDyi6JgyS3AX mJrRZYvvEKp6ph3g1hrCNJz+PUIV0CM6xhXZUuG8XkGG+RK3iq/mJ8A+D/EiD1bLQU20 5pywd9BEdaf04uSO7p2lbBvyE7dlmq8TRdiZ1yA9Zc3iSNRTaFrw/POlg/wk1qZwjzyT 8w0QYbvKJd/q/w/EfL2mbUlWmGSjZ3oZQRoAclOXwmcCHoN9lJLp+KQ6b1yAdg9947K8 /AO2PBF03+2lzU465y7LRV71GEKe2P1JqVhyhssQ1zcntstOvW2wjU1uv3G3cWc3dXMK l9hw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kelleyk.net; s=google; t=1793374774; x=1793979574; darn=ietf.org; h=content-type:to:subject:message-id:date:from:mime-version:from:to :cc:subject:date:message-id:reply-to:content-type; bh=+5OlwwUcfOleoKxFiK7VjhjAqs67CObb1yOW0EQVusI=; b=Qllv+J3ILiIaxVaM5+7YOLhoOJlt/Wn/GOUg49M9uMGBes1do0lbHNx7zH5ARe6lCf FMlkAIUV5C3JnBsb3AfaFN2SN3QmpCvlOjjqtS84rHNMftJ7kFXOvHujExHcE98CcQLE G/mJPgpHlDuhFQsJnJ4wM0654ZXa/4QqqVDBY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793374774; x=1793979574; h=content-type:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=+5OlwwUcfOleoKxFiK7VjhjAqs67CObb1yOW0EQVusI=; b=CHx1wZp5VNe9oPJZczpwpojNHugBrnVLwi7Ao9rPmqrp/EHeeuR0Oq1XpL7J7JZLR1 qsHWwV8drmRJcub/W1gNOp9prKy3/lUQNmtx9vIAbZWjn9tlP/siuXN8kXUW+mgeUnQE bar/eWY3ZdmRAy27YPVvf36b9+YckQamCjRKgb1SmGHbH3WKSod/DbZGWv7P4LfVTvd7 RAmxmKd22ZwXmwa/lvQ0ARUj+Mn89IVJR5unuGvla1TEnPxM37nkHththDEkO7l+rIco 2+BYKh0nzPCgetK5MgqmvTzLFPZTg70WtFySyrK/j+EbCcx2wLUFyh/ZXPktPch710tX X+rA==
X-Gm-Message-State: AFq9FYLqo5T4bLS5Ow5VzgDOGbOA9CR8G9k0ildxO5/GFqSHKrOClOvJ 9OD1LgrAy8Z5ib14KMVtJKOIReE7lLPoameSHvjQAMYPVNEEPixYPRG6NOsW39Zcyfu9UtzbY2h pRwcTJGCjBHPVdbd1k6TRl9zYhDoR1m4+uwqFB3GEis1ldbbhcSSJatOsSw==
X-Gm-Gg: AYBFou11LFdOZ0301tUxqoos9yN/igLVllLTnqOSFfOGOYvcye8zux89ciE9n70jt/S Kx5N5p+CWh1KEfvIX5zDzFuQaatHhIUeJDQzVP9FmiIq52TCjRiS92Z5qok5ex0pjExDXN9w0i5 aGElvVFMAtwc48oCH6ADIjwCEaARM8LCBd7pjAQK5EonzWIIziyC05d2ZwVReJHErwvJ1c/GibJ Ic9uixxe7N3L6zHBupnpqjNYiwcB1nGUksSM+uzeU2MqUHKsepuP5f03kG1WGMI69+YRm4dkBuQ 6+k+h7q6U0W71revDtBv8TnBfuJQZ0WNd+mJ8gdqz4OYf6uzZ92ZYqtrA5f2pR9hc/p9yaCIl36 NQRT4e2wSC7hHCx5YYnQDeK4NGYUWwOFMLkPn5A==
X-Received: by 2002:a2e:a80d:0:b0:39c:624d:82b9 with SMTP id 38308e7fff4ca-3acb7aa453fmr7158111fa.4.1793374773899; Fri, 30 Oct 2026 08:39:33 -0700 (PDT)
MIME-Version: 1.0
From: Kevin Kelley <kelleyk-ietf@kelleyk.net>
Date: Fri, 30 Oct 2026 08:39:22 -0700
X-Gm-Features: AclHuK8-95q-IhHI6TkLLYcKWXlCrdOlh-QCmtc7Ma2HvZleQvzaHtmj_fwQCJw
Message-ID: <CAGfqOAY_t6UmzZw+nYzTfRVhyHuGb7RyEwmcwetwAF01f4ONbA@mail.gmail.com>
To: ai-control@ietf.org
Content-Type: multipart/alternative; boundary="0000000000005900df065f109aa0"
X-Spamd-Bar: ------------------------
Message-ID-Hash: SINBVOTKPWCDPBWRUACB4XCCYC2YFBDU
X-Message-ID-Hash: SINBVOTKPWCDPBWRUACB4XCCYC2YFBDU
X-MailFrom: kelleyk-ietf@kelleyk.net
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [ai-control] New draft: draft-kelley-aipref-training-preference-signal-00
List-Id: AI Control <ai-control.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ai-control/mddjatOxSR0h6GmLRBWlc839c7w>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ai-control>
List-Help: <mailto:ai-control-request@ietf.org?subject=help>
List-Owner: <mailto:ai-control-owner@ietf.org>
List-Post: <mailto:ai-control@ietf.org>
List-Subscribe: <mailto:ai-control-join@ietf.org>
List-Unsubscribe: <mailto:ai-control-leave@ietf.org>

Howdy everyone,

I've just submitted a new I-D,
draft-kelley-aipref-training-preference-signal:


https://datatracker.ietf.org/doc/draft-kelley-aipref-training-preference-signal/

It describes a way to express AI-training preferences in robots.txt without
adding any new grammar. A site operator writes an ordinary rule group whose
User-Agent line names a "policy token":

    User-Agent: __usage_ai-training
    Disallow: /
    Allow: /press-kit/

This reads as "a preference against AI training for everything except
/press-kit/, and a preference in favor of it there." Lookup uses the usual
RFC 9309 path matching and longest-match precedence.

This is a preference about use, not a traffic-management signal; the two
are intentionally separate, and ordinary rules for a crawler’s own product
token still govern fetching (though the draft does ask crawlers not to
fetch what they can’t use).

This differs from the attachment draft that we put aside in order to make
progress on the vocabulary.  Like I've mentioned, I've spent a lot of time
investigating how deployed parsers would interact with a wide variety of
ways of expressing preferences in robots.txt files.

The mechanism in my draft uses only existing syntax, so parsers and
crawlers that don't implement it but comply with RFC 9309 should gracefully
ignore preference expressions and still receive other signals. It also
avoids relying on the areas where deployed parsers behave differently (and
let me tell you, there are plenty!).

And it builds on prior art: some crawler operators already publish tokens
that control how content is used rather than which crawler can fetch it.
The draft introduces the term “policy token” as a vendor-neutral name for
that pattern, and calls the existing vendor-specific ones “proprietary
policy tokens”.

Wildcard groups never match the new, vendor-neutral policy token, so
existing User-Agent: * rules aren’t read as expressing a preference, which
was a deliberate design goal. As a result, a robots.txt file that doesn’t
use this mechanism, as is true of every one published today, expresses no
preference at all.  Rules for crawler product tokens and proprietary policy
tokens keep whatever meaning they have today.

I’m proposing this as input to the WG’s attachment work, and I'm planning
to open a PR against the attachment draft to get thoughts from all of you.
I'll try to explain my thinking a little bit more there.  (Thank you to
everyone who's already weighed in off-list!)

On the vocabulary front, the policy token takes its meaning directly from
the "AI Training" definition in draft-ietf-aipref-vocab-08.

I'm also excited to share that Anthropic has already started implementing
support for this draft.  This complements our existing crawler controls
rather than replacing them.

It'll take us some time to add support across our services and work through
the inevitable complications and edge cases that I'm sure we'll discover.
Also, as standards in this area evolve, how we interpret and apply these
signals may change.  I'm looking forward to what we'll learn from having
"running code" in the field and how that will inform the work we still have
to do together.

I'm very pleased that, over the coming months, all of our hard work will
start to become something that website publishers can use.  Putting a
working signal in people's hands feels like tangible evidence that all of
the effort and heart we've put in, and all of the long hours and long
flights, are paying off.

We hope that others will join us and make this a single signal that is
respected across the Internet.

I'm curious to hear everyone's reactions and happy to answer any questions.

On a personal note:  I'm incredibly grateful to everyone who has invested
time and effort in the WG's work and engaged in good faith, from every
point of view.  I hope this is just the beginning of what we can ship
together, and I look forward to seeing all of you in San Francisco.

Cheers,

-K