Show HN: Axe – AIフレームワークを置き換える12MBのバイナリ
48日前原文(github.com)
概要
Axeは、LLMエージェントをUnixプログラムのように扱うCLIツール。
エージェントはTOMLで定義し、小さく、集中し、組み合わせ可能。
標準入力パイプやcron、CIなど既存ツールと連携可能。
DockerやMCPサーバーにも対応し、多様な運用が可能。
PythonやGUI不要、Go製の軽量バイナリで完結。
Axeとは何か
- LLMエージェントをCLIから管理・実行できるツール
- TOMLファイルでエージェントを定義し、各エージェントは特定の役割に集中
- Unixの哲学を継承し、「1つのことをうまくやる」エージェント設計
- 標準入力パイプやcron, git hooks, CIなど、既存の開発フローとの統合
- デーモン不要、GUI不要、フレームワーク依存なしの設計
- 12MBバイナリ、Go製、最小限の依存関係のみ
主な特徴
- マルチプロバイダー対応:Anthropic, OpenAI, Ollama(ローカルモデル)
- TOMLベースの宣言的エージェント定義:バージョン管理も容易
- サブエージェント呼び出し:エージェント同士の連携、深さ制限・並列実行
- 永続メモリ:Markdownログによる過去コンテキストの保持
- メモリGC:LLMによるパターン解析とトリミング
- スキルシステム:SKILL.mdによる再利用可能な指示セット
- 標準入力パイプ対応:他ツールからの出力を直接エージェントに渡す
- ドライランモード:LLM呼び出し前のコンテキスト確認
- JSON出力:スクリプト連携用の構造化データ
- 組み込みツール:ファイル操作やシェルコマンド実行
- MCPツール対応:外部MCPサーバーと連携可能
- 最小依存:cobra, toml, mcp-go-sdk, x/netのみ
インストール方法
- Go 1.24+ 必須
- go install github.com/jrswab/axe@latest でインストール
- ソースビルドも可能(git clone & go build)
クイックスタート
- 設定ディレクトリ初期化
axe config init - 新規エージェント作成
axe agents init my-agent - 設定編集
axe agents edit my-agent - エージェント実行
axe run my-agent - 他ツールからパイプで入力
git diff --cached | axe run pr-reviewer
cat error.log | axe run log-analyzer
例とサンプル
- examples/ ディレクトリに即利用可能なエージェント例を収録
- コードレビュアー、コミットメッセージ生成、要約など
- APIキー設定後、サンプルエージェントをコピーして即利用可能
Dockerでの利用
- Dockerイメージ提供、隔離環境での実行が可能
- 設定・データディレクトリをマウントし、APIキーを環境変数で渡す
- 標準入力パイプも -i フラグで利用可
- docker-compose.yml も用意されており、Ollama連携やクラウドプロバイダー利用も容易
- セキュリティ強化設定(非root, 読み取り専用rootfs, cap_drop, privilege escalation無効)
エージェント設定(TOML)
- agents/ ディレクトリにTOMLファイルで定義
- name, modelは必須。他は任意
- system_prompt, skill, files, workdir, tools, sub_agents, memory, mcp_servers, paramsなど細かな設定が可能
組み込みツール一覧
- list_directory:作業ディレクトリ内のディレクトリ内容一覧
- read_file:ファイル内容を行番号付きで取得
- write_file:ファイル新規作成・上書き
- edit_file:ファイル内テキスト置換
- run_command:シェルコマンド実行(sh -c)
- call_agent:サブエージェント呼び出し(sub_agents設定時)
パス・セキュリティ
- ファイル操作は作業ディレクトリ内にサンドボックス化
- 絶対パス、..トラバーサル、シンボリックリンク逃避は拒否
MCPツール連携
- [[mcp_servers]]でMCPサーバーを宣言
- サーバー起動時に利用可能なツールを自動検出し、LLMから利用可能に
- 名前が被った場合は組み込みツールが優先
スキル(SKILL.md)
- エージェントにドメイン知識やワークフローを与える再利用可能な指示セット
- community SKILL.md形式に準拠
CLIコマンド一覧
- axe run <agent>:エージェント実行
- axe agents list:エージェント一覧表示
- axe agents show <agent>:エージェント設定詳細表示
- axe agents init <agent>:新規エージェントTOML作成
- axe agents edit <agent>:TOML編集
- axe config path:設定ディレクトリパス表示
- axe config init:設定ディレクトリ初期化
- axe gc <agent>:エージェントのメモリGC
- axe gc --all:全エージェントGC
- axe version:バージョン表示
よく使うフラグ
- --model <provider/model>:モデル上書き
- --skill <path>:スキルファイル上書き
- --workdir <path>:作業ディレクトリ上書き
- --timeout <秒数>:タイムアウト設定
- --dry-run:LLM呼び出しせずにコンテキスト確認
- --verbose/-v:デバッグ情報出力
- --json:JSONラップ出力
環境変数
- ANTHROPIC_API_KEY:Anthropic利用時必須
- OPENAI_API_KEY:OpenAI利用時必須
- AXE_OLLAMA_BASE_URL:Ollama利用時必須
- AXE_ANTHROPIC_BASE_URL, AXE_OPENAI_BASE_URL:各APIエンドポイント上書き用
まとめ
- Axeは「小さく・集中・組み合わせ可能」なLLMエージェント実行環境
- CLI/Unixツールとの親和性が高く、既存の開発フローに簡単統合
- Python不要、GUI不要、Go製の高速・軽量バイナリ
- DockerやMCPサーバーとの連携もサポートし、柔軟な運用が可能
- AIエージェントを活用した自動化やワークフロー改善に最適