ROCKI

LEARN · ARTICLE

llms.txt 怎麼寫,讓 AI agent 找得到重點

發布 2026-11-09更新 2026-11-09作者 Rock Lee
llms.txt 怎麼寫,讓 AI agent 找得到重點 封面示意圖

作者:Rock Lee 實測日期:2026-11-09(Asia/Taipei)

為什麼寫這篇

越來越多人不是自己逛網站,而是叫 AI agent 去讀。網頁是做給人看的,選單、腳本、樣式一大堆,agent 要從裡面挖出「重點在哪、網址是什麼」並不容易。llms.txt 就是為這件事提出的:在網站根目錄放一份 Markdown 小地圖,告訴 agent 這個網站是什麼、重要頁面在哪。

先講清楚邊界:媒體轉述過 Google 的 Gary Illyes(2025 年)說 Google 不支援 llms.txt,John Mueller 也說當時沒有 AI 系統在用。所以 llms.txt 不會幫 SEO 或 AdSense 加分,它只是給 agent 的便利。

我替 rocki.org 加了 llms.txt,也在每篇教學文末放了「複製這段給你的 AI agent」區塊。這篇記錄怎麼寫、怎麼驗收,包括一個我自己沒想到的失敗:Lighthouse 判我的 llms.txt 不合格。

網站門口放一張給機器人看的小地圖(示意圖,AI 生成)
網站門口放一張給機器人看的小地圖(示意圖,AI 生成)

實測環境

項目實測值
受測網站rocki.org(Next.js,Vercel)
檢查工具Lighthouse 13.6.0(Agentic Browsing 類別)
問答模型gemini-3.8-flash-low(透過 Antigravity CLI)
規格依據llmstxt.org 提案(Jeremy Howard,2024-09-03 發布,2026-08-10 修訂為 v2)

步驟

1. 先搞懂格式

依 llmstxt.org 的提案,檔案放在網站根目錄的 /llms.txt,內容依序是:

  1. 一個 # 大標題,寫網站名稱。這是唯一必要的部分。
  2. 一段 > 開頭的引言,用一兩句話說明網站。
  3. 一般說明段落(不能再放標題)。
  4. 用 ## 分段的「檔案清單」,每一項是 - [名稱](網址): 說明。
  5. 可以有一段 ## Optional,放次要連結,agent 時間不夠時可略過。

2. 確認你的檔案真的上線

curl -sI https://rocki.org/llms.txt
curl -s https://rocki.org/llms.txt | wc -l -c

我們的上線版回 HTTP 200、text/plain,51 行、1,913 bytes。內容有大標題、各頁路由、作者、公開聯絡管道、繁中教學網址,還有給 agent 的三條規矩:不要貼金鑰、登入和付款留給人、照文章寫的環境與驗收標準做。

但最後一行指令透露了問題:裡面 Markdown 連結是 0 個,網址全是直接貼的。

確認 llms.txt 上線,並數出 Markdown 連結數(現場執行畫面)
確認 llms.txt 上線,並數出 Markdown 連結數(現場執行畫面)
目前上線的 llms.txt 前 30 行(現場抓取)
目前上線的 llms.txt 前 30 行(現場抓取)

3. 用 Lighthouse 的 Agentic Browsing 檢查

新版 Lighthouse 多了一個「Agentic Browsing」類別(報告上註明仍在開發、之後可能改)。只跑這一類:

npx lighthouse https://rocki.org/ --only-categories=agentic-browsing --output=html --output-path=./agentic

結果 2/3,失敗的正是 llms.txt:「File does not appear to contain any links.」正式站首頁和預覽站的教學列表頁,結果都一樣。

Lighthouse:llms.txt 不符建議,原因是沒有連結(2026-11-09 實測報告)
Lighthouse:llms.txt 不符建議,原因是沒有連結(2026-11-09 實測報告)

4. 看懂它怎麼判

我直接翻了 Lighthouse 13.6.0 這項檢查的原始碼,規則只有三條:

  • 要有一行 # 標題
  • 至少一個 [文字](網址) 格式的連結
  • 內容至少 50 個字元

另外,如果 /llms.txt 回 4xx(例如根本沒放),這項算「不適用」,不扣分;回 5xx 或 429 才算失敗。換句話說,放了但格式不對,比沒放還難看。

Lighthouse 13.6.0 的判斷規則(原始碼節錄)
Lighthouse 13.6.0 的判斷規則(原始碼節錄)

5. 改寫成規格格式

改法是照第 1 步的結構重排:

  • 加一段 > 引言,說明網站與教學區
  • 網址全部改成 [名稱](網址): 說明
  • 分成「繁中教學/About/English lab/Optional」四段
  • 給 agent 的規矩保留在說明段落

改完 1,409 字元,比原本還短。我在本機架了一個測試伺服器,把新檔放在根目錄再跑 Lighthouse:llms.txt 通過,類別 3/3。要提醒的是,那個本機頁面很陽春,這次只能證明 llms.txt 這一項過關。

