在 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