On Thu Sep 24, 2026 at 9:49 AM EDT, Sasha Levin wrote:
Most coding agents have standardized on AGENTS.md as the file they load
automatically from the root of a repository. README already tells AI
tools to read and follow Documentation/process/coding-assistants.rst,
but that only helps if the agent decides to read README before acting,
which in practice it often doesn't.
Add a top-level AGENTS.md symlink to README, so agents load it on their
own and follow its pointer to the AI guidelines. This keeps a single
entry point for every reader, and avoids adding a separate copy of the
policy that could drift from the RST.
As an example, two different agents were asked to "create a new commit
renaming the release (in the Makefile) to AI Test".
Without AGENTS.md, the first agent added a Signed-off-by for the user on
its own. It should never have done that: only the human submitter can
certify the Developer Certificate of Origin, after reviewing the change.
It also used its own attribution tag instead of Assisted-by:
Makefile: rename release to AI Test
Co-Authored-By: <model name> <noreply@...>
Signed-off-by: Sasha Levin <[email protected]>
The second agent added no attribution at all:
Rename release to AI Test
With AGENTS.md in place, neither agent added a Signed-off-by, and both
used the Assisted-by tag. README itself mentions neither tag, so both
agents followed its pointer to coding-assistants.rst:
Makefile: rename release to "AI Test"
Change the release name from "Baby Opossum Posse" to "AI Test".
Assisted-by: LLM
Makefile: rename release to AI Test
Assisted-by: LLM
Both agents also followed the kernel's general guidelines more closely.
The second agent's subject gained the "subsystem: summary phrase" form
that submitting-patches.rst asks for, instead of a bare "Rename release
to AI Test", and the first agent added a body describing the change.
Assisted-by: LLM
How do you need an LLM to assist you with making a symlink?
Okay, all the other conversation aside. When I see an AGENT.md file in
a code repository, I see:
- This project likely accepts LLM code (which is true for Linux)
- There is a file that provides a cute little "all you need to know
about this" file for our matrix multiplication machines
- There could be parts of code that are entirely LLM-written. (may or
may not be true here?)
I think the existence of said file can also imply to someone who is
meat proxying "here's your AGENTS file, go wild!".
I don't see how the addition of this file is worth it, aside from
helping LLMs, in which the users of the LLM should be directing the
agent to the proper documentation anyway. That ensures that you have
a human directing the agent.
Honestly this looks a lot like, "we have our altar to our LLM
overlords". The kernel existed without LLMs for years. We don't need
a file to make LLMs happy and then have LLM companies say "we are so
important we made a major project that runs most of the world's tech
infrastructure have to provide us guidelines!" - which I guess we
already have.
Anyway.
Don't we want humans to read the documentation before contributing?
I feel like this will just lead to more people going "Agent. Read
AGENT.md. Find bug. Hiyah!" and then meat proxying patches without
generally learning or being helpful.
This is an opportunity of a sanity test for humans to know what they
are doing before just throwing stuff at the LLM. Why are we throwing
that out?
And if the argument is "but tokens!", then won't it also take some
tokens for the agent to process "oh this file is a symlink"?
I find it hard to take this suggestion seriously.
Signed-off-by: Sasha Levin <[email protected]>
---
AGENTS.md | 1 +
1 file changed, 1 insertion(+)
create mode 120000 AGENTS.md
diff --git a/AGENTS.md b/AGENTS.md
new file mode 120000
index 0000000000000..100b93820ade4
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1 @@
+README
\ No newline at end of file