AIOKFAgentsllms.txtKnowledge Management

llms.txt vs AGENTS.md vs OKF:三種「給 AI 的 markdown」,其實在解不同問題

·閱讀約 3 分鐘

最近「給 AI 用的 markdown」冒出一堆:llms.txt、AGENTS.md、CLAUDE.md、OKF……我在自己的網站和 repo 裡剛好三種都用過,結果最常被問的是同一句:「是不是有了其中一個,另外幾個就不用了?」

這問題有點像我上一篇問的「OKF 是不是取代 RAG」——會混淆,是因為把不在同一層的東西擺在一起比。它們的差別不在「哪個比較好」,而在它們對誰說話。

先把結論放前面:llms.txt 是給外部 LLM 讀你的網站,AGENTS.md/CLAUDE.md 是給在你 repo 裡工作的 agent 下指令,OKF 是那個 agent 要用的結構化知識本身。三個是三層,不是三選一。

同一個框架,上一篇:OKF vs RAG vs 向量資料庫

真正的差別:它們對誰說話

把它們放回正確的位置,只要問三個問題:對誰說話、內容是什麼、什麼時候被讀。

llms.txtAGENTS.md / CLAUDE.mdOKF
對誰外部 LLM(讀你公開網站)你 repo 裡工作的 coding agent需要知識的 agent
是什麼網站的精選地圖/索引行為指令與紀律結構化知識本身
範圍一個檔、站層級一個檔、repo 層級一個目錄的概念圖
內含重點頁面連結 + 簡述規矩、指向哪裡概念、關係、決策
何時被讀LLM 抓你網站時agent 開始工作時agent 需要某項知識時
三種「給 AI 的 markdown」

llms.txt:把網站整理給 LLM 看

llms.txt 是放在網站根目錄的一份 markdown 地圖(規格見 llmstxt.org),讓 ChatGPT、Perplexity、Claude 這類會讀你公開網站的 LLM,快速找到你的重點內容、正確引用,而不是亂爬一通。它的對象是「外部的、讀你網站的模型」。

重點是:它不是拿來對你的 coding agent 下指令的,也不是知識庫。它就是一張對外的地圖。我幫這個站補了一份,而且是從文章資料自動生成的,加新文章就自動更新。

AGENTS.md / CLAUDE.md:是指令,不是知識

AGENTS.md(給 Codex)和 CLAUDE.md(給 Claude Code)是 coding agent 進到你 repo 時預設會載入的入口檔。它們講的是「怎麼做」:專案慣例、常用指令、規矩、以及該去哪裡找東西。它本身不放知識,它放的是行為與指向。

第一手講:我就是用它們當入口,把 agent 指向我的 OKF 知識庫——「動工前先讀 /knowledge 的相關節點」。少了這層,知識庫放在那也沒人會去讀。

OKF:知識本身

OKF 則是那份被指向的、結構化、可走訪、可版本控制的知識——一個目錄的 typed markdown,概念之間用連結串成圖。它回答的是「知識該長什麼樣子」,不是「怎麼行為」,也不是「對外怎麼被找到」。

想深入 OKF:Google OKF 會取代 RAG 與向量資料庫嗎?

它們怎麼組起來(不是互相取代)

在我實際的 setup 裡,三者同時存在、各做各的:AGENTS.md/CLAUDE.md 是入口指令,把 agent 指向 OKF bundle;llms.txt 走另一條路,對外,給讀我網站的 LLM。前兩者對內、對開發 agent,llms.txt 對外,沒有誰取代誰。

實測這套怎麼運作:把 repo 做成 OKF bundle 給 agent 當記憶

所以你需要哪個?

按需求對號入座:有公開網站想被 LLM 正確讀到、正確引用 → 補 llms.txt。有 coding agent 在你 repo 裡工作 → 寫 AGENTS.md/CLAUDE.md。有一批 agent 會反覆用到的結構化知識 → 做成 OKF。答案常常是「都要」,但別把其中一個當成另一個用。

所以「給 AI 的 markdown」其實是三層,不是同一種東西。與其糾結要選哪一個,不如逐層檢查:這三層,我各自補齊了沒。