在脚本的 shebang 行中使用 LLM
摘要
Simon Willison 演示了如何在脚本的 shebang 行中使用 llm CLI 工具,从而直接从可执行文件执行 LLM 提示词与工具调用。
暂无内容
查看缓存全文
缓存时间: 2026/05/11 22:50
# TIL:在脚本的 shebang 行中使用 LLM
来源:https://simonwillison.net/2026/May/11/llm-shebang/
Kim_Bruning 在 Hacker News 上(https://news.ycombinator.com/item?id=48073246#48090590):
> 说真的,你现在可以把 shebang 放在一个英文文本文件上了(如果你足够勇敢的话)\[…\]
这启发我去探索用LLM(https://llm.datasette.io/en/stable/)来实现这一点的具体模式。下面是最简单的方法,它利用了LLM 片段(https://llm.datasette.io/en/stable/fragments.html):
```
#!/usr/bin/env -S llm -f
生成一幅鹈鹕骑自行车的 SVG
```
不过你也可以通过 `-T 工具名称` 选项来集成工具调用(https://llm.datasette.io/en/stable/tools.html):
```
#!/usr/bin/env -S llm -T llm_time -f
写一首提及当前确切时间的俳句
```
甚至可以直接执行 YAML 模板,在其中用 Python 函数定义额外的工具:
```
#!/usr/bin/env -S llm -t
model: gpt-5.4-mini
system: |
使用工具来执行计算
functions: |
def add(a: int, b: int) -> int:
return a + b
def multiply(a: int, b: int) -> int:
return a * b
```
然后:
```
./calc.sh '计算 2344 * 5252 + 134' --td
```
输出结果(借助 `--td` 工具调试选项)为:
```
工具调用:multiply({'a': 2344, 'b': 5252})
12310688
工具调用:add({'a': 12310688, 'b': 134})
12310822
2344 × 5252 + 134 = **12,310,822**
```
阅读完整的 TIL 文章(https://til.simonwillison.net/llms/llm-shebang#templates-with-tools),可以找到一个更复杂的示例,它使用 Datasette SQL API 来回答关于我博客内容的问题。
相似文章
llm 0.32a0
本文宣布 Simon Willison 开发的 'llm' 命令行工具发布 0.32a0 版本,并提供有关大型语言模型发展的月度简报。
llm 0.31.1
Simon Willison 发布的 llm 0.31.1,这是一个用于与大语言模型交互的命令行工具。
llm 0.32a3
llm 0.32a3版本发布,这是Simon Willison的命令行工具的一个alpha版本,用于与大语言模型交互。
Show HN: Bash4LLM+ – 一个轻量级、无依赖的 Bash 封装器,用于 LLM API
Bash4LLM+ 是一个轻量级、无依赖的 Bash 封装器,用于 LLM API,提供与 Groq 及其他提供者的安全、可审计交互,具有动态模型列表、流式输出和可扩展附加功能等特点。
llama.cpp 就是 LLM 界的 Linux
文章把 llama.cpp 比作 Linux,认为这款开源库已成为运行大语言模型的基础底座。