LLMs.txt解讀:網路新的LLM-Ready內容標準

LLMs.txt解讀:網路新的LLM-Ready內容標準

文章目录

  • LLMs.txt的興起
  • 背景和語境
  • Twitter上的社羣熱議
  • 什麼是LLMs.txt檔案?
  • /llms.txt
  • /llms-full.txt
  • LLMs.txt的主要優勢
  • 如何在人工智慧系統中使用LLMs.txt?
  • ChatGPT
  • Claude
  • Cursor
  • 生成LLMs.txt檔案的工具
  • 實際應用和多功能性
  • LLMs.txt的Python模組和 CLI
  • 安裝
  • 如何使用?
  • Python模組
  • 實現與測試
  • Python 原始碼概述
  • 比較LLMs.txt和MCP(模型上下文協議)
  • LLMs.txt
  • MCP(模型上下文協議)
  • MCP如何工作?
  • 現實世界的影響和早期採用
  • 共同動機和關鍵差異
  • 結論

LLMs.txt解讀:網路新的LLM-Ready內容標準

六個月前,LLMs.txt 作為一種開創性的檔案格式問世,旨在使大型語言模型 (LLM) 可以訪問網站文件。自發布以來,該標準在開發人員和內容建立者中的影響力穩步上升。如今,隨著圍繞模型上下文協議(MCP)的討論愈演愈烈,LLMs.txt 作為一種久經考驗、人工智慧優先的文件解決方案,在人類可讀內容和機器友好型資料之間架起了一座橋樑,成為人們關注的焦點。在本文中,我們將探索 LLMs.txt 的發展歷程,研究其結構和優勢,深入探討技術整合(包括 Python 模組和 CLI),並將其與新興的 MCP 標準進行比較。

LLMs.txt的興起

背景和語境

六個月前釋出的 LLMs.txt 是為了應對一個關鍵挑戰而開發的:robots.txt 和 sitemap.xml 等傳統網路檔案是為搜尋引擎爬蟲設計的,而不是為需要簡潔、經過編輯的內容的人工智慧模型設計的。LLMs.txt 提供了網站文件的精簡概覽,使 LLMs 能夠快速瞭解基本資訊,而不會被無關的細節所困擾。

要點:

  • 目的:將網站內容提煉為適合人工智慧推理的格式。
  • 採用: 在其短暫的生命週期內,Mintlify、Anthropic 和 Cursor 等主要平臺已經整合了 LLMs.txt,凸顯了其有效性。
  • 當前趨勢: 隨著最近圍繞 MCP(模型上下文協議)的討論激增,社羣正在積極比較這兩種增強 LLM 能力的方法。

Twitter上的社羣熱議

Twitter 上的對話反映了 LLMs.txt 的快速應用和對其潛力的興奮之情,同時有關 MCP 的討論也在不斷增加:

  • Jeremy Howard (@jeremyphoward):對這一勢頭表示慶祝,他說:”最近幾周,我提出的 llms.txt 標準確實獲得了巨大的發展勢頭。他感謝社羣–尤其是 @StripeDev 的支援,Stripe 現已在其文件網站上託管 LLMs.txt。
  • Stripe Developers(@StripeDev):宣佈他們已將 LLMs.txt 和 Markdown 新增到他們的文件(docs.stripe.com/llms.txt)中,使開發人員能夠輕鬆地將 Stripe 的知識整合到任何 LLM 中。

將 Stripe 的知識整合到任何 LLM 中

  • Developer Insights@TheSeaMouse、@xpression_app 和 @gpjt 等開發者的推文不僅稱讚了 LLMs.txt,還引發了將其與 MCP 進行比較的討論。一些使用者指出,LLMs.txt 增強了內容攝取功能,而 MCP 則有望使 LLMs 更具可操作性。

什麼是LLMs.txt檔案?

LLMs.txt 是一種 Markdown 檔案,採用結構化格式,專門設計用於使 LLM 可以訪問網站文件。主要有兩個版本:

