로컬 오퍼레이터(Local Operator): 협업 에이전트 조직을 구축하는 오픈 소스 AI 에이전트 허브
요약
Local Operator는 사용자의 장치에서 24시간 구동되는 오픈 소스 AI 에이전트 허브입니다. 이 시스템은 역할(Roles), 팀(Teams) 구조를 통해 여러 에이전트를 조직화하고, ChatGPT, Claude 등 다양한 구독형 LLM을 통합하여 부하 분산 및 토큰 효율성을 최적화합니다. 사용자는 터미널 UI에서 에이전트 간의 협업과 메시징 기능을 직관적으로 관리할 수 있습니다.
핵심 포인트
- 다양한 AI 모델(ChatGPT, Claude 등)을 통합하고 로드 밸런싱하여 사용 가능.
- 에이전트를 역할(Roles) 및 팀(Teams)으로 조직화하여 복잡한 협업 구조 구축.
- 터미널 UI(TUI) 기반에서 에이전트 간의 메시징과 워크플로우를 관리할 수 있음.
- 세션 종료 후에도 백그라운드 작업이 지속되어 '항상 작동'하는 기능 제공.
![]()
로컬 오퍼레이터: 여러분의 장치에서 24시간 구동되는, 협력하는 에이전트들로 구성된 오픈 소스 AI 에이전트 허브
이미 사용하고 있는 모든 AI 구독을 활용하여, 역할(Roles), 팀(Teams), 그리고 에이전트 간 메시징 기능을 빠르고 직관적인 터미널 UI 위에서 구현합니다.
공유 플랜이 업데이트되는 동안, 백그라운드에서 실행되는 세 개의 워커가 각각의 역할, 예산, 진행 상황을 가지고 관리자 세션(manager session)을 보여줍니다.
Local Operator는 에이전트 조직을 위한 하네스(harness): 이들을 호스팅하고, 감독하며, 연결하는 런타임입니다. 단일 세션이 자체 작업을 계획하고, 도구를 사용하며, 웹 브라우징을 하고, 수행했던 내용을 기억합니다. 여기에 팀을 부여하면, 이는 도구에 제한된 워커들에게 위임하고, 다른 저장소(repos)의 형제 세션들(sibling sessions)에게 메시지를 보내며, 자체 후속 작업을 예약하고, 심지어 터미널을 닫은 후에도 그 후속 작업들을 다시 재개하는 관리자가 됩니다. 모든 것이 여러분의 장치에서 실행되며, 기록하거나 실행하기 전에 질문하고, MIT 라이선스를 따릅니다. 이미 가지고 있는 ChatGPT, Claude, Kimi, Grok, Z.AI, Qwen 등 모든 로그인 정보를 모아서(pooled), 부하 분산(load-balanced)하며, 프롬프트 캐시를 염두에 두고 사용합니다.
- ✨ Local Operator의 장점
- 🚀 빠른 시작 가이드 (Quickstart)
- 🪟 데스크톱 앱 (local-operator-ui)
- 🏢 에이전트 조직(Agent Organizations)
- 🔁 에이전트 간 통신(Cross-Agent Communication)
- 🛰️ 에이전트 메시(Agent Mesh) (사용자 장치)
- 🌙 항상 작동(Always On)
- 💳 구독 서비스(Subscriptions)
- 🧮 토큰 및 캐시 효율성 최적화
- 🖥️ 터미널 UI(TUI) 둘러보기
- 🔌 제공업체 (Providers)
- 🧰 에이전트가 할 수 있는 일
- ⚙️ 헤드리스 및 서버 모드
- 📱 휴대폰 접속 (Mobile Relay)
- 🌐 자체 브라우저 구동 (Browser Extension)
- 📦 설치 옵션
- 🔧 설정 및 자격 증명(Configuration & Credentials)
- 🌟 Radient: 자동 모델 선택 및 에이전트 공유
- 🔒 안전성 모델 (Safety Model)
- 📝 예시
- 👥 기여하기 (Contributing)
- 🙏 크레딧 및 감사 표시
- 📜 라이선스
강제된 역할을 가진 에이전트 조직. 역할(Roles)은 역량 경계입니다 (예: reviewer)
검토하는 내용을 수정할 도구를 잃거나), 전문가는 자체적인 표준 지침을 가지고 있으며, 팀은 (관리자 및 멤버로 구성된) 저장된 명단이며 두 가지 짧은 개요를 가집니다. 그룹이 어떻게 협력하는지 그리고 어떤 제품을 소유하고 있는지에 대한 것입니다. 한 개요를 교체하여 동일한 명단을 다른 제품에서 재사용할 수 있습니다. 중첩 팀은 오늘 차트에 표시되며, 관리자가 중첩된 팀의 관리자에게 위임하는 기능이 곧 도입될 예정입니다.**서로 대화하는 에이전트들.**관리자는 hub을 통해 자신의 워커들을 엿보고, 질문하고, 방향을 제시하며, 일시 정지시키고, 재개할 수 있습니다.; 독립적인 세션에서 다른 리포지토리와 메시지를 주고받으며 send를 사용합니다. 메모를 남길지, 유휴 상태의 동료를 깨울지, 또는 턴 도중에 한 명을 재지정할지 선택합니다. 루프백 전용이며, 사용자 OS 계정에만 적용됩니다.**항상 작동함.** 워크는 터미널이 닫힌 후에도 지속되며 스케줄에 따라 실행됩니다. 긴 명령어와 서브 에이전트는 백그라운드 작업으로 실행되어 세션이 유휴 상태일 때 그 결과가 자동으로 전달됩니다. lop exec --background는 전체 작업을 분리하고, 일시 중지된 워커는 프로세스 재시작 후 다시 시작하며, 모바일 데몬은 모든 세션을 휴대폰에서 접근 가능하게 유지합니다.**이미 지불하는 모든 구독.** 기존에 가지고 있는 계정으로 ChatGPT, Claude, Kimi, Grok, Z.AI, Qwen에 로그인하세요. Claude나 ChatGPT 계정이 두 개 있나요? 이들은 통합됩니다. 새로운 세션은 할당량이 가장 많이 남은 계정에서 시작하고, 속도 제한이 요청을 다른 계정으로 이동시키며, 두 계정이 모두 소진될 때만 목록에 있는 다음 모델로 폴백합니다.**더 저렴한 장시간 세션.** 프롬프트가 설계되어 제공업체의 프롬프트 캐시가 턴마다 계속 히트하게 합니다. 오래된 도구 출력은 캐시를 무효화하지 않고도 정리되며, 큰 컨텍스트는 자동으로 더 긴 Anthropic 캐시 창을 얻고, 스킬과 MCP 도구는 사용될 때만 로드되며, 에이전트는 폴링하는 대신 이벤트를 기다립니다. 그 결과: 장시간 세션은 몇 분마다 히스토리를 다시 지불하지 않습니다.**기본적으로 승인 게이트 적용.** 읽기는 실행되고, 쓰기 및 셸 명령어는 정확한 명령을 보여주고 질문합니다. 이를 비활성화하려면 명시적인 조치가 필요합니다: /approvals auto또는--yolo`
. 모든 도구 호출은 대화 기록에 보이는 영수증을 남깁니다.터미널 너머까지 도달하세요. 휴대폰에서 세션을 모니터링하고 제어하며, 이미 사용 중인 Chromium 브라우저를 여러분의 실제 로그인으로 공개된 브라우저 확장 프로그램을 통해 구동할 수 있습니다. 데스크톱 앱은 동일한 세션을 브라우저 창, 파일 캔버스, 그리고 — 곧 제공될 — 터미널을 갖춘 데스크톱 창에 배치합니다.
Python 3.12 이상과 다음 중 하나를 준비하세요: 프로바이더 로그인(ID는 구독 테이블 참조), API 키 또는 로컬 모델 서버.
pip install local-operator # Python이 외부에서 관리되는 시스템(Debian/Ubuntu, Homebrew)에서는 pipx install local-operator 사용
lop login anthropic # 브라우저를 열고; 요청 시 코드를 다시 붙여넣으세요. `lop login`은 프로바이더 목록을 보여줍니다.
lop # 시작하고, 원하는 작업을 입력하세요
lop는 설치가 제공하는 짧은 별칭으로, local-operator와 함께 사용됩니다.
; 이 페이지의 나머지 부분에서는 이를 사용합니다. lop login <프로바이더>는 또한 해당 프로바이더를 기본 호스팅으로 설정하고 구성된 모델이 없을 경우 기본 모델을 선택하므로, 바로 다음 lop만 실행하면 작동합니다. 로그인을 건너뛰면 대화형 lop가 설정 상태로 열리며 /login을 통해 안내받습니다.
; 헤드리스(headless) 또는 파이프된(piped) 실행은 호스팅, 모델 및 키를 구성하는 정확한 명령어를 출력합니다.
내부적으로, esc는 에이전트를 중지하고, /help는 명령어 목록을 보여주며, /exit는 종료합니다. 이 리포지토리를 요약하고 테스트되지 않은 항목을 나열하는 것과 같은 것을 시도해 보세요. lop update는 PyPI에서 설치를 업그레이드하고 LaunchAgent가 설치된 경우 모바일 데몬을 재시작합니다.
Local Operator TUI의 메인 뷰: 스플래시 화면, 키 바인딩 힌트, 그리고 첫 번째 프롬프트를 시작하는 컴포저.
로컬 모델을 선호하십니까? 7–14B 모델은 약 10–16 GB의 RAM 또는 VRAM이 필요합니다. LM Studio를 시작하고 채팅 모델을 로드한 다음 개발자(Developer) 탭에서 서버를 활성화하세요. 그런 다음 Local Operator 내부에서 /login lmstudio를 사용하면 엔드포인트와 모델을 선택할 수 있습니다. /login
또한 Ollama, vLLM, llama.cpp 및 범용 OpenAI 호환 서버를 제공합니다. 로컬 프로바이더 가이드를 참조하세요. CLI 형식은 여전히 Ollama에 설치된 모델의 경우 작동합니다:
lop --hosting ollama --model qwen2.5:14b
터미널이 핵심 인터페이스이며, 이 페이지의 나머지 부분에서 이를 설명합니다. 데스크톱 앱은 두 번째 접근 방식입니다. Local Operator UI는 macOS, Windows 및 Linux용 데스크톱 애플리케이션으로, 동일한 세션, 팀, 일정 및 구성을 구동하며 터미널이 구현할 수 없는 인터페이스를 추가합니다.
Invoices 워크스페이스의 데스크톱 앱: 채팅, 에이전트, 팀 및 메쉬가 있는 레일; 스크립트의 도구 영수증 및 스트리밍 작성 내용; 공유 할 일 목록 위에 실행되는 두 개의 서브에이전트; 그리고 초안을 담고 있는 컴포저. 아래의 메쉬와 마찬가지로 픽스처(Fixture) 기반입니다—실제 인터페이스는 앱 자체의 픽스처를 사용하며, 라이브 세션은 아닙니다.
앱이 추가하는 기능:
에이전트가 구동할 수 있는 브라우저. 세션 창 내부에 자체 탭과 주소 표시줄을 가진 Chromium 패널이 존재하며, 에이전트가 페이지에서 작업을 수행하기 전에 승인 프롬프트를 거치므로, 작업이 탐색하는 과정을 지켜볼 수 있습니다.파일 캔버스와 뷰어. 세션이 작업하는 문서는 채팅 옆에 열리며—마크다운(WYSIWYG 편집기 포함), 코드, HTML, 이미지, PDF, 스프레드시트, 오디오 및 비디오—스크립트에 인쇄되는 대신 존재합니다.페이지로서의 동일한 인터페이스. 에이전트, 일정 및 설정은 페이지이며; 팀은 에이전트 페이지의 패널입니다—모두 명령 팔레트에서 접근 가능하며, TUI가 읽는 것과 동일한 구성에, 내장된 테마 갤러리를 갖추고 있습니다.에이전트가 사용할 수 있는 터미널—출시 예정. 실제 터미널 에뮬레이션 기능을 가진 세션별 콘솔(Console) 탭으로, 에이전트가 열고, 읽고(stdout 및 stderr), 시각적으로 캡처하고, 타이핑할 수 있습니다. 이것이 bash만으로는 불가능한 에이전트를 위한 대화형 TUI 및 기타 라이브 터미널이 필요한 명령어의 엔드투엔드 테스트를 가능하게 하는 요소입니다.
이미지가 대화의 일부인 경우: 세션에 붙여넣은 차트와 에이전트가 플로팅하여 작성한 막대 그래프가 그 설명 위에 인라인으로 표시됨.
설치하기 가장 쉬운 방법 — 데스크톱 빌드. 다운로드 페이지에서 사용자의 플랫폼용 설치 파일을 받으세요 (macOS, Windows, Linux이며 시스템 요구 사항은 해당 페이지에 나열되어 있습니다). 이 앱은 자체 백엔드를 번들링하여 첫 실행 시 설치하며, 이미 Local Operator가 설치된 경우 기존 설치를 사용하므로 별도의 lop
설치는 선택 사항입니다.
또는 터미널에서 설치 (Node.js 22.13.1 이상):
npx local-operator-ui # 하나의 명령으로 다운로드하고 실행
npm install -g local-operator-ui # 또는 전역으로 설치
local-operator-ui # ...그런 다음 이름으로 시작합니다
소스, 이슈 및 릴리스 노트는 damianvtran/local-operator-ui에서 확인할 수 있습니다.
세 가지 계층이 있습니다: 서브 에이전트(subagents)는 병렬 워커이며, 역할(roles)은 각 워커가 무엇을 건드릴 수 있는지 결정하고, 팀(team)은 다른 제품에 연결할 수 있는 저장된 명단입니다.
서브 에이전트. 병렬 작업을 요청하면 에이전트는 이를 동시 백그라운드 워커로 분산시키고, 이들이 실행되는 동안 계속 작동합니다. 서브 에이전트 도크(dock)는 각 워커의 상태, 사용량, 진행 상황을 실시간으로 보여주며, 그중 아무거나 열어 트랜스크립트와 플랜을 읽을 수 있습니다 (리더 키 및 제한 사항은 docs/subagent-reader.md에 있습니다).
실행 중인 두 워커가 실행 창에 있음 — 하나는 초안 작성 중이고, 다른 하나는 감사(auditing) 중이며 — 각각의 역할, 경과 시간, 컨텍스트 사용량, 그리고 공유하는 할 일 목록 위에 표시된 사용량이 있음.
역할은 기능적 경계입니다. reviewer로 시작된 서브 에이전트는 검토된 리뷰 가이드라인을 가지고 코드 편집 도구를 사용할 수 없습니다. 테스트를 읽고 실행할 수는 있지만, 자신이 검토하는 것을 변경할 방법은 없습니다. 제한된 역할은 새로운 MCP 도구도 활성화할 수 없으며, 이 제한은 아무리 깊은 곳에 위임하더라도 모든 것에 상속됩니다. reviewer, coder, architect, manager, designer, scout, ux-reviewer, tui-designer, 그리고 copy-reviewer를 위한 패키징된 스타터가 있습니다.
패키지 안에 배포하기(ship in the package):
task(agent=…)
그리고 /team
새로 설치해도 사용할 수 있으며,
agent install
은 하나를 레지스트리에 복사하여 편집할 수 있게 합니다.
lop agents list
는 무엇이 설치되었는지 보여주며, 새로 설치하면 "찾을 에이전트가 없습니다(No agents found)."라고 출력합니다. 또한 자체 에이전트 프로필도 작성할 수 있습니다: 재사용 가능한 역할과 고유한 지침 세트를 가진 명명된 전문가로, 시맨틱 라우팅(semantic routing)을 통해 작업에 매칭됩니다. 프로필이 잘못된 안내를 제공하면, 그것을 사용하는 모든 프롬프트마다 수정하는 대신 프로필 자체만 한 번 수정하면 됩니다.
팀(Teams). 저장된 명단(매니저와 인원 수로 구성)에 두 가지 간략한 설명서가 추가됩니다. 이 개별 에이전트들은 절대로 하드코딩하지 않는 내용입니다: 협업 설명서(이 그룹이 어떻게 함께 작동하는지, 누가 출시를 막는지)와 프로젝트 설명서(이 인스턴스가 어떤 제품을 소유하는지). 프로젝트 설명서를 교체하면 동일한 명단으로 다른 제품에 배치될 수 있습니다. 명단 슬롯은 또 다른 팀(team:<name>)을 지정할 수 있어, 하나의 팀이 여러 팀으로 구성된 조직이 됩니다: /team chart <name>
는 이를 조직도(org chart)로 그립니다.
중첩 구조가 실시간으로 작동합니다: task(agent="team:<name>")
은 해당 하위 팀의 매니저를 시작하며, 이 매니저는 자체 명단과 설명서를 가집니다. lop teams list
는 하나를 생성하기 전까지는 비어 있습니다.
데스크톱 앱의 팀: 명단(매니저와 멤버 및 수)과 두 가지 설명서, 즉 그룹이 어떻게 함께 작동하는지 그리고 무엇을 배포할 것인지입니다.
팀에 요청을 보내는 것은 한 줄이면 됩니다: /team <name> <request>
은 현재 에이전트를 해당 명단의 매니저로 만들고, 이 매니저는 작업을 세분화하고 적절한 역할을 할당합니다. 에이전트와 팀은 CLI에서도 관리할 수 있습니다:
lop agents create "My Agent"
lop agents list
lop teams list
...
두 가지 형태의 대화, 하나의 기계, 중간에 클라우드는 없습니다.
나무 아래로(Down the tree). 세션이 생성하는 모든 작업자는 hub를 통해 주소 지정이 가능합니다:
:peek
은 주의를 기울이지 않고도 전사(transcript)의 마지막 몇 단계를 읽습니다. :ask
는 질문을 제기하고 답변을 기다립니다. :send
는 메모를 남깁니다. :steer
는 경로를 변경합니다. :pause
는 재개 가능하게 유지하면서 중지시키고, :cancel
은 종료하며, :resume
은 다시 시작시킵니다.
정지되거나 일시 중단되었거나 종료된 자식 프로세스에 대해 자체 트랜스크립트를 기반으로 재실행할 수 있습니다. 심지어 부모 프로세스가 다시 시작한 후에도 가능합니다.
세션 간. 사용자가 직접 시작한 두 개의 lop 세션은 서로 다른 리포지토리에서, 그 사이에 부모 프로세스도 없고 공유된 컨텍스트도 없더라도 서로 메시지를 주고받을 수 있습니다. 한 세션이 다른 세션에게 배포를 보류하라고 지시하거나, 완료된 브랜치를 넘겨주거나, 공유 자원을 확보하도록 요청할 수 있으며, 사용자가 터미널 간에 전달해 줄 필요가 없습니다.
두 독립적인 세션이 공유 배포 슬롯을 협상하는 상황. 한쪽이 이를 주장하고 이의 제기를 요청하면, 다른 쪽은 자체 진행 중인 작업을 확인하고 정리합니다. 인간 개입 없음.
lop sessions는 기계상의 모든 세션 디렉토리입니다: 상태(state), PID, 종류(kind), 대화 내용(conversation), 모델, 메모리 사용량(memory footprint), 가동 시간(uptime), 그리고 하트비트 나이(heartbeat age)를 보여줍니다 (--json은 cwd와 session_id를 추가합니다). 셸에서는 lop send를 사용하고; 세션 내부에서는 에이전트가 자체의 send를 사용합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기