핵심 요약
기존 AI 코딩 도구들은 특정 IDE나 CLI에 종속되어 기업이 자체 인프라에 통합하기 어려웠다. Sema Code는 핵심 추론 엔진을 UI와 완전히 분리하여 어떤 환경에서도 npm 라이브러리처럼 호출해 사용할 수 있는 개방형 아키텍처를 제시한다.
왜 중요한가
기존 AI 코딩 도구들은 특정 IDE나 CLI에 종속되어 기업이 자체 인프라에 통합하기 어려웠다. Sema Code는 핵심 추론 엔진을 UI와 완전히 분리하여 어떤 환경에서도 npm 라이브러리처럼 호출해 사용할 수 있는 개방형 아키텍처를 제시한다.
관련 Figure

왼쪽의 기존 시스템은 특정 플랫폼에 종속되어 확장이 어려운 반면, 오른쪽의 Sema Code는 모듈화된 코어를 통해 웹, API, 확장 프로그램 등 다양한 클라이언트에 유연하게 결합될 수 있음을 보여준다.
기존의 폐쇄적인 블랙박스 AI 시스템과 Sema Code의 개방형 프로그래밍 가능 엔진 아키텍처 비교
핵심 기여
내장형 엔진 아키텍처 설계
클라이언트, 코어 엔진, 서비스 레이어를 완전히 분리하여 UI가 없는 npm 라이브러리 형태로 패키징했다. 이를 통해 WebSocket이나 gRPC를 통해 다양한 언어 및 환경에서 AI 코딩 기능을 직접 호출할 수 있다.
멀티테넌트 상태 격리 메커니즘
Node.js의 AsyncLocalStorage를 활용하여 단일 프로세스 내에서 여러 사용자의 세션을 안전하게 분리했다. 각 인스턴스는 독립적인 이벤트 버스와 상태 관리자를 보유하여 데이터 유출을 방지한다.
이중 경로 적응형 컨텍스트 압축
토큰 사용량이 임계값의 75%에 도달하면 LLM 요약을 통한 의미론적 압축을 수행하고, 실패 시 결정론적 절단을 수행하는 이중 전략을 도입하여 긴 작업에서도 추론의 일관성을 유지한다.
4계층 비동기 권한 제어 시스템
파일 수정, 쉘 명령, 스킬 호출, MCP 작업 등 위험도에 따라 4단계로 권한을 구분했다. 화이트리스트 기반의 1차 검증과 LLM 기반 정적 분석을 통한 2차 검증으로 보안성을 강화했다.
핵심 아이디어 이해하기
기존 AI 코딩 에이전트는 특정 애플리케이션 내부에 로직이 고정되어 있어 재사용성이 낮다. 이는 마치 데이터베이스가 특정 엑셀 파일 안에만 갇혀 있는 것과 같다. Sema Code는 이 로직을 분리하여 SQLite처럼 어디에나 내장할 수 있는 '엔진'으로 만드는 것을 목표로 한다.
이를 위해 딥러닝 모델의 컨텍스트 윈도우 한계를 관리하는 방식에 주목했다. 모델이 긴 코드를 작성할 때 과거 정보를 잊지 않도록, 세션 상태를 '에이전트 로컬 상태'와 '세션 글로벌 상태'로 계층화했다. 각 에이전트는 자신만의 대화 기록과 작업 목록을 가지며, 상위 세션은 전체를 제어하는 중단 신호나 공통 권한만 관리하여 복잡한 멀티 에이전트 협업 시 발생할 수 있는 상태 오염을 방지한다.
결과적으로 개발자는 복잡한 에이전트의 추론 루프를 직접 구현할 필요 없이, 표준화된 API를 통해 엔진에 연결하기만 하면 된다. 이는 AI 기능을 단순한 '기능'이 아닌 '인프라' 수준으로 격상시켜 기업용 소프트웨어에 AI 에이전트를 손쉽게 통합할 수 있게 한다.
방법론
Sema Code는 클라이언트 레이어, 세마 코어(엔진 레이어), 서비스 레이어의 3층 구조를 따른다. 엔진 레이어는 UI 코드를 전혀 포함하지 않으며, 모든 상호작용은 이벤트 기반의 공개 API를 통해 이루어진다. [사용자 입력 → 이벤트 버스 구독 → 엔진 추론 및 도구 실행 → 결과 이벤트 스트리밍] 순으로 동작하여 클라이언트가 실시간으로 UI를 갱신할 수 있게 한다.
멀티테넌트 환경에서의 안전한 실행을 위해 FIFO 입력 큐와 세션 재구성 프로토콜을 구현했다. [비동기 입력 q → 실행 상태 Sstate 확인 → 처리 중이면 큐에 삽입, 유휴 상태면 즉시 실행] 과정을 거친다. 특히 세션 전환 시 Cabort 컨트롤러를 통해 기존 작업을 즉시 중단하고 Slocal 상태를 완전히 초기화하여 잔여 데이터가 새 세션에 영향을 주지 않도록 보장한다.
컨텍스트 관리는 O(1) 복잡도의 실시간 모니터링을 기반으로 한다. [Anthropic API의 누적 토큰 메타데이터 추출 → 8,000 토큰의 여유 버퍼 추가 → 유효 컨텍스트 크기 계산]을 통해 모델의 최대 한도 L의 75%를 초과하는 순간 압축 알고리즘을 트리거한다. 압축 시에는 LLM을 호출해 파일 경로, 함수 시그니처 등 핵심 엔티티만 보존하는 구조적 요약을 생성한다.
관련 Figure