/llms.txt

  • 目的:提供網站文件的高層次策劃概述。它可以幫助法律碩士快速掌握網站的結構並找到關鍵資源。
  • 結構:
    • 包含專案或網站名稱的 H1。這是唯一必需的部分
    • 包含專案簡短摘要的段落引語,其中包含理解檔案其餘部分所需的關鍵資訊
    • 零個或多個除標題外的任何型別的標記符(如段落、列表等),包含有關專案的更多詳細資訊以及如何解釋所提供的檔案
    • 零個或多個由 H2 標題分隔的標記符部分,包含可獲得更多詳細資訊的 URL “檔案列表
      • 每個 “檔案列表 ”都是一個標記符列表,包含一個必需的標記符超連結[名稱](url),然後可選擇一個:和關於檔案的註釋。

/llms-full.txt

  • 目的:在一個地方包含完整的文件內容,在需要時提供詳細的上下文。
  • 用法:特別適用於技術 API 參考資料、深入指南和綜合文件。

結構示例程式碼段:

# Project Name
> Brief project summary
## Core Documentation
- [Quick Start](url): A concise introduction
- [API Reference](url): Detailed API documentation
## Optional
- [Additional Resources](url): Supplementary information

LLMs.txt的主要優勢

與傳統網路標準相比,LLMs.txt 有幾個明顯的優勢:

  • 針對 LLM 處理進行了最佳化:它去除了導航選單、JavaScript 和 CSS 等非必要元素,只關注 LLM 所需的關鍵內容。
  • 高效的上下文管理:鑑於 LLM 在有限的上下文視窗中執行,LLMs.txt 的簡潔格式可確保只使用最相關的資訊。
  • 雙重可讀性:Markdown 格式使 LLMs.txt 既對人友好,又易於被自動工具解析。
  • 對現有標準的補充:與sitemap.xml或robots.txt不同,LLMs.txt提供了一種經過整理的、以人工智慧為中心的文件檢視。

如何在人工智慧系統中使用LLMs.txt?

要充分利用 LLMs.txt 的優勢,必須手動將其內容輸入人工智慧系統。以下是不同平臺如何整合 LLMs.txt:

ChatGPT

  • 方法:使用者將 /llms-full.txt 檔案的 URL 或完整內容複製到 ChatGPT 中,豐富上下文以獲得更準確的回覆。
  • 優點:此方法可讓 ChatGPT 在需要時參考詳細文件。

ChatGPT整合LLMs.txt

Source – Link

Claude

  • 方法:由於 Claude 目前缺乏直接瀏覽功能,使用者可以貼上內容或上傳檔案,確保提供全面的上下文。
  • 優點:這種方法使 Claude 的響應建立在可靠的最新文件基礎之上。

Claude整合LLMs.txt

Source – Link

Cursor

  • 方法:Cursor 的 @Docs 功能允許使用者新增 LLMs.txt 連結,無縫整合外部內容。
  • 優點:增強 Cursor 的上下文意識,使其成為開發人員的強大工具。

Cursor整合LLMS.txt

Source – Link

生成LLMs.txt檔案的工具

有幾種工具可以簡化 LLMs.txt 檔案的建立,減少人工操作:

  • Mintlify:為託管文件自動生成 /llms.txt 和 /llms-full.txt 檔案,確保一致性。

也可參考:https://mintlify.com/docs/quickstart

  • dotenv 的 llmstxt:將網站的 sitemap.xml 轉換為符合要求的 LLMs.txt 檔案,與現有工作流程無縫整合。
  • Firecrawl 的 llmstxt:利用網路抓取技術將網站內容編譯成 LLMs.txt 檔案,最大限度地減少人工干預。

實際應用和多功能性

