在 Simon Willison 的博客中,他分享了一个巧妙的技术:如何在自己的 LLM CLI 工具中,利用脚本的 shebang 行直接调用语言模型。这个想法源于 Hacker News 上 Kim_Bruning 的评论,他说“如果你足够勇敢,现在可以在英文文本文件上使用 shebang”。Willison 因此探索了多种模式。最基础的用法是利用 LLM 的片段(fragments)功能。你可以在脚本开头添加 #!/usr/bin/env -S llm -f,然后直接写入提示文本,例如“生成一只骑自行车的鹈鹕的SVG”。运行脚本时,LLM 会自动处理并输出 SVG 代码。这比运行完整聊天界面更简洁。进阶用法包括工具调用。使用 -T llm_time 选项,让模型调用外部工具获取当前时间,然后创作一首包含精确时刻的俳句。更复杂的模式是直接执行 YAML 模板,可以在其中定义额外的工具作为 Python 函数。例如,创建一个 calc.sh 脚本,指定模型为 gpt-5.4-mini,系统提示为“Use tools to run calculations”,然后定义 add 和 multiply 函数。运行 ./calc.sh 'what is 2344 * 5252 + 134' --td 时,LLM 会调用 multiply 和 add 工具进行计算,并显示调试输出,最终输出结果 12,310,822。这种技术将 LLM 的能力嵌入到可执行文件中,为自动化脚本提供了新思路。Willison 还展示了一个更复杂的例子,利用 Datasette SQL API 回答关于博客内容的问题。这个例子展示了如何将 LLM 与数据库查询结合,实现自然语言问答。整体而言,这种方法极大地扩展了 LLM 在脚本环境中的应用潜力,降低了调用 AI 的门槛,使得任何文本文件都能瞬间变成智能程序。对于开发者和自动化爱好者来说,这无疑是一个值得尝试的技巧。
在脚本的Shebang行中使用LLM
文章摘要
本文展示了如何使用LLM CLI工具在脚本的shebang行中直接调用语言模型,支持片段、工具调用和YAML模板,使文本文件可执行。
在脚本的Shebang行中使用LLM