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 對話的小型 Unix 工具,它可以呼叫內建工具(讀寫檔案、執行 Shell 指令、抓取 URL、網頁搜尋),甚至可以將工作委派給其他代理。
為什麼它很重要 – 大多數現有的 LLM 封裝程式都假設您想要一個具有巨大上下文視窗的長期執行聊天機器人。Axe 顛覆了這個模型:除非您明確啟用持久化記憶,否則代理是 專注、可組合且無狀態的。因為它的運作方式與任何其他 CLI 相同,您可以將資料傳送給代理 (git diff | axe run pr‑reviewer)、使用 cron 排程、從 CI 觸發它,或使用標準 Unix 管線將多個代理串聯在一起。
核心概念
| 概念 | 功能 |
|---|---|
| 代理定義 | 一個 TOML 檔案 ($XDG_CONFIG_HOME/axe/agents/*.toml),指定模型、系統提示詞、技能(Markdown 指令檔案)、選用工具、子代理、記憶設定、Token 預算、重試策略等。 |
| 技能 | 可重複使用的 SKILL.md 指令集,告訴 LLM 如何 執行任務。技能會相對於 Axe 設定目錄或透過絕對路徑進行查找。 |
| 持久化記憶 | 選用的 Markdown 日誌,會在每次執行時自動載入到 LLM 上下文中。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 封裝 – 用於下游自動化的結構化輸出。
- Token 預算強制執行 – 當達到累積 Token 限制時停止執行(退出代碼 4)。
- 記憶垃圾回收 – LLM 輔助修剪舊日誌。
- 重試邏輯 – 針對暫時性供應商錯誤的可配置指數/線性/固定退避策略。
- 安全性 – 沙盒檔案工具、網頁抓取的宿主允許清單、SSRF 保護以及強化的 Docker 映像(非 root 使用者、唯讀根檔案系統、刪除權限)。
安裝
| 方法 | 指令 |
|---|---|
| 預編譯二進位檔 (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)。 - 提供
docker‑compose.yml用於與本地 Ollama 執行個體一起執行 Axe;您也可以透過省略 Ollama 服務將映像與僅雲端供應商一起使用。
典型使用案例
- 自動化程式碼審查 – 將
git diff傳送至code‑reviewer代理,該代理可以讀取檔案、執行 linter 並建議變更。 - 提交訊息產生 – 將提交日誌提供給產生簡潔訊息的代理。
- 日誌分析 – 將錯誤日誌串流傳輸至
log‑analyzer代理,該代理可以搜尋網頁以尋找已知問題。 - CI/CD 閘道 – 在 GitHub Actions 工作流程中將代理作為一個步驟執行,以強制執行樣式或安全性檢查。
- 特定資料擷取 – 使用
read_file/run_command工具從儲存庫中擷取資料,然後要求 LLM 進行轉換。
下一步方向
examples/README.md– 捆綁代理的詳細說明。- CLI 參考 –
axe --help或 README 中的表格,了解所有指令和旗標。 - 代理 TOML 架構 – README 的「代理設定」部分列出了每個選用欄位(記憶、預算、重試、MCP 伺服器等)。
- MCP 整合 – 如果您有支援 Model Context Protocol 的外部工具伺服器,請在
[[mcp_servers]]下宣告它們以擴充工具集。
總結
Axe 提供了一種輕量級、符合 Unix 哲學的方式,將 LLM 視為可程式化的命令列工具。透過保持每個代理的小型化、版本控制和可組合性,它自然地融入現有的 Shell 管線、CI 系統和 Docker 工作流程中,同時仍提供子代理委派、持久化記憶和多供應商支援等進階功能。
相關
- 專案
- 專案
- 專案
- 專案