AgenticOS: 팀 전체가 개선할 수 있는 자체 호스팅 AI 에이전트
요약
AgenticOS는 기업용 AI 에이전트를 위한 오픈 소스, 자체 호스팅 플랫폼입니다. 이 시스템은 기존 프레임워크의 한계를 극복하여, 개발자가 기능(capabilities)을 추가하고 실제 업무 지식이 있는 사용자가 브라우저에서 지침과 문서를 관리하며 팀 전체가 함께 개선할 수 있도록 설계되었습니다.
핵심 포인트
- 자체 호스팅 플랫폼으로 기업 데이터 통제권을 확보합니다.
- 개발자와 도메인 전문가의 역할을 분리하여 에이전트 구축을 용이하게 합니다.
- 브라우저 기반 인터페이스를 통해 누구나 쉽게 에이전트를 만들고 개선할 수 있습니다.
AgenticOS: 팀 전체가 개선할 수 있는 자체 호스팅 AI 에이전트
Vstorm AgenticOS는 기업용 AI 에이전트를 위한 오픈 소스, 자체 호스팅 플랫폼입니다. 이 플랫폼을 사용하면 브라우저에서 자신만의 AI 에이전트를 구축하고, 회사 문서를 접근하게 하며, 사용할 도구를 선택할 수 있으며, 모든 것이 사용자가 통제하는 인프라 위에서 작동합니다. 이번 주에는 새로운 README와 실제 제품 화면을 기반으로 제작된 두 개의 프레젠테이션 자료가 추가되었으며, 이 글은 그 내용을 더 길게 풀어쓴 버전입니다.
저는 Vstorm의 Principal Engineer이자 오픈 소스 기술 리드이며 AgenticOS를 구축한 사람입니다. 따라서 이 글은 리뷰라기보다는 유지보수자(maintainer)의 입장에서 읽어주시면 됩니다. 본 기사는 AI 도움을 받아 작성되었으며, 여기에 언급된 모든 제품 사실은 릴리스 v0.0.516 또는 이번 주에 배포되는 README 풀 리퀘스트를 기반으로 확인되었습니다.
이 프로젝트가 해결하려는 문제점
대부분의 에이전트 프레임워크는 라이브러리를 제공합니다. 사용자는 Python 코드를 작성하고, 이를 배포하며, 에이전트 행동에 대한 모든 변경 사항은 풀 리퀘스트(pull request)와 리뷰, 그리고 릴리스 과정을 거쳐야 합니다. 이는 제품 기능 측면에서는 적절한 형태일 수 있습니다. 하지만 기업이 실제로 원하는 다수의 소규모 에이전트에게는 부적합합니다. AgenticOS의 문서에는 그 이유가 한 문장으로 요약되어 있습니다: '에이전트가 무엇을 말해야 하는지 아는 사람'과 '커밋 접근 권한을 가진 사람'은 서로 다른 사람입니다.
그래서 AgenticOS는 이 경계를 따라 작업을 분리합니다. 엔지니어들은 타입 지정된 Python 코드로 기능(capabilities)을 추가하고, 업무 내용을 가장 잘 아는 사람들이 브라우저에서 지침(instructions)을 작성하고 문서를 업로드하며 절차를 유지 관리합니다. 동료들은 웹 채팅, Slack, Mattermost 또는 Telegram 같은 곳에서 게시된 에이전트를 사용하고, 개발자들은 API를 통해 이를 호출합니다.
README에 적힌 약속은 이 내용을 간결하게 요약한 것입니다: 팀 전체가 사용할 수 있고 개선할 수 있는 AI 에이전트입니다.
이번 주 새로워진 점과 그렇지 않은 점
0.1.0 버전은 없습니다. AgenticOS는 여전히 0.0.x 버전에 머물러 있습니다. 공개 이력은 2026년 7월 28일에 시작되었으며, v0.0.1부터 v0.0.516까지의 릴리스가 8월 2일부터 10월 1일 사이에 이루어졌습니다. 인터페이스는 아직 초기 단계라고 생각해주십시오.
바뀐 것은 프로젝트가 자신을 설명하는 방식입니다:
- README는 이제 AgenticOS가 무엇이며 누구를 위한 것인지로 시작하고, 사용자가 무엇을 할 수 있는지, 오늘 배포된 기능은 무엇이고 어디까지 가능한지 설명합니다.
- 짧은 소개 자료(출시 당시 14 슬라이드)에는 문제점, 아이디어, 제품, 제어 장치 및 한계점, 그리고 시작 방법에 대한 내용이 포함되어 있습니다. 더 긴 제품 투어(출시 당시 44 슬라이드)는 모든 화면을 상세히 안내합니다.
- README와 소개 자료에는 오늘 기능의 한계가 명시된 목록이 포함되어 있습니다. 평가에 가장 중요한 부분은 이 문서의 끝부분에 있습니다.
브라우저에서 에이전트 구축하기
에이전트는 지침(instructions), 모델, 그리고 일련의 도구(tools)로 시작합니다. 사용자는 빌더에서 이들을 선택하고 버전을 게시한 다음 채팅에서 테스트할 수 있습니다. 이전 버전들은 읽을 수 있게 유지되며 롤백(roll back)도 가능합니다.
에이전트 옆에는 세 가지 종류의 회사 지식이 존재합니다:
- **스킬(Skills)**은 코드를 검토하거나 보고서를 작성하는 방법과 같은 재사용 가능한 절차입니다. 한 번 유지하면 여러 에이전트에 연결할 수 있습니다.
- **컨텍스트(Context)**는 용어집이나 정책과 같은 상시 지식입니다. 에이전트는 프롬프트에서 이를 얻거나 필요할 때 읽습니다.
- **지식 기반(Knowledge bases)**은 업로드된 문서를 검색 가능하게 만들어, 답변이 사용자의 파일에서 나올 수 있고 어떤 구절을 인용했는지 명시할 수 있게 합니다.
컨테이너 샌드박스(container sandbox)가 구성되고 명령어 실행(command execution)이 활성화되면, 에이전트는 파일을 읽고 편집하고, 셸 명령어(shell commands)를 실행하며, Python 또는 JavaScript를 실행할 수도 있습니다. Claude Code나 Codex를 사용해 본 적이 있다면 이 부분이 익숙하게 느껴질 것입니다. AgenticOS가 추가하는 것은 그 주변의 공유 작업 공간입니다: 회사 지식, 게시된 에이전트, 그리고 조직 접근 제어(organisation access controls) 기능입니다. 어떤 에이전트가 달성하는 성과는 여전히 해당 모델, 도구, 그리고 지침에 달려 있습니다.
읽는 것보다 보는 것을 선호하신다면, README에 10월 1일의 실행을 담은 37초 분량의 녹화본이 있습니다. 이 영상에서는 에이전트가 Notion에서 브리프를 읽고, 저희 GitHub 저장소를 조사한 다음, 출처와 함께 인터랙티브 페이지를 게시하는 과정을 보여줍니다. 이 녹화본은 대기 시간을 편집하여 제외했으며, 자체 프로젝트에서 실행되므로 고객 사례라기보다는 통합 예시입니다.
IT 또는 보안 검토자가 물어볼 세 가지 통제 사항
에이전트를 전체 팀 앞에 배치하게 되면, 사람들이 기능에 대해 묻기도 전에 세 가지 질문을 던지게 됩니다. 무엇을 사용할 수 있는가? 요청 없이 무엇을 할 수 있는가? 어제는 무슨 일이 있었나?
모든 모델 요청 전에 예산이 확인됩니다
각 에이전트는 월별 예산을 가질 수 있으며, 새로운 조직은 기본적으로 100달러의 예산으로 시작합니다. AgenticOS는 각 모델 요청마다 사후가 아닌 사전에 이 두 가지를 모두 확인합니다. 문서에서 그 이유를 설명하는데, 나중에 확인한다는 것은 이미 예산을 초과한 요청에 대한 비용이 지불되었다는 의미이기 때문입니다.
신뢰하기 전에 알아둘 만한 제한 사항이 있습니다. 실행 비용은 해당 실행이 완료될 때 기록에 남기 때문에, 함께 시작하는 여러 실행들은 서로의 비용을 볼 수 없습니다. 전체 한도액보다 호출 횟수가 하나 부족한 상태에서 병렬로 50개의 실행을 진행할 경우, 각 실행은 동일한 미달성 총합계를 읽고 최대 결합된 비용만큼 초과하여 계산할 수 있습니다. 엄격한 제한이 필요하다면 해당 에이전트들을 하나의 대기열(queue)을 통해 실행하세요.
민감한 도구는 사람의 승인을 기다립니다
외부 세계에 작용하는 도구는 실행을 일시 중지하고 기다립니다. 사람이 호출(call)을 보고 승인하거나 거부하며, 그 결정은 누가 요청했고 누가 결정했는지와 함께 기록됩니다. 이 설정은 도구별 또는 기능별로 지정할 수 있습니다. 스크린샷에서는 동일한 테스트 계정이 요청하고 결정했습니다. 승인 결정을 내릴 권한은 별도로 존재하며, 내장된 Operator 역할이 이를 보유하지만 에이전트를 수정할 수는 없습니다.
여기서의 제한은 커버리지(coverage) 문제입니다. 이 게이트는 플랫폼 자체의 기능 도구에 적용됩니다. MCP 서버(Model Context Protocol, 에이전트를 외부 도구에 연결하기 위한 개방형 표준)에서 오는 도구들은 웹 채팅 세션이 **모든 것 문의(Ask about everything)**로 설정된 경우에만 통과하며, 모델 제공자 내부에서 실행되는 도구는 로컬 게이트에 절대 도달하지 않습니다. 실제로 활성화하는 도구들의 승인 정책을 테스트해 보세요.
모든 실행 기록됨
모든 실행은 에이전트 버전, 호출된 도구, 토큰 및 비용과 함께 실행 기록(run history)에 남습니다. 버전이 기록되기 때문에, 지난주에 발생한 실행이라도 누군가 에이전트를 재작성했더라도 여전히 의미를 가집니다.
거버넌스 작업들은 별도의 감사 로그(audit log)로 들어갑니다: 승인 결정, 공유 및 멤버십 변경, 비밀값 로테이션(secret rotation), 내보내기(exports) 등. 각 항목은 조직별로 이전 항목의 해시를 포함하여 자체 내용에 대한 해시를 지니고 있으므로, 항목을 수정하거나, 순서를 바꾸거나, 삽입하거나, 삭제하면 체인 검증 시 나타납니다. 이것은 감지(detection)이지 예방(prevention)이 아닙니다. 데이터베이스 자체의 자격 증명을 가진 사람이 행(row)을 재작성하고 체인을 다시 계산하는 것에 대해서는 보호하지 못합니다. 그리고 모든 쓰기 작업이 감사되는 것은 아닙니다. 예를 들어, 지식 기반(Knowledge-base) 편집은 그렇지 않습니다.
개발자를 위한 내용: 코드가 정의하고, 설정이 구성한다
AgenticOS는 Pydantic 팀의 Python 에이전트 프레임워크인 Pydantic AI와, 계획(planning) 및 도구 출력 제한과 같은 Pydantic AI 에이전트를 위한 준비된 기능 세트인 pydantic-ai-harness를 기반으로 구축되었습니다. 백엔드는 FastAPI와 PostgreSQL(문서 검색을 위한 pgvector), Redis 및 배치/예정 작업 처리를 위한 Prefect로 구성되었으며, 콘솔은 Next.js입니다.
내장 기능은 엔지니어가 작성하고 테스트하며 등록하는 타입 지정 Python 코드입니다. 콘솔은 등록된 코드가 활성화할 수 있는 것만 가능하며, 문서는 이를 "코드가 정의하고 설정이 구성한다(code defines, configuration composes)"라고 부릅니다. 이것이 에이전트의 지침을 소유한 사람이 릴리스 없이 변경할 수 있게 해주는 경계입니다.
MCP 서버는 예외이며, 팀을 위한 플랫폼을 선택하기 전에 알아둘 가치가 있습니다. 빌더(Builder) 또는 관리자(admin)가 URL을 붙여넣기만 하면 코드 변경 없이 연결할 수 있으며, 이들의 도구는 채팅이 모든 것에 대해 질문하지 않는 한 위에서 설명한 승인 게이트 밖에 위치합니다. 이것을 염두에 두고 누가 빌더 역할을 맡을지 결정하세요.
직접 실행하기
빠른 시작은 macOS, Linux 또는 Windows의 WSL2 환경에서 설치 스크립트를 통한 Docker Compose 배포입니다. 아무것도 설치하지 않고 전제 조건 테스트를 위해 먼저 --check 옵션으로 실행하거나, 스크립트를 읽거나, 수동 설치 가이드를 따를 수 있습니다. 모델에 대한 접근 권한이 필요합니다: 호스팅 제공업체(hosted provider)이거나, Ollama 또는 vLLM과 같은 OpenAI와 호환되는 서버를 통한 로컬 모델입니다. 이 두 가지 모두 오픈 웨이트 모델을 자체 하드웨어에서 제공합니다.
콘솔을 직접 호스팅한다고 해서 모든 것이 로컬이 되는 것은 아닙니다. 호스팅된 모델, 클라우드 문서 파서 또는 외부 도구는 여전히 사용자가 전송하는 데이터를 받기 때문에, 구성하는 목적지를 검토해야 합니다.
저장소에서 셀프호스터가 기능 목록보다 더 유용하다고 느낄 두 가지 사항은 다음과 같습니다:
첫 번째 병목 현상은 CPU가 아니라 데이터베이스 풀(database pool)이었습니다. 9월 16일에 우리는 노트북 한 대로 부하 테스트를 진행했습니다. 워커 하나, 유료 제공업체 대신 더미 모델을 사용했고, 램프를 거쳐 총 4,740개의 요청을 처리했으며, 지속적인 속도, 버스트(burst), 복구 단계를 포함했습니다. 기본 풀 크기 5개에 오버플로우 10개를 추가했을 때는 1,537개의 요청이 실패했습니다. 이를 20개와 30개로 늘렸을 때는 13개만 실패했습니다. 두 실행 모두에서 CPU는 코어 하나당 약 90%까지 최고치를 기록했습니다. 현재 배포된 기본값은 여전히 5에 10이므로, 병렬 부하를 예상한다면 DB_POOL_SIZE와 DB_MAX_OVERFLOW 값을 먼저 높여야 합니다. 이것은 단일 머신과 더미 모델을 사용한 요청 속도이지 사용자 수가 아니기 때문에, 실제 운영 환경에서 처리할 수 있는 용량을 나타내는 것이 아니라 첫 번째 한계점(wall)이 어디인지를 보여줍니다.
HIPAA 구성 프로필(configuration profile)이 존재하지만, 이것은 인증서가 아닙니다. 이 프로필은 45 CFR §164.312의 기술적 보호 조치만을 다루며 그 외에는 아무것도 포함하지 않습니다: Postgres, Redis 및 브라우저에 대한 TLS, 긴 볼트 키(vault key), 로컬 모델, 로컬 추적 기록(local traces), 싱글 사인온(Single Sign-On) (OIDC 또는 Kerberos), 초대 전용 또는 폐쇄형 회원가입, 6년간의 감사 보존 기간 및 감사 체인입니다. doctor 명령은 이 프로필을 확인하고 무언가가 누락되면 0이 아닌 값으로 종료됩니다. 관리적 및 물리적 보호 조치, 저장된 콘텐츠 암호화(encryption of content at rest), 그리고 모든 비즈니스 협력사 계약(business associate agreement)은 운영자의 임무로 남아 있으며, 이 프로필도 그렇게 명시하고 있습니다.
아직 하지 않는 것들 (What it does not do yet)
이것은 평가를 위한 간략한 목록입니다:
아직 구현하지 않은 기능 (What it does not do yet)
이것은 평가를 위한 간략한 목록입니다:
- ACL 미미러링(ACL mirroring) 불가. SharePoint나 Google Drive의 권한을 사용자별로 지식 기반에 복사하지는 않습니다. 자격 증명 범위를 지정하고 적절한 그룹과 컬렉션을 공유해야 합니다.
- SAML, SCIM, 네이티브 MFA 미지원. OIDC, LDAP, Kerberos 로그인은 작동합니다. SAML 전용 ID 공급자(identity provider)의 경우 Keycloak 같은 브로커를 통해 연결할 수 있으며, 다단계 인증(multi-factor authentication, MFA)은 사용자의 ID 공급자가 담당해야 합니다.
- Kubernetes 매니페스트 미지원. 현재는 단일 호스트에서 Docker Compose 방식으로 작동합니다.
- 재순위화기(reranker) 미지원. 검색은 옵션이 있는 벡터 검색으로 이루어집니다.
- 시각적 워크플로우 빌더 부재. 개발 중이며 어떤 릴리스에도 포함되어 있지 않습니다.
- 앞서 설명했듯이, 병렬 실행 시 예산 초과가 발생할 수 있습니다.
README와 데크에는 Microsoft 365 내장 트리거 미지원 등 몇 가지 항목이 더 추가되어 있습니다.
사용해 보기 (Try it)
전체적인 형태를 파악하고 싶다면 소개 데크부터 시작하세요: https://vstorm-co.github.io/agenticos/presentation/
모든 화면에 대한 자세한 내용은 제품 투어에서 확인할 수 있습니다: https://vstorm-co.github.io/agenticos/presentation/tour/
그다음으로 빠른 시작과 문서 어시스턴트 워크스루가 있습니다. 이 기능은 핸드북을 업로드하고, 질문을 던지며, 인용된 출처와 답변을 비교합니다: https://github.com/vstorm-co/agenticos
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

