Simon Willison's Weblog
在脚本 shebang 中使用 LLM
7.5Score
TL;DR · AI 摘要
LLM 可以通过 shebang 行直接运行脚本,支持工具调用和复杂模板处理,但需谨慎使用。
核心要点
- LLM 支持在 shebang 中定义工具并执行计算。
- 示例展示了如何通过 shebang 调用函数实现数学运算。
- 复杂场景可结合 Datasette SQL API 处理数据。
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- LLM in Shebang
- 基本模式
- 最简示例
- 工具调用
- 选项启用
- 高级模板
- 函数定义
金句 / Highlights
值得收藏与分享的关键句。
But seriously, you can put a shebang on an english text file now (if you're sufficiently brave)...
Generate an SVG of a pelican riding a bicycle
Write a haiku that mentions the exact current time
#LLM#shebang#脚本#工具调用
打开原文标题:TIL:在脚本的 shebang 行中使用 LLM
来源 URL:https://simonwillison.net/2026/May/11/llm-shebang/
发布时间:Mon, 11 May 2026 20:15:56 GMT
Markdown 内容: Kim Bruning 在 Hacker News 上:
但说真的,你现在可以在英文文本文件中添加 shebang(如果你足够勇敢的话)……
这启发我去研究如何用 LLM 实现这一点。以下是最简单的例子,利用了 LLM 片段:
code
#!/usr/bin/env -S llm -f
生成一只火烈鸟骑自行车的 SVG但你也可以通过 -T 工具名称 选项结合 工具调用:
code
#!/usr/bin/env -S llm -T llm_time -f
写一首提到当前精确时间的俳句甚至可以直接执行定义了额外工具的 YAML 模板作为 Python 函数:
bash
#!/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然后运行:
bash
./calc.sh 'what is 2344 * 5252 + 134' --td输出结果(感谢 --td 工具调试选项):
code
Tool call: multiply({'a': 2344, 'b': 5252})
12310688
Tool call: add({'a': 12310688, 'b': 134})
12310822
2344 × 5252 + 134 = **12,310,822**阅读完整的 TIL 获取 更复杂的示例,该示例使用 Datasette SQL API 来回答关于我博客内容的问题。