Arlo는 Rust로 만든 오픈소스 agentic AI 프레임워크입니다. Claude Code 같은 도구가 제공하는 기능을 더 가볍고 범용적으로 다시 만든 것이라고 보면 됩니다. 도구 호출, Human-in-the-Loop(HITL) 권한 제어, 서브 에이전트, MCP 연동, Agent Skills를 갖춘 스트리밍 실행 루프를 대화형 TUI, 원샷 CLI, 임베더블 라이브러리로 제공합니다.
stable 버전 Rust가 필요합니다. rustup으로 설치하세요.
# 클론 후 빌드
git clone https://github.com/kaija/arlo.git
cd arlo
cargo build --release
# 사용할 프로바이더 인증 정보 설정 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로 외부 도구 서버에 연결해, 내장 파일 · 셸 · 웹 도구와 함께 사용할 수 있습니다.
.arlo/skills/(프로젝트)와 ~/.arlo/skills/(사용자)에서 Markdown으로 정의된 스킬을 찾아 불러오며, 템플릿 변수 치환도 지원합니다.
4단계 권한 엔진 — glob 패턴, 정적 allow/deny 목록, 대화형 승인 프롬프트 — 으로 모든 도구 호출을 사용자가 통제합니다.
내장 Task/Todo 저장소를 제공하며, 독립된 히스토리를 가진 포그라운드 · 백그라운드 서브 에이전트를 띄울 수 있습니다. 결과는 정확히 한 번만 전달됩니다.
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 (포트 3000) → Arlo (내부 :8080)
cd integration/web cp .env.example .env # ARLO_MODEL과 프로바이더 키 설정 docker compose up --build # http://localhost:3000 열기
Python 프록시(arlo-slack)가 Slack Socket Mode 웹소켓을 유지하면서 스레드를 AG-UI로 arlo --serve에 재생하고, 응답을 다시 Slack으로 스트리밍합니다. 대화 저장소는 Slack 자체입니다 — 데이터베이스도, 호스트 마운트도 없습니다.
Slack ⇄ slack-proxy ⇄ arlo (웹소켓 / 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 모드는 승인 프롬프트 없이 도구를 실행합니다. 두 연동 모두 컨테이너 기반 배포를 사용합니다 — 일회용 컨테이너, 호스트 마운트 없음, 읽기 전용 rootfs, tmpfs 작업 공간, 메모리 및 pid 제한. Arlo 포트를 직접 노출하지 말고 항상 프록시를 거치세요.