Arlo は Rust 製のオープンソース agentic AI フレームワークです。Claude Code が提供するような機能を模しつつ、よりシンプルで汎用的に作られています。ツール呼び出し、Human-in-the-Loop(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"
エージェントが計画し、行動し、あなたと連携し続けるために必要なものすべて。
ターン単位のループ —— コンテキスト圧縮 → リクエスト送信 → ストリーミング応答 → ツール実行 → 次ステップの決定 —— を、型付きの状態遷移と自動エラーリカバリとともに実行します。
Model Context Protocol 経由で外部ツールサーバーに接続し、組み込みのファイル・shell・web ツールと併用できます。
.arlo/skills/(プロジェクト単位)と ~/.arlo/skills/(ユーザー単位)から Markdown 定義のスキルを検出・読み込み。テンプレート変数の置換にも対応します。
4 層構成の権限エンジン —— glob パターン、静的な allow/deny リスト、対話的な承認プロンプト —— により、すべてのツール呼び出しをあなたの管理下に置きます。
組み込みの Task/Todo ストア。独立した履歴を持つフォアグラウンド/バックグラウンドの sub-agent を起動でき、結果は確実に一度だけ返されます。
3 層のパイプライン —— ツール結果の圧縮、セッションメモリ、完全な要約 —— により、長時間の実行でもコンテキストウィンドウに収めます。
同じ Rust コアを、必要な場所どこでも。
ratatui 製の REPL。エージェントと対話し、ツール呼び出しのストリームを眺め、その場で権限を承認できます。
スクリプトや CI ジョブから arlo "prompt" をそのまま実行。プロンプトなしで起動すると対話型 REPL になります。
crate を自作の Rust アプリケーションに直接取り込み、実行ループを好きなインターフェースに接続できます。
使いたいモデルに Arlo を向けるだけ —— ホスト型でも自前でも。
Messages API。Claude Opus・Sonnet・Haiku モデルに対応し、リトライとモデル上書きを標準装備。
OpenAI 互換の HTTP API なら何でも —— OPENAI_API_KEY を設定すればすぐ使えます。
OPENAI_BASE_URL を自前ホスト/ローカルの推論サーバーに向けるだけ。
Arlo には HTTP + SSE で AG-UI を話す serve モードが付属しています。以下のリファレンス実装は、追加のインフラなしでブラウザや Slack ワークスペースに組み込む方法を示すものです。
Next.js で作られたブラウザ用チャット UI が arlo --serve にプロキシします。テキストをストリーミング表示し、ツール呼び出しをインラインで見せ、Human-in-the-Loop の承認カードを描画するので、ブラウザを離れずに各ツール呼び出しを許可/拒否できます。
ブラウザ → Next.js(port 3000)→ Arlo(内部 :8080)
cd integration/web cp .env.example .env # ARLO_MODEL と provider の鍵を設定 docker compose up --build # http://localhost:3000 を開く
Python 製のプロキシ(arlo-slack)が Slack の Socket Mode websocket を保持し、スレッドを AG-UI 経由で arlo --serve に再生して、応答を Slack にストリーミングで返します。会話の保存先は Slack 自体 —— データベースもホストのマウントも不要です。
Slack ⇄ slack-proxy ⇄ arlo(websocket / HTTP + SSE)
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 モードは承認プロンプトなしでツールを実行します。どちらのインテグレーションもコンテナ化された構成です —— 使い捨てコンテナ、ホストマウントなし、read-only な rootfs、tmpfs のワークスペース、メモリと pid の制限。Arlo のポートを直接公開せず、必ずプロキシ経由でアクセスしてください。