# AX Copilot 기술 세미나 ### 사내 AI 생산성 플랫폼 — 아키텍처와 핵심 기술 > **발표 대상**: 사내 개발팀 / AI 연구팀 > **버전**: v1.6.1 기준 (2026년 3월) > **발표자**: AX연구소 AI팀 --- ## 1. AX Copilot 이란? > **"Alt+Space 한 번으로 모든 업무 도구에 접근하는 사내 전용 AI 플랫폼"** ### 세 가지 제품으로 구성 | 제품명 | 역할 | 주요 기능 | |--------|------|-----------| | **AX Commander** | 글로벌 런처 | 명령 검색, 도구 실행, 자동화 | | **AX Agent** | AI 대화 엔진 | Chat / Cowork / Code 3탭 | | **AX Copilot** | 통합 플랫폼 | 위 두 제품 + 설정·보안 통합 | ### 왜 데스크탑 앱인가? — 2026년 AI 도구의 방향 > **"브라우저 안의 AI"에서 "내 PC에서 직접 움직이는 AI"로 전환 중** 2024~2025년 AI 서비스들은 웹 채팅(ChatGPT, Claude.ai)이 주류였지만, 2026년 현재 **주요 AI 코딩 서비스가 모두 데스크탑 앱/터미널 네이티브**로 전환했습니다: | 서비스 | 형태 | 로컬 파일 접근 | |--------|------|:------------:| | **Claude Code** | 터미널 CLI (사용자 PC에서 직접 실행) | ✅ 파일 읽기/쓰기/실행 | | **Cursor** | 데스크탑 IDE (Electron 기반) | ✅ 프로젝트 전체 분석 | | **Windsurf** | 데스크탑 IDE (VS Code 포크) | ✅ 48시간 자동 인덱싱 | | **GitHub Copilot** | VS Code 확장 → 독립 에이전트 | ✅ 로컬 Git 연동 | | **Raycast** | 데스크탑 런처 (macOS 네이티브) | ✅ 앱·파일·클립보드 통합 | **공통 패턴**: AI가 실제로 유용하려면 **사용자의 실제 파일을 읽고, 수정하고, 실행**해야 합니다. 웹 브라우저에서는 이것이 불가능하므로, 모든 서비스가 데스크탑/터미널로 내려왔습니다. **AX Copilot은 이 흐름의 정중앙에 위치합니다:** - 🖥️ **데스크탑 네이티브** — WPF 앱이 OS 레벨에서 파일·프로세스·클립보드에 직접 접근 - ⌨️ **글로벌 런처** — Alt+Space 한 번으로 어떤 앱 위에서든 즉시 호출 - 🤖 **에이전트 도구 52개** — 파일 읽기/쓰기, 코드 실행, Git, 문서 생성을 AI가 직접 수행 ### 핵심 설계 원칙 - 🏢 **사내 전용** — 외부 서버 의존 없음, 텔레메트리 없음 - 💾 **로컬 우선** — 모든 데이터는 `%APPDATA%\AxCopilot\`에 저장 - 🔒 **보안** — AES-256 설정 암호화, 역공학 방지 - 📦 **인스톨러 150MB 이하** — .NET 8 런타임 내장 단일 배포 --- ## 2. 전체 아키텍처 ``` ┌─────────────────────────────────────────────┐ │ App.xaml.cs (진입점) │ │ 서비스 초기화 · 트레이 아이콘 · 전역 훅 관리 │ └────────┬──────────────┬──────────────────────┘ │ │ ┌────────▼───────┐ ┌───▼──────────────────────┐ │ AX Commander │ │ AX Agent │ │ (런처 WPF) │ │ (Chat / Cowork / Code) │ └────────┬───────┘ └───┬──────────────────────┘ │ │ ┌────────▼──────────────▼──────────────────────┐ │ 공통 서비스 계층 │ │ SettingsService · LogService · IndexService │ │ CryptoService · McpClientService · LLMRouter │ └──────────────────────────────────────────────┘ ``` ### 기술 스택 | 계층 | 기술 | |------|------| | UI | WPF (.NET 8), WinForms (트레이) | | 언어 | C# 12, XAML | | 데이터 | JSON 직렬화 (System.Text.Json) | | 검색 | TF-IDF + SQLite (코드), 퍼지 엔진 (런처) | | AI | Ollama·vLLM (사내), Gemini·Claude (외부 옵션) | | 프로토콜 | MCP (Model Context Protocol) | --- ## 3. AX Commander — 런처 기술 ### 입력 → 결과 처리 파이프라인 ``` 사용자 입력 │ ▼ CommandResolver (프리픽스 라우터) │ ├── 프리픽스 매칭 ──► 44개 핸들러 실행 │ = 계산기 ; 스니펫 # 클립보드 │ @ URL 별칭 ~ 폴더 $ 클립보드 변환 │ ! 워크스페이스 / 시스템 명령 │ color·date·emoji·port·json·encode … │ └── 프리픽스 없음 ──► FuzzyEngine (한국어 초성 + 퍼지 매칭) ``` ### FuzzyEngine 핵심 알고리즘 ``` 입력: "설정" → 초성 추출: "ㅅㅈ" → LCS(최장 공통 부분 수열) 기반 점수 계산 → 사용 빈도 가중치 적용 (UsageRankingService) → 정렬 후 결과 반환 ``` ### 주요 핸들러 카탈로그 (44종) | 카테고리 | 핸들러 | 기능 | |----------|--------|------| | 개발 도구 | json, encode, port, color | JSON 검증, 인코딩, 포트 조회, 색상 변환 | | 파일/시스템 | recent, rename, scaffold, svc | 최근 파일, 일괄 이름변경, 프로젝트 생성 | | 생산성 | note, snippet, date, stats | 메모, 스니펫, 날짜 계산, 텍스트 분석 | | UI/화면 | cap, snap, pick | 화면 캡처, 창 배치, 색상 추출 | | 워크스페이스 | !, workspace | 22개 레이아웃, 프로파일 저장/복원 | --- ## 4. AX Agent — AI 대화 엔진 ### 에이전트 루프 (AgentLoopService) ``` 사용자 메시지 │ ▼ ┌─────────────────────────────┐ │ 에이전트 루프 (반복) │ │ │ │ 1. LLM API 호출 │ │ 2. 응답 파싱 │ │ 3. 도구 호출 감지 │ │ 4. 도구 실행 │◄──── 52개 도구 │ 5. 결과 → 컨텍스트 추가 │ │ 6. 목표 달성? → 종료 │ └─────────────────────────────┘ │ ▼ 최종 응답 스트리밍 출력 (SSE) ``` ### 3개 대화 탭의 특성 | 탭 | 목적 | 시스템 프롬프트 | 주요 도구 | |----|------|----------------|-----------| | **Chat** | 일반 AI 대화 | 범용 어시스턴트 | 기본 도구 | | **Cowork** | 업무 자동화 | 20개 프리셋 특화 | 문서·데이터 도구 | | **Code** | 개발 지원 | 코딩 에이전트 | LSP·Git·빌드 도구 | ### 컨텍스트 관리 - **토큰 추정**: `TokenEstimator` — CJK 문자 가중치 적용, 실시간 비용 표시 - **대화 압축**: 컨텍스트 초과 시 `ContextCondenser`로 요약 → 재압축 - **대화 분기**: `ParentId` 기반 트리 구조, 우클릭 "여기서 분기" --- ## 5. 도구 생태계 — 52개 에이전트 도구 ### 도구 카테고리 ``` 파일·코드 (18개) 문서·데이터 (12개) file_read/write document_read/write directory_list pptx_create search_files xlsx_analyze file_watch data_pivot lsp_goto_definition template_render lsp_find_references text_summarize search_codebase (TF-IDF) image_analyze 개발 (12개) 시스템·프로세스 (10개) git_status/diff/commit process_run build_run environment_read test_generate/run clipboard_read/write code_review screen_capture spawn_agent notification_show ``` ### 스킬 시스템 (29개 내장 슬래시 명령) ``` /daily-standup /email-draft /code-review /translate /security-audit /prd-generator /weekly-report /refactor /gen-test /changelog /sql-report /perf-audit … ``` - `*.skill.md` 마크다운 파일로 정의 (YAML 프론트매터) - `%APPDATA%\AxCopilot\skills\` 외부 폴더로 재빌드 없이 추가 - Python/Node.js 런타임 감지 → 고급 스킬 자동 활성화 --- ## 6. 코드 인텔리전스 기술 ### LSP (Language Server Protocol) 연동 ``` 에이전트 LSP 서버 │ │ ├─ lsp_goto_definition ──► OmniSharp (C#) ├─ lsp_find_references ──► typescript-language-server └─ lsp_symbols ──► pyright (Python) ``` **효과**: 텍스트 검색이 아닌 의미 기반 코드 탐색 → 수정 정확도 대폭 향상 ### 시맨틱 코드 검색 (TF-IDF 엔진) ``` 1. 프로젝트 파일 인덱싱 └── 바이그램 토크나이저 + 스톱워드 제거 └── SQLite 영속 저장 (증분 업데이트) 2. 질의 시 관련 파일 자동 검색 └── TF-IDF 점수 계산 → 상위 N개 반환 └── 에이전트가 자동으로 관련 코드 읽기 ``` ### MCP (Model Context Protocol) 클라이언트 - `stdio` + `JSON-RPC 2.0` 표준 구현 - 외부 MCP 서버의 도구를 에이전트 도구로 자동 래핑 - 사내 전용 MCP 서버만 연결 허용 --- ## 7. 보안 & 사내 환경 설계 ### 다층 보안 구조 ``` 레이어 1: 설정 암호화 └── settings.json → AES-256-GCM → settings.dat └── PC별 DPAPI 키 조합 (이식 불가) 레이어 2: 역공학 방지 (AntiTamper) └── 디버거 감지, 리버싱 도구 프로세스 감지 └── 사내 IP 대역 예외 처리 (개발 환경) 레이어 3: 보안 감사 로그 └── AuditLogService — 모든 도구 호출 JSON 영속화 └── 개발자 모드에서 감사 로그 폴더 열기 레이어 4: 실행 범위 제한 └── 외부 HTTP 호출 금지 (LLM API 제외) └── 원격 코드 실행 금지 └── 텔레메트리 완전 차단 ``` ### 모델 라우팅 전략 ``` 질문 유형 분류 │ ├── 코딩/기술 → 코드 특화 모델 (사내 vLLM) ├── 번역/요약 → 경량 모델 (Ollama) └── 복잡 분석 → 대형 모델 (Gemini Pro / Claude) 폴백 처리: 모델 오류 시 FallbackModels 순차 시도 ``` --- ## 8. Phase별 개발 현황 ### 완료된 주요 Phase | Phase | 버전 | 핵심 성과 | |-------|------|-----------| | 2.5~7 | v1.1~1.2 | 에이전트 루프, 21개 도구, 마크다운 렌더러 | | 8 | v1.5.0 | MCP 클라이언트, 모델 폴백, 대화 분기, 토큰 관리 | | 9 | v1.5.0 | LSP 연동, 병렬 에이전트, 코드 시맨틱 검색, 이벤트 트리거 | | 10~11 | v1.5.0 | Auto Router, 에이전트 메모리, 스킬 시스템, AI 코드 리뷰 | | 15 | v1.6.0 | 멀티패스 문서 생성, 42→52개 도구, 29개 내장 스킬 | | 16 | v1.7.0 | 플랜 모드, 병렬 도구 실행, 프로젝트 규칙 시스템 | ### 현재 규모 (v1.6.1) ``` 에이전트 도구: 52개 내장 스킬: 29개 코워크 프리셋: 20개 지원 LLM: 4종 (Ollama · vLLM · Gemini · Claude) 런처 핸들러: 44개 지원 테마: 10종 ``` --- ## 9. 차기 개발 방향 (v1.8~2.0) ### 경쟁 서비스 대비 로드맵 | 기능 | 경쟁 서비스 | AX Copilot 계획 | |------|-------------|-----------------| | 자기 성찰 루프 | Claude Code Reflexion | **v1.8** 자기 성찰 서비스 | | 영속 작업 기억 | Windsurf Memory | **v1.8** Working Memory | | 멀티파일 Diff | Cursor diff view | **v1.8** 통합 Diff UI | | HTTP+SSE MCP | Claude Code 원격 | **v1.8** MCP HTTP 전송 | | 에이전트 팀 | GitHub Copilot Workspace | **v2.0** 다중 에이전트 | | 플러그인 갤러리 | Raycast Store | **v2.0** 로컬 레지스트리 | ### 사내 환경 특화 원칙 유지 - ✅ 외부 서버 의존 없음 → 온프레미스 LLM 우선 - ✅ 인스톨러 150MB 이하 유지 - ✅ 플러그인 로컬 zip 설치만 허용 - ✅ 모든 데이터 로컬 저장 --- ## 10. 정리 및 Q&A ### AX Copilot의 기술적 차별점 ``` 1. 완전 오프라인 동작 가능 (사내 Ollama/vLLM) 2. 52개 에이전트 도구 + 29개 슬래시 스킬 3. LSP 기반 실제 코드 이해 (텍스트 검색 수준 초월) 4. MCP 표준으로 사내 서버 자유 연결 5. AES-256 + DPAPI 이중 암호화 설정 보안 6. 전역 핫키 Alt+Space — 어떤 앱에서도 즉시 호출 ``` ### 향후 기여 방법 - **스킬 추가**: `*.skill.md` 파일 작성 → `%APPDATA%\AxCopilot\skills\` 배치 - **MCP 서버**: 사내 도구를 MCP 서버로 노출 → AX Copilot에서 자동 사용 - **플러그인**: `IActionHandler` 인터페이스 구현 → DLL 배치 --- *발표 자료 작성: AX연구소 AI팀 | 문의: 내부 메신저*