在 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。几分钟就能跑起来。











评论
暂无评论
成为第一个评论的人