LLMs.txt 檔案的多功能性從 FastHTML 等現實世界的專案中可見一斑,這些專案遵循了這兩項關於人工智慧友好型文件的建議:

  • FastHTML文件:FastHTML專案不僅使用LLMs.txt檔案提供其文件的精選概覽,還提供了一個普通的HTML文件頁面,其URL與.md副檔名相同。這種雙重方法確保人類讀者和 LLM 都能以最合適的格式訪問內容。
  • 自動擴充套件:FastHTML 專案選擇使用基於 XML 的結構將其 LLMs.txt 檔案自動擴充套件為兩個標記符檔案。這兩個檔案是
    • llms-ctx.txt: 包含上下文,但不包含可選的 URL。
    • llms-ctx-full.txt: 包含可選 URL,以提供更全面的上下文。
  • 這些檔案透過 llms_txt2ctx 命令列應用程式生成,FastHTML 文件提供了詳細的使用指南。
  • 在各種應用中的通用性:除了技術文件,LLMs.txt 檔案在各種情況下都很有用–從幫助開發人員瀏覽軟體文件,到幫助企業概述其結構、為利益相關者分解複雜的立法,甚至提供個人網站內容(如簡歷)。同樣,使用 nbdev 的 Answer.AI 和 fast.ai 專案也使用此功能重新生成文件–fastcore 的文件模組的 markdown 版本就是例證。

LLMs.txt的Python模組和 CLI

對於希望將 LLMs.txt 整合到其工作流程中的開發人員,我們提供了專門的 Python 模組和 CLI,用於解析 LLMs.txt 檔案並建立適合 Claude 等系統的 XML 上下文文件。該工具不僅可以輕鬆地將文件轉換為 XML,還提供了命令列介面和 Python API。

安裝

pip install llms-txt

如何使用?

CLI

安裝後, llms_txt2ctx 可在終端中使用。

要獲取 CLI 的幫助,請:

llms_txt2ctx -h

將 llms.txt 檔案轉換為 XML 上下文並儲存為 llms.md:

llms_txt2ctx llms.txt > llms.md

透過 -optional True 新增輸入檔案的“可選”部分。

Python模組

from llms_txt import *
samp = Path('llms-sample.txt').read_text()

使用 parse_llms_file 建立一個包含 llms.txt 檔案各部分的資料結構(如果需要,也可以新增 optional=True):

parsed = parse_llms_file(samp)
list(parsed)
['title', 'summary', 'info', 'sections']
parsed.title,parsed.summary

實現與測試

為了說明解析 llms.txt 檔案有多簡單,下面是一個完整的解析器,只用了不到 20 行程式碼,沒有任何依賴關係:

from pathlib import Path
import re,itertools
def chunked(it, chunk_sz):
    it = iter(it)
    return iter(lambda: list(itertools.islice(it, chunk_sz)), [])
def parse_llms_txt(txt):
    "Parse llms.txt file contents in `txt` to a `dict`"
    def _p(links):
        link_pat = '-\s*\[(?P<title>[^\]]+)\]\((?P<url>[^\)]+)\)(?::\s*(?P<desc>.*))?'
        return [re.search(link_pat, l).groupdict()
                for l in re.split(r'\n+', links.strip()) if l.strip()]
    start,*rest = re.split(fr'^##\s*(.*?$)', txt, flags=re.MULTILINE)
    sects = {k: _p(v) for k,v in dict(chunked(rest, 2)).items()}
    pat = '^#\s*(?P<title>.+?$)\n+(?:^>\s*(?P<summary>.+?$)$)?\n+(?P<info>.*)'
    d = re.search(pat, start.strip(), (re.MULTILINE|re.DOTALL)).groupdict()
    d['sections'] = sects
    return d

我們在 tests/test-parse.py 中提供了一個測試套件,並確認該實現透過了所有測試。

Python 原始碼概述

