jrswab/axe
A lightweight cli for running single-purpose AI agents. Define focused agents in TOML, trigger them from anywhere; pipes, git hooks, cron, or the terminal.
Axe – LLMエージェントのためのUnixスタイルCLI
概要 – Axeは(Goで書かれた)コマンドラインプログラムで、宣言的なTOMLファイルで エージェント(小規模で単一目的のLLMワークフロー)を定義し、ターミナルやスクリプトから実行できます。各エージェントは、LLMと対話し、組み込みツール(ファイルの読み書き、シェルコマンドの実行、URLの取得、Web検索)を呼び出し、他のエージェントに作業を委任できる小さなUnixユーティリティのようなものです。
重要性 – 既存のLLMラッパーの多くは、巨大なコンテキストウィンドウを持つ長時間実行されるチャットボットを想定しています。Axeはそのモデルを覆します。エージェントは、永続的なメモリを明示的に有効にしない限り、フォーカスされ、構成可能で、ステートレスです。他のCLIと同様に動作するため、データをエージェントにパイプしたり (git diff | axe run pr‑reviewer)、cronでスケジュールしたり、CIからトリガーしたり、標準のUnixパイプラインで複数のエージェントを連結したりできます。
コアコンセプト
| コンセプト | 機能 |
|---|---|
| エージェント定義 | モデル、システムプロンプト、スキル(Markdown指示ファイル)、オプションのツール、サブエージェント、メモリ設定、トークン予算、再試行ポリシーなどを指定するTOMLファイル ($XDG_CONFIG_HOME/axe/agents/*.toml)。 |
| スキル | LLMにタスクの実行方法を指示する再利用可能な SKILL.md 指示セット。スキルはAxe設定ディレクトリからの相対パスまたは絶対パスで検索されます。 |
| 永続メモリ | 実行ごとにLLMコンテキストに自動的に読み込まれるオプションのMarkdownログ。AxeはLLM支援によるガベージコレクションを実行して古いエントリを整理することもできます。 |
| ツール使用 | 組み込みのサンドボックス化されたツール (read_file、write_file、run_command、url_fetch、web_search など) およびオプションの外部MCPツール。LLMがツール呼び出しを要求すると、Axeがそれを実行し、結果を返し、会話が継続されます。 |
| サブエージェント委任 | エージェントは、深さと並列性の制限付きで他のエージェント (call_agent) を呼び出すことができ、階層的なワークフローを実現します。 |
主な機能(READMEに記載)
- マルチプロバイダーサポート – Anthropic、OpenAI、Ollama (ローカル)、OpenCode、AWS Bedrock。
- TOMLベースのバージョン管理可能な設定 – Gitでの保存が容易。
- 標準入力パイピング – エージェントを他のフィルターと同様に扱う。
- ドライランモード – LLMにヒットせずに解決されたコンテキストをプレビュー。
- JSONエンベロープ – 下流の自動化のための構造化された出力。
- トークン予算の強制 – 累積トークン制限に達したときに実行を停止(終了コード4)。
- メモリガベージコレクション – LLM支援による古いログの整理。
- 再試行ロジック – 一時的なプロバイダーエラーに対する設定可能な指数/線形/固定バックオフ。
- セキュリティ – サンドボックス化されたファイルツール、Web取得用のホスト許可リスト、SSRF保護、および強化されたDockerイメージ(非rootユーザー、読み取り専用ルートFS、機能の削除)。
インストール
| 方法 | コマンド |
|---|---|
| ビルド済みバイナリ (Linux/macOS/Windows) | GitHub Releasesページからダウンロード。 |
| Go install (Go 1.25+が必要) | go install github.com/jrswab/axe@latest |
| ソースからビルド | ```bash |
| git clone https://github.com/jrswab/axe.git | |
| cd axe | |
| go build . |
---
### クイックスタートワークフロー
```bash
# 設定ディレクトリの初期化 (~/.config/axe)
axe config init
# "my‑agent" という新しいエージェントをスキャフォールド
axe agents init my-agent
# 生成されたTOMLを編集してモデルやスキルなどを設定
axe agents edit my-agent
# 実行 – データをパイプするか、-p でプロンプトを指定
git diff --cached | axe run my-agent
# または
axe run my-agent -p "Summarise the latest changelog"
READMEには、コードレビュー担当者、コミットメッセージ生成器、テキスト要約器など、すぐにコピーして使えるエージェントを含む examples/ フォルダも同梱されています。
Dockerサポート
- 最小限のDockerfileが強化されたイメージをビルドします (
UID 10001、読み取り専用ルート、すべての機能が削除)。 - Axe設定ディレクトリをマウントし、環境変数経由でAPIキーを渡すことでエージェントを実行します。
docker buildxを介してマルチアーキテクチャビルド (linux/amd64,linux/arm64) がサポートされています。- ローカルのOllamaインスタンスと並行してAxeを実行するための
docker‑compose.ymlが提供されています。Ollamaサービスを省略することで、クラウド専用プロバイダーでイメージを使用することもできます。
一般的なユースケース
- 自動コードレビュー –
git diffをcode‑reviewerエージェントにパイプし、ファイルを読み取り、リンターを実行し、変更を提案させます。 - コミットメッセージ生成 – コミットログをエージェントに供給し、簡潔なメッセージを出力させます。
- ログ分析 – エラーログを
log‑analyzerエージェントにストリーミングし、既知の問題をWeb検索させます。 - CI/CD ゲート – GitHub Actionsワークフローのステップとしてエージェントを実行し、スタイルやセキュリティチェックを強制します。
- アドホックデータ抽出 –
read_file/run_commandツールを使用してリポジトリからデータを取得し、LLMに変換を依頼します。
次のステップ
examples/README.md– 同梱されたエージェントの詳細なウォークスルー。- CLIリファレンス –
axe --helpまたはREADMEの表で、すべてのコマンドとフラグを確認。 - エージェントTOMLスキーマ – READMEの「Agent Configuration」セクションに、すべてのオプションフィールド(メモリ、予算、再試行、MCPサーバーなど)が記載されています。
- MCP統合 – Model Context Protocolを話す外部ツールサーバーがある場合は、
[[mcp_servers]]の下に宣言してツールセットを拡張してください。
結論
Axeは、LLMをプログラム可能なコマンドラインツールとして扱うための、軽量でUnix哲学に沿った方法を提供します。各エージェントを小さく、バージョン管理され、構成可能に保つことで、既存のシェルパイプライン、CIシステム、Dockerワークフローに自然に適合しつつ、サブエージェント委任、永続メモリ、マルチプロバイダーサポートなどの高度な機能を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト