Halt.rs 是做什麼的?
使用 Rust 代理伺服器有效控制循環、優先順序與系統濫發,遏止成本失控並管理多代理 AI 工作流程。
概覽
Halt.rs 作為一個輕量級的 Rust 代理伺服器,位於你的 AI 代理(例如 Claude Code、Cursor、Codex)與後端服務之間。它會攔截所有請求和回應,並根據可設定的規則進行節制。
主要功能
- 循環中斷:自動偵測並終止無限 or 重複的代理執行循環。
- 優先級管理:根據任務關鍵性動態調整代理的執行順序。
- 速率限制:防止代理過度呼叫 API 或系統服務,避免成本暴增。
- 即時監控:提供儀表板或日誌,讓你隨時掌握代理活動與成本使用情況。
快速開始
# 使用 cargo 安裝(需要 Rust 工具鏈)
cargo install halt-rs
# 或者直接從發布頁面下載預編譯的二進位檔
wget https://github.com/NiCkLP76667/Halt.rs/releases/latest/download/halt-x86_64-unknown-linux-gnu.tar.gz
基本設定
建立設定檔 halt.toml:
[proxy]
listen = "127.0.0.1:8080"
upstream = "https://api.openai.com"
[rate_limiting]
enabled = true
max_requests_per_minute = 60
[loop_detection]
enabled = true
max_identical_calls = 5
window_seconds = 120
[logging]
format = "json"
level = "info"
啟動代理:
halt --config halt.toml
支援的平台
- Claude Code:透過 API 代理即可使用,無需修改代理程式碼。
- Cursor:在 Cursor 的設定中指定自訂 API 端點為 Halt.rs 的監聽位址。
- Codex:配置環境變數
OPENAI_API_BASE指向 Halt.rs。
進階用法
動態優先級佇列
[priorities]
strategy = "weighted_round_robin"
levels = [
{ name = "critical", weight = 10 },
{ name = "high", weight = 5 },
{ name = "normal", weight = 3 },
{ name = "low", weight = 1 },
]
自訂中斷規則
[[interceptors]]
pattern = "cost.*exceeded"
action = "stop_agent"
message = "成本已達上限,中斷當前代理。"
[[interceptors]]
pattern = ".*loop.*detected"
action = "pause_agent"
cooldown_minutes = 15
環境變數
| 變數 | 描述 | 預設值 |
|---|---|---|
HALT_LISTEN | 代理監聽位址 | 127.0.0.1:8080 |
HALT_UPSTREAM | 上游服務端點 | https://api.openai.com |
HALT_RATE_LIMIT | 每分鐘請求上限 | 60 |
HALT_LOG_LEVEL | 日誌層級 | info |
貢獻指南
歡迎提交 Issue 或 Pull Request。請確保遵守 Rust 慣例並撰寫對應測試。
授權
MIT License