POSIXシェルで動作する簡易AIエージェント
1,000行未満のPOSIX準拠シェルスクリプトで書かれた軽量AIコーディングエージェント。言語モデルにシェルコマンドを繰り返し問い合わせ、実行し、出力に基づいて適応することでタスクを自動化します。
最近、SSA(Simple Shell Agent)というオープンソースプロジェクトが開発者の間で注目を集めています。このプロジェクトは完全にPOSIXシェルスクリプトで書かれており、コード量は1000行未満でありながら、完全に機能するAIコーディングエージェントを実現しています。SSAの動作原理は非常に直接的です。ユーザーが自然言語でタスクを記述すると、エージェントはそのタスクをAIモデル(OpenAIやローカルのllama.cppなど)に送信します。モデルはシェルスクリプトを返し、SSAはそれをカレントディレクトリで実行し、出力をモデルにフィードバックします。このサイクルをタスクが完了するまで繰り返します。プロセス全体にPythonやその他の高級言語環境は不要で、POSIX shと少数の非POSIXツール(curl、jqなど)のみに依存しています。クイックスタート:リポジトリをクローン後、環境変数(OPENAI_API_KEY、SSA_MODEL_RUNNERなど)を設定するだけで使用開始できます。OpenAI互換APIとローカルllama.cppの両方をサポート。コアループはPOSIX sh、date、grep、sed、teeのみを使用しますが、モデルからの応答を得るにはcurlとjq(HTTP用)またはllama-completion(ローカル用)が必要です。これらのツールはLinux、macOS、BSDで動作します。セキュリティ面では、SSAはデフォルトでモデル生成コマンドをそのまま実行するため、端末をモデルに委ねることに相当します。このため、プロジェクトは2つのサンドボックス機構を提供しています:askUserSandbox(実行前にユーザーに確認)とswitchUserSandbox(別のUnixユーザーとして実行)。上級ユーザーはseccomp、名前空間などを使用して、より厳格なサンドボックスを構築できます。デバッグ機能に関しては、セッションファイルは$TMPDIR/ssa-$LOGNAME-ディレクトリに保存され、--keep-sessionオプションで保持できます。sessionTranscript.txtファイルがモデル視点でのエージェントの動作を記録します。モデルの互換性については、テストでは小規模モデル(Qwen 2.5-1.5Bや3Bなど)は指示を解析できませんでしたが、7B以上のモデル(Qwen 2.5-7Bや32Bなど)は単純な「hello world」タスク用の実行可能なシェルスクリプトを生成できました。そのため、最小のモデルでは動作しない可能性があります。SSAはMITライセンスで公開されており、Python環境がなくAI支援が必要な場面で特に有用な、自動化スクリプトのための軽量AIアシスタントとして位置づけられます。