桃子桃子快讯
返回首页
工具

开发者用 POSIX Shell 打造极简 AI 编程 Agent

千行 POSIX Shell 脚本实现 AI 编码 Agent,兼容 OpenAI API

2026.07.07 · 周二4 分钟阅读

一款名为 ssa(Simple Shell Agent)的 AI 编程工具以不到 1000 行 POSIX Shell 脚本实现,近日在 Hacker News 上引发关注。该工具灵感来自 mini-swe-agent,主打「shell only」、「fresh process each step」与「simple loop」三大特性。用户只需用自然语言描述任务,工具便会反复向模型询问应当执行的 shell 命令、运行它们、再把输出回传给模型,直至任务完成。

项目核心

ssa 的核心循环完全使用 POSIX Shell 编写,仅依赖 shell、date、grep、sed 和 tee 这些基础工具;与模型交互则需要 curl 和 jq,但整体保持极简风格:

  • 每次执行步骤都启动新的进程,避免状态污染
  • 核心循环逻辑简单直接,便于调试与阅读
  • 同时提供 curlRunner.sh(对接 OpenAI 兼容 API)与 llamaCppRunner.sh(基于本地 llama.cpp)两种模型调用方式

项目在 Linux、macOS 与 BSD 上均可运行,作者也因此戏称其为「Mostly POSIX sh」。

使用方式

通过简单的环境变量配置即可启动工具,可对接任意 OpenAI 兼容端点,例如 OpenRouter:

  • export PATH="/path/to/ssa/bin:$PATH"
  • export OPENAI_API_KEY="sk-..."
  • export OPENAI_URL="https://openrouter.ai/api/v1/chat/completions"
  • export SSA_MODEL_RUNNER="/path/to/ssa/libexec/ssa/curlRunner.sh"
  • export SSA_MODEL="openrouter/auto"

随后在任意项目目录下执行 ssa summarize this repo 这类命令,工具便会自动完成任务。运行 ssa -h 可查看完整选项。

模型能力要求

作者明确指出,工具对模型能力有一定要求:

  • Qwen 2.5 1.5B 与 3B 模型在简单测试中输出难以被解析
  • Qwen 2.5 7B 与 32B 模型则能产出可解析、可执行的 shell 脚本
  • 当前仅能完成非常基础的「hello world」类任务

这意味着想要让 ssa 真正发挥作用,至少需要 7B 规模的模型。

安全机制

由于工具默认会以当前用户身份、在当前目录下执行模型生成的 shell 命令,存在一定安全风险,作者因此提供了多种沙箱选项:

  • 通过 --script-runnerSSA_SCRIPT_RUNNER 指定沙箱脚本
  • 内置 libexec/ssa/askUserSandbox.sh:每条命令执行前询问用户
  • 内置 libexec/ssa/switchUserSandbox.sh:切换到其他 Unix 用户运行
  • 生产环境建议结合 seccomp、namespaces、pledge() 或 jails 等系统级隔离

调试方面,ssa 会将会话文件写入 $TMPDIR/ssa-$LOGNAME-<timestamp>/,可通过 --keep-session 保留以便排查,其中 sessionTranscript.txt 是从模型视角查看完整运行过程的较好切入点。项目以 MIT 协议开源,可在原仓库直接获取。

信源