ed,标准文本编辑器

为了了解如何将 llms.txt 应用于编辑器和 IDE,让我们看看 ed,这个 标准文本编辑器,如何工作(假设它已更新以使用此提案)。在我们的示例中,我们将看看用户如何告诉 eddocs.fastht.ml 检索 LLM 文档,然后使用结果来编写一个简单的 FastHTML 网页应用。

即使您使用非标准的编辑器或 IDE,例如 vscode、Cursor、vim 或 Emacs,您的软件与 /llms.txt 的交互看起来也会类似于这种通用方法。

$ ed
* H

我们的用户启动 ed 并启用有用的错误信息(仅为了这个教程的目的 - 显然真正的 ed 用户不需要“有用的错误信息”)。

* L docs.fastht.ml
Checking for /llms.txt at docs.fastht.ml...
Found /llms.txt. Parsing...
Fetching URLs from "Docs" section...  Fetching URLs from "Examples" section...
Skipping "Optional" section for brevity.
Creating XML-based context for Claude...  Context created and loaded.

用户调用假设的 L (load) 命令,在这个增强版的 ed 中检索并处理 llms.txt 文件。 ed 检查该文件(如果不存在,它将退回到以传统方式抓取网站的 HTML),解析它,提取相关的 URL,并创建适合 Claude 的基于 XML 的上下文(也许可以使用 ed 配置文件来选择使用哪个 LLM,并决定上下文的格式)。所有这一切都在 ed 的特有沉默中进行,只有这些令人安心的进度消息打破了沉默。

* x Create a simple FastHTML app which outputs 'Hello, World!', in a <div>.
Analyzing context and prompt...
Generating FastHTML app...
App written to buffer.

接下来,我们的用户调用了假设的 x (eXecute AI) 命令,提供指令给 LLM 创建一个简单的 FastHTML 应用。在 LLM 增强的 ed 的世界中,这被理解为基于给定提示和之前加载的上下文生成代码的请求。

* n
5
* p
from fasthtml.common import *
app,rt = fast_app()
@rt
def index(): return div("Hello, World!")
serve()

编辑器分析加载的上下文和提供的提示,生成FastHTML应用,并将其写入缓冲区。用户随后查看生成的应用行数 (n) 和内容 (p),惊叹于这5行代码中包含了多少功能。

*w hello_world.py
5
*q

最后,我们的用户将应用程序保存到一个文件中并退出 ed,大概是为了运行他们新的 FastHTML 应用程序,并反思他们可靠的行编辑器所带来的意想不到的生产力提升。