AI 실행 환경 심층 분석: VM 샌드박스, 쉘 툴, Function Calling 통신 흐름
Manus의 exec와 OpenCode의 Bash 차이점, AI가 텍스트와 도구 호출을 구분하는 듀얼 채널 메커니즘, VM 가상머신과 쉘의 원리, 플러그인 설정 내부를 기술적으로 깊이 있게 분석합니다.
💡 직관적 생활 비유: 시뮬레이션 방과 무전 통신망
• VM (가상 컴퓨터): 본사 건물(내 진짜 PC) 안에 완벽하게 방수/방화 처리를 해둔 "실험용 가상 방"입니다. 여기서 페인트를 쏟든 벽을 부수든 본사 건물은 흠집 하나 나지 않습니다.
• Shell (쉘): 그 실험실 안에 놓인 "음성 명령 스피커"입니다. "불 켜", "청소해"라고 텍스트로 명령하면 실제 기계를 움직입니다.
• Function Calling: AI가 사람과 대화하는 마이크(텍스트 채널)와 기계를 원격 조종하는 무전기(도구 호출 채널)를 따로 들고 있는 "이중 주파수 통신망"입니다.
📊 아키텍처 파이프라인 및 4단계 의사결정 트리
AI 듀얼 채널 Function Calling 및 실행 파이프라인
4단계 실행 격리 환경 선택 트리 (Triage Decision Tree)
외부인 원격 허용 (KVM/QEMU 완전 가상머신)
불특정 다수 또는 외부 친구에게 원격 명령 실행을 허용할 때는 하드웨어 레벨로 분리된 풀 VM 샌드박스를 구축합니다.
마이크로서비스 격리 (Docker 컨테이너)
프로세스 및 네트워크 격리와 의존성 패키징이 목적일 때는 가볍고 빠른 도커 컨테이너를 채택합니다.
개발자 로컬 워크스페이스 (Native CLI 도구)
개발자 본인의 개인 PC 환경에서는 ~/.local/bin 경로의 단독 CLI 실행 파일로 최고 속도의 실행 환경을 확보합니다.
도구 규격화 (MCP Server vs Bash 스크립트)
외부 클라우드 도구와 연동할 때는 MCP 서버, 단순 로컬 작업 자동화는 Bash 스크립트로 분기합니다.
🛠️ 기술 팩트 체크: exec vs Bash 및 듀얼 채널의 진실
1. Manus의 exec와 OpenCode의 Bash는 왜 이름이 다른가?
본질은 100% 동일한 "명령어 실행 함수"입니다. Manus 개발팀은 함수 이름을 exec(execute의 약어)이라 명명했고, OpenCode 팀은 Bash라고 명명했을 뿐입니다. 두 도구 모두 내부에서는 bash 쉘 프로세스를 열어 명령어를 실행합니다.
2. AI는 사용자 텍스트와 도구 호출을 어떻게 구분하는가?
AI 모델의 토큰 출력에는 "텍스트 채널"과 "tool_use 채널"이 물리적으로 분리되어 있습니다. 사용자가 터미널에 JSON 문자열을 쳐도 텍스트 채널로 전달되므로 기계 명령어로 실행되지 않습니다.
3. 플러그인의 "설정"에는 무엇이 들어있는가?
프롬프트(자연어 지침)는 Skill의 영역이고, Plugin의 설정은 보안 권한(파일/네트워크 접근 범위), 환경변수(DB 접속 주소), 이벤트 훅(tool.after, session.start), UI 패널 등록 등 "소프트웨어 엔지니어링 설정"이 포함됩니다.
이정마 에디터
AI Infrastructure Architect
AI가 어떻게 실제 컴퓨터를 조작하고 명령어를 내리는지, 그 밑바닥의 런타임 통신 구조와 샌드박스 격리 방식을 투명하게 파헤쳐 드립니다.