ed,标准文本编辑器

为了理解 llms.txt 如何与编辑器和 IDE 协同工作,让我们看看ed标准文本编辑器)是如何工作的(假设它已更新以支持此提案)。在我们的示例中,我们将看到用户如何指示edfastht.ml/docs 检索 LLM 文档,然后利用这些结果编写一个简单的 FastHTML Web 应用程序。

即使您使用的是 vscode、Cursor、vim 或 Emacs 等非标准编辑器或 IDE,您的软件与/llms.txt的交互方式也与这种通用方法类似。

$ ed
* H

我们的用户启动ed并启用有用的错误消息(这只是为了本次演示的目的——显然,真正的ed用户不需要“有用的错误消息”)。

* L fastht.ml/docs
Checking for /llms.txt at fastht.ml/docs...
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(加载)命令,在这个 LLM 增强版的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,执行 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 应用程序,并回味他们信赖的行编辑器带来的意想不到的生产力提升。