在 AI agent 工具日益臃腫的今天,一個名為 ssa 的開源專案反其道而行之——它完全用 POSIX shell 指令碼 編寫,整個程式碼只有幾百行。專案託管在 GitHub(patrickjh/ssa),只有一個 shell 檔案和一個配置檔案,就能讓你在終端裡跟 AI 對話,甚至讓它執行系統命令。
為什麼還要一個純 Shell 的 AI Agent?
當你開啟終端,為了跑一個 AI 助手,可能得先裝 Python、PyTorch、Transformers,或者 Node.js 和 npm 包。ssa 卻只依賴 curl 和 jq(或可選的 yq 處理 YAML),幾乎任何 Unix 系統開箱即用。這種 極簡哲學 對伺服器運維、嵌入式開發或喜歡 minimalist 工具的開發者來說,格外有吸引力。
ssa 背後呼叫的是 OpenAI 的 API(Chat completions endpoint),所以它本身不包含模型,只是一個輕量級前端。但它聰明地封裝了上下文管理、角色定義、以及 安全執行命令 的能力——使用者可以選擇讓 AI 直接執行 shell 命令,或只輸出建議。
功能概覽:小而實用
- 對話模式:在終端裡進行多輪對話,支援儲存歷史。
- 命令執行:AI 可以生成並(在確認後)直接執行 shell 命令。
- 可定製系統提示:通過配置檔案設定 AI 的角色和行為。
- 無外部依賴:僅需 curl 和 jq,相容任何 POSIX shell。
專案 README 中給出一個例子:輸入「列出所有大於 100MB 的檔案」,ssa 會生成 find / -size +100M 並詢問是否執行。這種 自然語言作業系統 的體驗,讓新手也能輕鬆完成複雜任務。
實際影響:降低 AI 助手的門檻
對系統管理員和運維工程師來說,ssa 提供了一種 零負擔 的 AI 輔助方式。你不需要在伺服器上安裝額外的執行時,只需一個 API key 就能獲得類似 GitHub Copilot for CLI 的能力。更重要的是,由於指令碼完全開源且可審查,安全性上有保證——使用者可以在執行任何命令前檢查它。
對於想學習 shell 程式設計 或 API 呼叫封裝 的開發者,ssa 的程式碼也是一個很好的參考範例。它展示瞭如何用純 shell 處理 JSON、管理會話、以及實現簡單的狀態機。
侷限與展望
當然,ssa 的功能非常基礎:它不支援流式輸出(streaming),依賴外部 API 意味著需要聯網,而且上下文長度受限於 token 數。但考慮到它的體積和使用場景——比如在樹莓派、路由器或臨時環境中快速搭建一個 AI 助手——這些缺點完全可以接受。
有趣的是,專案在 Hacker News 上引發的討論集中在「Shell 是否適合寫 AI agent」上。有人覺得 shell 指令碼難以維護,但對 ssa 來說,這種簡單反而變成了優勢。畢竟,當一個工具能用一個檔案解決時,你不太需要擔心依賴地獄。
如果你是個終端重度使用者,或者想在不折騰環境的情況下體驗 AI agent,不妨試試 ssa。幾分鐘就能跑起來。











評論
暫無評論
成為第一個評論的人