llms_txt Python 模組提供了建立和使用 llms.txt 檔案所需的原始碼和助手。下面是其功能的簡要概述:

  • 檔案規範:該模組遵循 llms.txt 規範:一個 H1 標題、一個小標題摘要、可選內容部分和包含檔案列表的 H2 分隔部分。
  • 解析助手:例如,parse_link(txt) 可從標記符連結中提取標題、URL 和可選描述。
  • XML 轉換:create_ctx 和 mk_ctx 等函式可將解析後的資料轉換為 XML 上下文檔案,這對 Claude 等系統尤其有用。
  • 命令列介面:CLI 命令 llms_txt2ctx 使用這些助手處理 llms.txt 檔案並輸出 XML 上下文檔案。該工具簡化了將 llms.txt 整合到各種工作流程中的過程。
  • 簡潔的實現:該模組甚至包括一個不到 20 行程式碼的解析器,利用 regex 和 chunked 等輔助函式進行高效處理。

更多詳情,請參閱此連結 – https://llmstxt.org/core.html

比較LLMs.txt和MCP(模型上下文協議)

雖然 LLMs.txt 和新興的 Model Context Protocol (MCP) 都旨在增強 LLM 功能,但它們應對的是人工智慧生態系統中的不同挑戰。下面是深入探討兩種方法的增強比較:

LLMs.txt

  • 目標:透過將網站文件提煉為結構化的 Markdown 格式,專注於為 LLM 提供簡潔、精心策劃的內容。
  • 實現:由網站所有者維護的靜態檔案,是技術文件、API 參考資料和綜合指南的理想選擇。
  • 優點:
    • 簡化內容攝取。
    • 易於實施和更新。
    • 透過過濾掉不必要的元素來提高提示質量。

MCP(模型上下文協議)

什麼是MCP?

MCP 是一種開放標準,可在資料和人工智慧工具之間建立安全的雙向連線。可以把它想象成人工智慧應用的 USB-C 埠–一個讓不同工具和資料來源相互“對話”的通用聯結器。

MCP為何重要?

隨著人工智慧助手成為我們日常工作流程中不可或缺的一部分(如 Replit、GitHub Copilot 或 Cursor IDE),確保它們能夠訪問所需的所有上下文至關重要。如今,整合新的資料來源往往需要定製程式碼,既雜亂又耗時。MCP 透過以下方式簡化了這一過程:

  • 提供預建整合:不斷增加的即用聯結器庫。
  • 提供靈活性:實現不同人工智慧提供商之間的無縫切換。
  • 增強安全性:確保您的資料在基礎設施內的安全。

MCP(模型上下文協議)

Source – Link

MCP如何工作?

MCP 採用客戶伺服器架構:

  • MCP 主機:希望訪問資料的程式(如 Claude Desktop 或流行的整合開發環境)。
  • MCP 客戶端:與 MCP 伺服器保持 1:1 連線的元件。
  • MCP 伺服器:公開特定資料來源或工具的輕量級介面卡。
  • 連線生命週期:
    1. 初始化:交換協議版本和功能。
    2. 資訊交換:支援請求-響應模式和通知。
    3. 終止:徹底關閉、斷開連線或處理錯誤。

現實世界的影響和早期採用

想象一下,如果您的人工智慧工具可以無縫訪問本地檔案、資料庫或遠端服務,而無需為每個連線編寫自定義程式碼。MCP 承諾正是如此–簡化人工智慧工具與各種資料來源的整合方式。早期採用者已經在各種環境中嘗試使用 MCP,從而簡化了工作流程,減少了開發開銷。

共同動機和關鍵差異

共同目標:LLMs.txt 和 MCP 的目標都是增強 LLMs 的能力,但它們是以互補的方式實現這一目標的。LLMs.txt 透過提供經過整理的精簡網站文件檢視來改進內容攝取,而 MCP 則透過使 LLM 能夠執行現實世界中的任務來擴充套件他們的功能。從本質上講,LLMs.txt 幫助法律碩士更好地 “閱讀”,而 MCP 則幫助他們有效地 “行動”。