엔진 레이어가 대화, 권한, 작업, 상태 관리 등을 캡슐화하고 있으며, 서비스 레이어를 통해 MCP 마켓이나 스킬 스토어와 연결되는 구조를 시각화하여 내장형 프레임워크의 작동 원리를 설명한다.
클라이언트, 세마 코어 엔진, 서비스 레이어로 구성된 3층 시스템 아키텍처 상세도
주요 결과
Sema Code 엔진은 단일 코드베이스로 VSCode 확장 프로그램과 멀티채널 메시징 게이트웨이(SemaClaw)라는 서로 다른 두 가지 형태의 제품을 동시에 구동함으로써 아키텍처의 범용성을 입증했다. VSCode 확장 환경에서는 단일 사용자 모드로 동작하며 대규모 리팩터링 세션 동안 적응형 컨텍스트 압축 기능을 성공적으로 수행했다.
SemaClaw 배포 환경에서는 수십 명의 동시 사용자가 공유 프로세스를 사용하는 멀티테넌트 격리 기능을 검증했다. 텔레그램 및 페이슈(Feishu) 채널을 통해 들어오는 불규칙한 메시지 폭주 상황에서도 FIFO 입력 큐가 원자적 세션 전환을 보장했으며, 비동기 승인 프로토콜을 통해 채팅창 내 버튼 클릭만으로 안전하게 쉘 명령 권한을 제어할 수 있음을 확인했다.
기술 상세
Sema Core는 JavaScript 생태계에서 구현되었으며, 타 언어와의 호환성을 위해 WebSocket과 gRPC 인터페이스를 노출한다. 아키텍처의 핵심은 상태 관리의 분리이다. 각 에이전트 인스턴스 Ei는 전용 리소스 번들에 바인딩되며, AsyncLocalStorage를 통해 명시적 파라미터 전달 없이도 비동기 제어 흐름 전반에서 격리된 상태를 유지한다.
멀티 에이전트 협업은 1단계 위임 구조를 가진다. 메인 에이전트는 서브 에이전트를 생성할 수 있지만, 서브 에이전트는 추가 위임이 불가능하도록 설계하여 호출 깊이를 제한하고 자원 고갈을 방지한다. 서브 에이전트는 독립된 Slocal 공간에서 추론을 수행하며, 최종 결과물만 메인 에이전트에게 전달하여 컨텍스트 오염을 최소화한다.
보안 측면에서는 쉘 실행(L2) 레이어에 대해 2단계 평가를 수행한다. 1단계에서는 결정론적 화이트리스트 체크를 수행하고, 이를 통과하지 못한 명령은 LLM 기반의 정적 분석을 통해 난독화된 악성 페이로드나 인젝션 위험을 탐지한다. 위험이 감지되면 즉시 거부(deny)하거나 사용자에게 경고와 함께 승인을 요청하는 비동기 프로토콜을 실행한다.
관련 Figure

장시간 실행되는 작업을 비동기적으로 관리하고, 메인 에이전트와 서브 에이전트 간의 격리된 상태 공간을 유지하며, 토큰 사용량에 따라 이중 경로로 컨텍스트를 압축하는 런타임의 핵심 기능을 상세히 묘사한다.
백그라운드 작업 시스템, 멀티 에이전트 협업, 컨텍스트 압축 모듈의 작동 메커니즘
한계점
현재 배포 검증은 두 가지 제품 형태에 국한되어 있어 CI/CD 파이프라인이나 주피터 노트북 임베딩 등 다른 폼팩터에 대한 일반화 가능성은 추가 증명이 필요하다. 또한 수백 명 이상의 동시 사용자가 발생하는 대규모 부하 테스트가 아직 이루어지지 않았으며, 여러 엔진 인스턴스 간의 수평적 확장을 위한 상태 동기화 문제는 향후 과제로 남아 있다.
실무 활용
기업 환경에서 자체적인 AI 코딩 도구를 구축하거나 기존 워크플로우에 에이전트 기능을 내장하려는 팀에게 즉시 적용 가능한 프레임워크를 제공한다.
- 사내 보안 규정을 준수하는 맞춤형 VSCode 또는 JetBrains용 코딩 보조 도구 개발
- CI/CD 파이프라인 내에서 자동으로 코드를 리뷰하고 수정안을 제시하는 백엔드 에이전트 구축
- 슬랙(Slack)이나 팀즈(Teams) 등 협업 툴에서 대화로 인프라를 제어하는 챗옵스(ChatOps) 봇 구현
- 특정 도메인 지식이 포함된 전용 스킬(Skills)을 배포하여 팀 전체의 코딩 표준 상향 평준화
코드 공개 여부: 공개
코드 저장소 보기키워드
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.