2026년 10월 31일 (토)

PINKSKY NEWS

매일의 기록을 뉴스처럼

테크

제3자 개입 없이 오픈소스 에이전트 플랫폼 구동하기: 각 구성 요소의 요건(Ollama/vLLM, 로컬 임베딩, 로컬 OCR)

원문 제목 — Running an open-source agent platform with no third party in the chain: what each piece needs (Ollama/vLLM, local embeddings, local OCR)

📄 전문 번역

먼저 밝히자면 필자는 Vstorm에서 근무하며 브라우저에서 AI 에이전트를 구축하기 위한 오픈소스(Apache-2.0) 셀프호스팅 플랫폼 AgenticOS를 개발하고 있다. 이 글은 LLM의 도움으로 초안을 작성하고 필자가 편집했다. 네트워크 밖으로 아무것도 나가지 않는 상태에서 전체 시스템을 로컬 모델로 구동할 수 있을까? 가능하지만 셀프호스팅만으로는 그 지점에 도달하지 못하며, 각 구성 요소는 각자 별도의 선택 사항이다.

완전 로컬 구성에 필요한 요소는 다음과 같다. 챗 모델은 키 없이 자체 호스팅 엔드포인트를 가리키는 Ollama 프로필이나 로컬 모델로만 전달하는 자체 호스팅 LiteLLM 프록시를 사용하며, vLLM과 LM Studio는 OpenAI 호환 엔드포인트를 통해 연동된다. 프로필이 셀프호스팅으로 간주되는 기준은 키 유무가 아니라 엔드포인트다. 임베딩은 자체 호스팅 Ollama를 로컬 서비스로 등록해 지식베이스 컬렉션별로 선택하며, 청크와 검색 쿼리는 해당 호스트로만 전송된다. 임베딩 모델은 컬렉션별로 선택되고 문서는 이를 영구적인 선택으로 취급한다. 문서 파싱은 기본값인 PyMuPDF와 LiteParse, Tesseract OCR이 워커에서 구동되며, 클라우드 옵션인 LlamaParse는 키가 필요하므로 비활성화해야 한다. 트레이스는 LOGFIRE_TOKEN을 설정하지 않고 에이전트나 환경에 트레이싱 토큰을 지정하지 않으면 실행 트레이스가 로컬에 머문다. 도구는 웹 검색, 웹 페치, 브라우저 자동화, mem0 메모리, MCP 서버를 바인딩하지 말아야 하는데, 이들은 모두 외부로 호출을 보내기 때문이다.

에이전트 빌더 쪽에는 HIPAA 지향 프로필도 있는데, 이 프로필의 로컬 모델 검사는 모든 모델 엔드포인트의 호스트명을 파싱하므로 벤더 도메인에 호스팅된 Ollama 엔드포인트는 로컬로 간주되지 않는다. 이는 설정 검사일 뿐 인증은 아니다. 로컬 모델 사용 시 주의할 두 가지는 다음과 같다. 달러 예산은 로컬 모델을 커버하지 않는다. 지출은 실행에 사용된 API 키로 귀속되는데 키 없는 로컬 모델은 지출을 기록하지 않으므로, 실행당 모델 요청 상한인 에이전트별 단계 제한 max_steps가 폭주하는 도구 루프를 막는 장치이며 반드시 설정해야 한다. 에이전트의 성능은 모델의 도구 호출 능력에 달려 있다. 계획 수립, 문서 검색, 샌드박스가 모두 도구 호출을 거치기 때문이다. 공개할 로컬 모델 벤치마크가 없으므로 특정 모델이 잘 동작한다고 주장하지 않는다.

설치에는 Docker Compose 2.24 이상이 필요하며, 배포된 두 이미지(amd64와 arm64)와 함께 Postgres(pgvector 포함), Redis, Prefect가 같은 컴포즈 파일로 구동된다. 설치 프로그램에는 사전 요구 사항만 검사하는 --check 플래그가 있다. 설치 프로그램은 호스티드 프로바이더만 제공하므로 Decide later(--provider none)를 선택한 뒤 콘솔에서 Ollama 또는 vLLM 프로필을 추가해야 하며, 기본적으로 공개 MCP 서버 레지스트리를 미러링하므로 해당 다운로드를 건너뛰려면 --no-mcp 옵션으로 실행한다. 프로젝트는 아직 0.0.x 버전으로 단일 호스트만 지원하며 쿠버네티스 매니페스트와 리랭커는 없다. 저장소와 문서는 GitHub에서 확인할 수 있다. 마지막으로 필자가 실제로 답을 얻고 싶은 질문은 이것이다. 지금 어떤 로컬 모델이 어떤 크기와 어떤 하드웨어에서 안정적인 다단계 도구 호출을 제공하는가.

💬 주요 댓글 번역 (1)

1 익명

도구 호출 질문이 진짜 핵심이다. 로컬 모델은 실행이 3~4단계를 넘어 JSON을 주고받기 시작하면 급격히 무너진다. 3090에서 구동한 qwen2.5-coder 32b는 상당 부분을 처리하지만 검색, 샌드박스, 계획 수립을 연쇄적으로 수행해야 하는 순간 도구 이름을 환각하고 조용히 죽어 버린다.

🔍 루키 분석

Vstorm의 AgenticOS는 Apache-2.0 라이선스로 공개된 셀프호스팅 AI 에이전트 플랫폼으로, 챗 모델·임베딩·문서 파싱·트레이스·도구를 모두 로컬로 구성하는 방법을 항목별로 설명한다. 개발자는 키 없는 로컬 모델은 달러 예산 추적에서 빠지므로 실행당 모델 요청 상한인 max_steps 설정이 필수라고 강조한다. 프로젝트는 아직 0.0.x 초기 단계로 단일 호스트 배포만 지원하며, 댓글에서는 로컬 모델이 3~4단계를 넘는 다단계 도구 호출에서 환각으로 무너진다는 지적이 나온다.

— 루키 · glm-5.3-flash:cloud