解決方案的性質

  • LLMs.txt:
    • 靜態、經過編輯的內容標準: LLMs.txt 設計為靜態檔案,嚴格遵守基於 Markdown 的結構。它包括一個 H1 標題、一個塊狀引文摘要和以 H2 分隔的部分,其中包含經過編輯的連結列表。
    • 技術優勢:
      • 令牌效率:透過過濾掉非必要的細節(如導航選單、JavaScript 和 CSS),LLMs.txt 將複雜的網頁內容壓縮成簡潔的格式,適合 LLMs 的有限上下文視窗。
      • 簡單:它的格式易於使用標準文字處理工具(如 regex 和 Markdown 解析器)生成和解析,因此可供廣大開發人員使用。
    • 增強能力:
      • 提高提供給 LLM 的上下文的質量,從而實現更準確的推理和更好的響應生成。
      • 由於其結構是可預測和機器可讀的,因此便於測試和迭代改進。
  • MCP(模型上下文協議):
    • 動態、行動啟用協議:MCP 是一個強大的開放標準,可在 LLM 與外部資料來源或服務之間建立安全的雙向通訊。
    • 技術優勢:
      • 標準化 API 介面:MCP 就像一個通用聯結器(類似於 USB-C 埠),允許 LLM 與各種資料來源(本地檔案、資料庫、遠端 API 等)無縫對接,無需為每次整合定製程式碼。
      • 即時互動:透過客戶端-伺服器架構,MCP 支援動態請求-響應週期和通知,使 LLM 能夠獲取即時資料並執行任務(如傳送電子郵件、更新電子表格或觸發工作流)。
      • 複雜性處理:MCP 必須應對身份驗證、錯誤處理和非同步通訊等挑戰,因此工程密集度更高,但在擴充套件 LLM 功能方面也更加靈活。
    • 增強能力:
      • 將 LLM 從被動的文字生成器轉變為主動的任務執行助手。
      • 便於將 LLM 無縫整合到業務流程和開發工作流程中,透過自動化提高生產力。

易於實施

  • LLMs.txt:
    • 實施起來相對簡單。它的建立和解析依賴於輕量級文字處理技術,只需最小的工程開銷。
    • 可手動或透過簡單的自動化工具進行維護。
  • MCP:
    • 需要強大的工程設計。實施 MCP 需要設計安全的應用程式介面、管理客戶-伺服器架構,並不斷維護與不斷發展的外部服務標準的相容性。
    • 涉及開發預置聯結器和處理複雜的即時資料交換。

共同作用:這些創新是增強 LLM 能力的互補戰略。LLMs.txt 可確保 LLM 擁有高質量、濃縮的基本內容快照,從而大大提高理解能力和響應質量。與此同時,MCP 允許 LLM 在靜態內容和動態操作之間架起橋樑,從而提升 LLM 的能力,最終將 LLM 從單純的內容分析儀轉變為可執行任務的互動式系統。

結論

六個月前釋出的 LLMs.txt 已經在人工智慧文件領域佔據了重要的一席之地。LLMs.txt 為 LLMs 提供了一種經過精心策劃的精簡方法來攝取和理解複雜的網站文件,從而大大提高了人工智慧響應的準確性和可靠性。它的簡單性和令牌效率使其成為開發人員和內容建立者的寶貴工具。

與此同時,模型上下文協議(MCP)的出現標誌著 LLM 功能的進一步發展。MCP 的動態標準化方法使 LLM 能夠無縫訪問外部資料來源和服務並與之互動,將它們從被動的閱讀器轉變為主動的任務執行助手。LLMs.txt 和 MCP 共同體現了強大的協同效應:LLMs.txt 確保人工智慧模型獲得最佳上下文,而 MCP 則為它們提供了根據上下文采取行動的手段。

展望未來,人工智慧驅動的文件和自動化的前景似乎越來越光明。隨著最佳實踐和工具的不斷發展,開發人員可以期待整合度更高、更安全、更高效的系統,這些系統不僅能增強 LLM 的能力,還能重新定義我們與數字內容的互動方式。無論您是致力於創新的開發人員,還是旨在最佳化工作流程的企業主,抑或是渴望探索技術前沿的人工智慧愛好者,現在都是深入研究這些標準並釋放人工智慧文件全部潛力的時候了。

評論留言