免費且開源 · MIT

你的 Agent,
你的金鑰,
你的終端機。

Arlo 是一個開源、以 Rust 打造的 agentic AI 框架 —— 可以把它想成是仿照 Claude Code 提供的能力、但更精簡、更通用的版本。它提供一套具備串流輸出的執行迴圈,內建工具呼叫、人機協作(HITL)權限控管、sub-agent、MCP 整合與 Agent Skills,並以互動式 TUI、單次 CLI 指令,或可嵌入的函式庫對外提供。

一分鐘內跑起來

需要 stable 版 Rust,透過 rustup 安裝。

# clone 並建置
git clone https://github.com/kaija/arlo.git
cd arlo
cargo build --release
# 設定你的 provider 憑證
export OPENAI_API_KEY="sk-..."

cargo run -p agent-cli                          # 互動式 TUI
cargo run -p agent-cli -- "summarize this repo"  # 單次提示

arlo [--model PROVIDER:MODEL] [--profile NAME] "prompt"

核心精簡,功能完整

Agent 規劃、行動,並隨時讓你參與其中所需的一切。

Agentic 執行迴圈

以回合為單位的迴圈 —— 壓縮上下文 → 發送請求 → 串流回應 → 執行工具 → 判斷下一步 —— 具備型別化的狀態轉換與自動錯誤復原。

MCP client

透過 Model Context Protocol 連接外部工具伺服器,與內建的檔案、shell 與網路工具並用。

Agent Skills

.arlo/skills/(專案層級)與 ~/.arlo/skills/(使用者層級)探索並載入以 Markdown 定義的技能,支援模板變數替換。

人機協作(HITL)權限

4 層權限引擎 —— glob 樣式規則、靜態允許/拒絕清單,以及互動式核准提示 —— 讓每一次工具呼叫都在你的掌控之中。

任務管理與 sub-agent

內建 Task/Todo 儲存機制;可派生前景或背景的 sub-agent,各自擁有獨立歷史紀錄 —— 結果保證只回傳一次。

上下文壓縮

三層壓縮管線 —— 工具結果壓縮、對話記憶、完整摘要化 —— 讓長時間執行也不超出上下文視窗。

一套核心,三種介面

同一個 Rust 核心,在你需要的任何地方執行。

互動式 TUI

以 ratatui 打造的 REPL,可與 agent 對話、即時觀看工具呼叫串流,並當場核准權限。

單次 CLI 指令

在腳本或 CI 工作中直接執行 arlo "prompt" —— 不帶提示詞則進入互動式 REPL。

可嵌入的函式庫

把 crate 直接引入你自己的 Rust 應用程式,將執行迴圈接到任何你需要的介面上。

五個小巧 crate,各自可替換

agent-core agent-llm agent-tools agent-mcp agent-cli

設計上就不綁定供應商

把 Arlo 指向你想用的模型 —— 雲端託管或自架皆可。

Anthropic

Messages API,支援 Claude Opus、Sonnet 與 Haiku 模型,內建重試與模型覆寫。

OpenAI 相容 API

任何 OpenAI 相容的 HTTP API —— 設定 OPENAI_API_KEY 就能開始。

本地模型伺服器

OPENAI_BASE_URL 指向你自架或本地的推論伺服器即可。

隨處部署

Arlo 內建 serve 模式,透過 HTTP + SSE 提供 AG-UI 協定。以下參考整合示範如何在不增加額外基礎設施的情況下,把它接進瀏覽器或 Slack 工作區。

網頁聊天介面

Next.js · Docker

以 Next.js 打造的瀏覽器聊天介面,透過 proxy 連到 arlo --serve。串流輸出文字、行內顯示工具呼叫,並渲染人機協作核准卡片,讓你不用離開瀏覽器就能允許或拒絕每一次工具呼叫。

瀏覽器 → Next.js(port 3000)→ Arlo(內部 :8080)
  • token 抵達即時串流更新文字
  • 行內顯示工具呼叫,可選擇允許/永遠允許/拒絕
  • 核准請求 10 分鐘後過期,不留下失效按鈕
  • Arlo 容器完全內部化 —— 瀏覽器只會連到 Next.js proxy
cd integration/web
cp .env.example .env   # 設定 ARLO_MODEL 與 provider 金鑰
docker compose up --build
# 開啟 http://localhost:3000
查看原始碼

Slack 機器人

Python · Socket Mode · Docker

一個 Python proxy(arlo-slack)維持 Slack Socket Mode websocket 連線,透過 AG-UI 把討論串重播給 arlo --serve,再把回覆串流回 Slack。Slack 本身就是對話儲存空間 —— 不需要資料庫,也不掛載主機目錄。

Slack ⇄ slack-proxy ⇄ arlo(websocket / HTTP + SSE)
  • 在頻道中 @mention 或私訊即可開始;回覆會延續同一討論串
  • 訊息約每 1 秒即時更新,較長的回答會拆成多則討論串回覆
  • 每個討論串各自排隊 —— 第二則訊息會等待,不會打斷進行中的回合
  • SLACK_ALLOWED_CHANNELS / SLACK_ALLOWED_USERS 允許清單控管存取
cd integration/slack
cp .env.example .env   # 設定 SLACK_BOT_TOKEN、SLACK_APP_TOKEN、ARLO_MODEL
docker compose up --build
查看原始碼

serve 模式執行工具時不會跳出核准提示。兩個整合方案都採用容器化部署 —— 用完即丟的容器、不掛載主機目錄、唯讀 rootfs、tmpfs 工作目錄,並限制記憶體與行程數。請勿直接對外開放 Arlo 的連接埠,一律透過 proxy 存取。