Service2025.05.11
GitHub - simstudioai/sim: Open-source platform to build and deploy AI agent workflows.
요약
Sim은 AI 에이전트 워크플로우를 시각적으로 구축하고 배포할 수 있는 오픈 소스 플랫폼으로, Copilot을 활용한 자연어 상호작용 및 벡터 데이터베이스 통합을 지원합니다.
사용자는 클라우드 호스팅 또는 다양한 자체 호스팅 옵션(NPM, Docker Compose, Dev Containers, 수동 설정)을 통해 Sim을 배포할 수 있으며, Ollama 및 vLLM과 같은 로컬 AI 모델 연동도 가능합니다.
️ 자체 호스팅 시 Bun 런타임, Node.js v20+, 그리고 pgvector 확장이 설치된 PostgreSQL 12+ 데이터베이스가 필수 요구사항이며, 설정 파일과 환경 변수를 통해 상세 구성을 진행합니다.
상세 내용
Sim은 AI 에이전트 워크플로우를 구축하고 배포하기 위한 오픈 소스 플랫폼입니다. 이 프로젝트는 시각적 캔버스 기반의 인터페이스를 통해 에이전트, 도구(tools), 그리고 블록(blocks)을 연결하여 워크플로우를 손쉽게 설계하고 즉시 실행할 수 있도록 지원합니다. 핵심적인 기능 중 하나는 Copilot 통합으로, 자연어를 사용하여 노드를 생성하고, 오류를 수정하며, 플로우를 반복(iterate)할 수 있게 하여 개발 프로세스를 가속화합니다. 또한, 문서들을 벡터 스토어(vector store)에 업로드하고 이를 기반으로 에이전트가 특정 콘텐츠에 근거하여 답변하도록 하는 벡터 데이터베이스 통합 기능을 제공하여 RAG(Retrieval Augmented Generation) 패턴을 구현할 수 있습니다. 시각적 워크플로우 설계 (Visual Workflow Design): 사용자는 직관적인 시각적 캔버스에서 에이전트 노드, 도구 호출, 그리고 다양한 로직 블록들을 드래그 앤 드롭 방식으로 연결하여 복잡한 AI 에이전트 워크플로우를 구성합니다. 이는 ReactFlow 라이브러리를 활용하여 구현된 것으로 보이며, 워크플로우의 구성 요소를 시각적으로 표현함으로써 설계의 복잡성을 줄이고 이해도를 높입니다. Copilot 기반의 개발 지원: Sim은 AI 기반의 Copilot 기능을 내장하여 자연어 프롬프트를 통해 워크플로우 노드를 자동으로 생성하거나, 기존 플로우의 문제점을 식별하고 수정하며, 새로운 아이디어를 기반으로 플로우를 개선하는 데 도움을 줍니다. 이는 LLM(Large Language Model)이 개발 프로세스에 직접 개입하여 효율성을 증대시키는 메타 프로그래밍(meta-programming) 또는 코드 생성(code generation)의 한 형태로 볼 수 있습니다. Copilot 서비스는 벡터 데이터베이스 통합 및 RAG: Sim은 PostgreSQL 데이터베이스와 다양한 배포 및 실행 환경 지원:
* 클라우드 호스팅 (Cloud-hosted):
* 자가 호스팅 (Self-hosted):
* NPM 패키지 (
* Docker Compose:
* Dev Containers (VS Code): 개발 환경 설정을 위한
* 수동 설정 (Manual Setup): 로컬 AI 모델 통합: Sim은 외부 API 의존성 없이 로컬에서 AI 모델을 실행할 수 있도록
* Ollama:
* vLLM:
핵심 방법론 및 기술적 특징:
sim.ai에서 발급받은 COPILOT_API_KEY를 통해 자가 호스팅(self-hosted) 환경에서도 연동 가능합니다.pgvector 확장(extension)을 사용하여 벡터 임베딩(vector embeddings)을 저장하고 관리합니다. 이를 통해 사용자가 업로드한 문서들을 벡터 공간에 인덱싱하고, 에이전트가 질의를 받았을 때 관련성 높은 문서를 검색(retrieval)하여 답변을 생성하는 RAG 패턴을 지원합니다. pgvector는 효율적인 유사성 검색(similarity search)을 가능하게 하여 에이전트가 외부 지식에 기반한 정확하고 상황에 맞는 응답을 제공하도록 합니다.sim.ai를 통해 즉시 사용 가능합니다.* 자가 호스팅 (Self-hosted):
* NPM 패키지 (
npx simstudio): 가장 간편한 로컬 실행 방법으로, Docker가 설치되어 있어야 합니다.* Docker Compose:
docker-compose.prod.yml을 사용한 프로덕션 환경 배포, docker-compose.ollama.yml을 사용한 Ollama 기반 로컬 모델 실행 환경 설정(GPU 또는 CPU 모드 지원)을 제공합니다.* Dev Containers (VS Code): 개발 환경 설정을 위한
VS Code의 Remote - Containers 확장을 통한 통합 개발 환경을 제공합니다.* 수동 설정 (Manual Setup):
Bun 런타임, Node.js v20+, PostgreSQL 12+ 및 pgvector 확장이 필요하며, bun install, drizzle-kit migrate 등을 통해 직접 데이터베이스와 애플리케이션을 설정합니다.Ollama와 vLLM을 지원합니다.docker-compose.ollama.yml을 통해 통합되거나, 호스트 머신에 실행 중인 Ollama 인스턴스와 OLLAMA_URL 환경 변수(http://host.docker.internal:11434 등)를 통해 연동됩니다.* vLLM:
VLLM_BASE_URL 환경 변수를 통해 OpenAI-호환 API를 제공하는 vLLM 서버와 연동하여 자가 호스팅 모델을 활용할 수 있습니다.기술 스택:
* 프레임워크 (Framework): Next.js (App Router)
* 런타임 (Runtime): Bun
* 데이터베이스 (Database): PostgreSQL (Drizzle ORM 연동, pgvector 확장 필수)
* 인증 (Authentication): Better Auth
* UI/UX: Shadcn, Tailwind CSS
* 상태 관리 (State Management): Zustand
* 플로우 에디터 (Flow Editor): ReactFlow
* 모노레포 (Monorepo): Turborepo
* 실시간 통신 (Realtime): Socket.io
* 백그라운드 작업 (Background Jobs): Trigger.dev
* 원격 코드 실행 (Remote Code Execution): E2B
Sim은 Bun 런타임과 Turborepo를 활용한 모노레포 구조를 통해 개발 및 관리가 용이하며, Socket.io를 통해 실시간 소켓 서버를 운영하여 동적인 사용자 경험을 제공합니다. E2B를 활용한 원격 코드 실행 기능은 에이전트가 샌드박스 환경에서 외부 코드를 실행할 수 있는 유연성을 제공할 가능성이 높습니다.
GitHub
Shared by Anonymous