改寫前後對照:裸網址改成 Markdown 連結(節錄)
改寫前後對照:裸網址改成 Markdown 連結(節錄)
改寫版在本機測試:Agentic Browsing 3/3(2026-11-09 實測報告)
改寫版在本機測試:Agentic Browsing 3/3(2026-11-09 實測報告)

6. 文章頁加「複製給 AI agent」區塊

llms.txt 是整站的地圖,文章末的指令區塊則是單篇的操作說明。每篇都有一個可一鍵複製的區塊,內容固定五段:目標、前提(禁止讀憑證、禁止破壞性指令)、步驟、驗收、安全(付款與登入留給人)。我用自動化瀏覽器按了複製鈕,按鈕變成「已複製」,剪貼簿拿到 553 個字元,內容完整。

教學文末的 agent 指令區塊,按下後顯示「已複製」(正式站截圖)
教學文末的 agent 指令區塊,按下後顯示「已複製」(正式站截圖)

結果

格式過關只是第一層。我更想知道:agent 拿到這份檔案,真的比較會回答嗎? 於是用同一個模型、同樣 4 個問題(教學列表網址、某篇教學網址、操作規矩、作者與聯絡方式),只換餵給它的資料,並要求它資料裡沒有就說沒有:

給 agent 的資料字元數4 題答對
A:只給 /tw 首頁的純文字1,7151 題(網址兩題答「資料中沒有」,規矩也答不出)
B:目前上線的 llms.txt(裸網址版)1,8704 題
C:第一次改寫版1,3033 題(聯絡方式只答得出聯絡頁)
C2:補回聯絡連結的改寫版1,4094 題,5.2 秒
同模型、同 4 題,只換資料的問答對照(現場執行畫面)
同模型、同 4 題,只換資料的問答對照(現場執行畫面)

兩個意外:

  1. 裸網址版對 agent 其實夠用。 B 跟 C2 都全對。改成 Markdown 連結,主要是為了符合規格和 Lighthouse,不是因為模型看不懂。
  2. 我第一次改寫時刪掉了 X 和 GitHub 的連結,C 就答不出完整聯絡方式。要不是有這組問答測試,我只會看到 Lighthouse 綠燈,不會發現資訊少了。

純文字版答不出網址很合理:網頁轉成純文字時,連結網址就消失了,這正是 llms.txt 存在的理由。

踩坑紀錄

  1. 以為「有放」就好。 網址直接貼、沒有 [文字](網址),Lighthouse 直接判失敗。
  2. 改格式時順手刪資訊。 我把聯絡方式縮成一個聯絡頁連結,agent 就答不出 X 和 GitHub。改完一定要重跑問答。
  3. 本機測試只證明一項。 本機頁面太簡單,Agentic Browsing 3/3 不代表正式站其他項目也會過。
  4. 把 llms.txt 當 SEO 工具。 Google 方面的公開說法是不用它,別期待排名或廣告審核因此變好。
  5. 規矩寫在檔案裡,不代表 agent 一定遵守。 這次的測試只證明它「讀得到、答得出」,沒有測它執行時會不會照做。

常見問題

Q1:llms.txt 跟 robots.txt 有什麼不同? robots.txt 告訴爬蟲哪些路徑可以抓;llms.txt 是一份 Markdown 導覽,告訴 agent 網站在講什麼、重要頁面在哪。兩者用途不同,也不會互相取代。

Q2:一定要放嗎? 不放不會被扣分(Lighthouse 對 4xx 判「不適用」)。如果你希望 agent 能快速找到重點頁面,再放;放了就照格式寫。

Q3:要不要中英文都寫? 我們的教學是繁中、Lab 是英文,所以段落標題跟說明混用兩種語言。目前沒有測過哪一種語言對 agent 比較好,這部分未測。

Q4:每次新增文章都要手動改嗎? 目前我們是手動改。比較穩的做法是從網站的文章清單自動產生,但這篇還沒實作,未測。

複製這段給你的 AI agent

目標:檢查一個網站的 /llms.txt 是否符合 llmstxt.org 格式,並草擬改寫版。只讀,不部署、不改線上檔案。

前提與禁止事項:
- 只用公開網址讀取;不要登入、不要讀取或輸出任何 token、密碼、Cookie。
- 不要修改網站、不要 git push、不要部署。
- 草稿存在本機一個新檔案,不要覆蓋現有檔案。

步驟:
1. curl -sI <網站>/llms.txt,回報 HTTP 狀態與 content-type。
2. 抓下內容,回報:行數、字元數、有沒有 "# " 標題、有沒有 "> " 引言、Markdown 連結 [文字](網址) 的數量。
3. 若可執行 Lighthouse:npx lighthouse <網站> --only-categories=agentic-browsing --output=json,回報 llms-txt 這項的分數與錯誤訊息。
4. 依格式草擬改寫版:H1 → 引言 → 說明段落 → 用 ## 分段的 "- [名稱](網址): 說明" 清單 → ## Optional。不得刪掉原檔中的任何網址或聯絡方式。
5. 列出原檔與草稿的網址清單對照,確認沒有遺漏。

驗收:附上步驟 1~3 的數字、草稿全文、網址對照表;回報中沒有任何金鑰或個人帳號字串。