# 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팀 | 문의: 내부 메신저*
