omnara-ai/omnara
The open-source managed agent platform. A self-hostable alternative to Claude Managed Agents and OpenAI's Agents API.
Omnara – 오픈소스 관리형 에이전트 플랫폼
개요 – Omnira는 모든 모델과 모든 머신에서 AI 에이전트(LLM 기반 봇)를 실행할 수 있는 자체 호스팅 플랫폼입니다. 에이전트 실행, 이벤트 스트리밍, 승인 처리를 위한 REST API, TypeScript SDK, CLI를 제공합니다. Claude Managed Agents나 OpenAI의 Agents API의 오픈소스 대안으로 생각하면 되며, 자체 인프라에서 실행하고 원하는 모델을 선택할 수 있습니다.
핵심 개념
| 개념 | 역할 |
|---|---|
| 에이전트 | agent.yaml로 정의됩니다 (모델, 도구, 머신 풀, 메모리 등). 플랫폼이 에이전트 루프를 실행합니다: 프롬프트 생성 → 모델 호출 → 도구 실행 → 상태 저장. |
| 머신 | 원격 런타임 (노트북, VM, 컨테이너 또는 샌드박스 제공자). 각각 omnarad 데몬을 실행하여 에이전트가 인바운드 포트를 열지 않고도 셸 명령, 파일 편집 등을 수행할 수 있습니다. |
| 도구 및 스킬 | 기본 제공 도구(셸, 파일 I/O, 웹 검색, 사람에게 묻기)와 커스텀 도구, 재사용 가능한 스킬(번들된 지침/파일)을 포함합니다. |
| 메모리 저장소 | 에이전트가 대화 간에 읽고 쓸 수 있는 영구 파일 유사 저장소로, 에이전트 간 공유도 선택 가능합니다. |
| 하위 에이전트 | 에이전트가 새 컨텍스트의 하위 에이전트를 생성하고 진행 상황을 모니터링하며 결과를 전달할 수 있습니다. |
| 통합 | Slack, Discord, GitHub, 웹훅, 스트리밍 이벤트 및 동일한 공개 API를 통한 커스텀 통합을 지원합니다. |
| 권한 및 RBAC | 어떤 도구를 실행하고, 데이터를 보거나, 작업을 승인할 수 있는 사용자에 대한 세밀한 제어를 제공합니다. |
작동 방식 (고수준 아키텍처)
- API – 앱, CLI 또는 대시보드가 중앙 HTTP API(OpenAPI 사양 제공)와 통신합니다. 에이전트 실행, 메시지 전송, 이벤트 스트리밍을 처리합니다.
- Postgres – 모든 에이전트의 모든 단계가 여기에 기록되어 지속적인 상태를 제공합니다. 작업자는 충돌 후 에이전트를 재개할 수 있습니다.
- 작업자 – 에이전트 루프를 실행하는 무상태 프로세스입니다. 하나의 작업자가 많은 에이전트를 처리할 수 있으며, 수평 확장이 가능합니다.
- 머신 – 보안 아웃바운드 연결을 노출하는 원격 데몬(
omnarad)으로, 에이전트가 macOS/Linux 호스트나 샌드박스 제공자(Arker, Modal 등)에서 명령을 실행할 수 있게 합니다. - Redis 및 Blob 저장소 – 큐, 임시 데이터, 첨부 파일/도구 출력을 저장하는 데 사용됩니다.
시작하기
1. Omnira Cloud 체험 (설치 불필요)
# 예제 구성 저장
cat > agent.yaml <<'EOF'
version: v1
instruction: |
You are an engineering assistant. Use your machine to run commands.
model:
provider_config: omnara-openrouter
name: anthropic/claude-fable-5.1
machine_sources:
- machine_pool_name: default-pool
EOF
# CLI로 실행 (Node 22+)
npx omnira agents launch --file agent.yaml \
--name "Machine assistant" \
--message "Report this machine's operating system and free disk space."
필요하면 CLI가 브라우저를 열어 로그인을 진행합니다.
2. 자체 호스팅 (Docker Compose)
git clone https://github.com/omnira-ai/omnira.git
cd omnira
docker compose -f compose.yaml --profile app up -d # API, 작업자, DB 등 시작
http://localhost:8000을 열고 가입하세요 (인증 링크는 컨테이너 로그에 표시됩니다).- 웹 UI에서 모델 제공자, 모델, 머신을 추가하세요.
- CLI를 인스턴스에 연결하세요:
npx omnira config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000
npx omnira login
- 동일한
agent.yaml을 사용하고 (machine_pool_name을 머신 이름으로 교체) 위와 같이 실행하세요.
주요 기능
- 모델 무관 – OpenAI, Anthropic, OpenRouter, LiteLLM, Ollama 또는 호환되는 모든 엔드포인트를 지원합니다.
- 도구 생태계 – 기본 제공 셸, 파일, 웹 검색, 사람에게 묻기 도구, MCP 서버, 커스텀 웹훅 도구를 포함합니다.
- 스킬 – 에이전트가 필요 시 로드할 수 있는 재사용 가능한 지침/파일 번들입니다.
- 지속 상태 – 모든 턴이 Postgres에 저장되어 에이전트가 크래시나 머신 손실에서도 생존합니다.
- 멀티 테넌트 – 하나의 배포로 여러 조직을 호스팅할 수 있으며, 각각 고유의 비밀, 모델, 머신을 가집니다.
- 스케줄링 – Cron 스타일 트리거로 에이전트에 메시지를 보내거나, 새 에이전트를 실행하거나, Slack/Discord 스레드를 시작할 수 있습니다.
- 권한 – 도구 실행 전에 승인이 필요하도록 설정할 수 있으며, 플랫폼이 이러한 규칙을 강제합니다.
- 스트리밍 및 웹훅 – 통합을 위한 실시간 이벤트 스트림 또는 웹훅 콜백을 제공합니다.
예제 사용 사례 (examples/에 제공)
- 코딩 어시스턴트 – Slack/Discord/GitHub PR의 버그를 수정하고 새 PR을 엽니다.
- SRE 봇 – 5xx 급증을 진단하고 로그를 조회하며 해결 방안을 제안합니다.
- 브라우저 자동화 – 장기 실행 웹 작업을 위해 실제 브라우저를 구동합니다.
- 소셜 미디어 신호 에이전트 – 주제에 대한 지난 24시간의 Reddit, X, LinkedIn 게시물을 요약합니다.
- 비디오 생성 – 텍스트 브리프에서 짧은 비디오를 만듭니다.
- 커스텀 CLI 채팅 앱 – TypeScript SDK 기반의 간단한 터미널 UI입니다.
가격 및 라이선스
- 라이선스 – Apache 2.0 (무료, 허용적).
- 자체 호스팅 – 플랫폼 수수료 없음; 사용하는 모델과 샌드박스 리소스 비용만 지불합니다.
- Omnira Cloud – 자체 키/머신을 가져오면 무료 티어 제공; 호스팅 모델과 샌드박스 시간은 종량제입니다.
커뮤니티 및 기여
- Discord – https://discord.gg/Dc46sYk6e3
- 이슈 및 PR – GitHub 저장소.
- 기여 – Go(
go.mod에 명시), Node 24+, ripgrep, Docker Compose가 필요합니다. 빠른 검사는make verify를 실행하고, 전체 지침은CONTRIBUTING.md에 있습니다.
요약: Omnira는 모든 모델과 모든 컴퓨팅 환경에서 상태 저장, 도구 지원 LLM 에이전트를 규모에 맞게 실행할 수 있는 배관을 제공하며, 모든 데이터를 사용자 통제 하에 유지합니다. 관리형 에이전트 서비스의 유연성을 원하면서 단일 벤더의 클라우드에 종속되지 않으려는 경우에 이상적입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트