# AX Agent 대화 서비스 고도화 — 종합 계획 및 코드 리뷰

COMPREHENSIVE PLAN & CODE REVIEW

# AX Agent 대화 서비스 고도화
— 종합 계획 및 코드 리뷰

코드 리뷰 현황 + 완료된 고도화 + 차기 로드맵을 하나의 문서로 통합
LlmService · ChatWindow · ChatStorageService · AgentLoopService · McpClientService

2026-03-30 · v1.6.1

### 목차 (Table of Contents)

Part 1 — 코드 리뷰 및 현황

1. 현재 구현 상태
2. 아키텍처 개요
3. 지원 백엔드
4. 파일별 상세 분석
5. 경쟁 서비스 비교
6. Claude Desktop 분석
7. 오픈소스 코어 분석
8. 에이전트 논문 및 오픈소스 심층 분석
9. 3탭 개발 로드맵
10. 공통 개발 지침

Part 2 — 완료된 고도화

11. Phase 2.5~7 (v1.1.0 ~ v1.2.1) 완료
12. Phase 7.5 (v1.2.2) 완료
13. Phase 8 (v1.3.0) 완료
14. 개발 진행 로그 (v1.0.5~v1.0.7)

Part 3 — 다음 고도화 계획

15. Phase 9 — 차세대 고도화 (v1.5.0)
16. Phase 10 — 지능형 에이전트 (v1.5.0)
17. Phase 11 — 생태계 확장 (v1.5.0)
18. Phase 12 — 자율 에이전트 (v2.0+)
19. Phase 13 — 스킬 생태계 + 분석 고도화
20. Phase 14 — 에이전트 도구 + 스킬 대확장 (v1.5.4)
21. Phase 15 — 멀티패스 문서 엔진 (v1.6.0)

Part 4 — 차세대 고도화 계획

23. Phase 16 — 에이전트 지능 강화 (v1.7.0)
24. Phase 17 — 심화 지능 + UX 혁신 (v1.8.0)
25. Phase 18 — 에코시스템 + 차별화 (v2.0)
26. 기술 부채

Part 1 — 코드 리뷰 및 현황

## 1. 현재 구현 상태

백엔드(LlmService, ChatStorageService, CryptoService)는 100% 구현 완료.
설정 UI(SettingsWindow AI 탭)와 DEPLOY_STUB 해제 완료. 핵심 기능은 즉시 사용 가능 상태.

파일 | 라인 수 | 상태 | 역할
--- | --- | --- | ---
`LlmService.cs` | 362 | 완료 | Ollama/vLLM/Gemini 3종 LLM API 통신
`ChatStorageService.cs` | 260+ | 완료 | AES-256-GCM 암호화 대화 저장/로드 + 디스크 용량 관리
`ChatWindow.xaml(.cs)` | 209 + 650+ | 완료 | 채팅 UI · 스트리밍 · 피드백 · 워터마크
`ChatHandler.cs` | 154 | 완료 | "!" 프리픽스 핸들러
`SettingsWindow (AI 탭)` | ~120 | 완료 | 서비스/모델/키/온도 설정 UI
`CryptoService.cs` | 200+ | 완료 | Portable + Local 이중 암호화

## 2. 아키텍처 개요

### 메시지 흐름

    사용자 입력 (! 예약어)
      ↓
    ChatHandler.GetItemsAsync()
      ↓ (Enter)
    ChatHandler.ExecuteAsync() → ChatWindow 열기
      ↓
    사용자 메시지 입력 → SendMessageAsync()
      ↓
    LlmService.StreamAsync() / SendAsync()
      ↓
    백엔드 선택 (Ollama / vLLM / Gemini)
      ↓
    HTTP 요청 (Messages + SystemPrompt)
      ↓
    스트리밍 응답 → UI 실시간 갱신
      ↓
    ChatStorageService.Save() (AES-256-GCM 암호화)

### 암호화 구조

용도 | 알고리즘 | 키 파생 | 이식성
--- | --- | --- | ---
설정값 (API 키) | AES-256-CBC | PBKDF2(AppSeed, 100K) | 모든 PC 동일
대화 파일 (.axchat) | AES-256-GCM | DPAPI 마스터 키 | 해당 PC만

### 3탭 통합 아키텍처 (C# 네이티브)

    ┌─────────────────────────────────────────────────────────────┐
    │                    AX Agent (WPF Desktop)                    │
    ├──────────┬──────────────────┬────────────────────────────────┤
    │  Chat    │    Cowork        │         Code                   │
    │  (대화)  │  (자율 작업)     │       (코딩 에이전트)          │
    ├──────────┴──────────────────┴────────────────────────────────┤
    │               공통 UI: 폴더 선택 바 + 권한 시스템             │
    ├──────────────────────────────────────────────────────────────┤
    │         C# AgentLoopService (계획→실행→관찰→재평가)          │
    ├──────────────────────────────────────────────────────────────┤
    │ LlmService (Function Calling)  │  PermissionService         │
    │ 4종 LLM 통합 + Tool-use 프로토콜│  Ask / Auto / Deny         │
    ├──────────────────────────────────────────────────────────────┤
    │               C# 네이티브 도구 시스템 (IAgentTool)            │
    │ FileRead│FileWrite│FileEdit│Process│Glob│Grep              │
    ├──────────────────────────────────────────────────────────────┤
    │  LibGit2Sharp  │  AvalonEdit  │  StreamJsonRpc (LSP)        │
    │  Git 스냅샷     │  코드 에디터  │  언어 서버 연동             │
    ├──────────────────────────────────────────────────────────────┤
    │                작업 폴더 (사용자 선택)                        │
    │        파일 읽기/쓰기 · cmd/powershell · Git 스냅샷          │
    └─────────────────────────────────────────────────────────────┘

## 3. 지원 백엔드

서비스 | API 형식 | 기본 엔드포인트 | API 키 | 키 보안
--- | --- | --- | --- | ---
Ollama | POST /api/chat | http://localhost:11434 | 선택 | AES-256-CBC 암호화
vLLM | POST /v1/chat/completions | http://localhost:8000 | 선택 | AES-256-CBC 암호화
Gemini | Google GenerateContent API | generativelanguage.googleapis.com | 필수 | 평문 (사내 연결 제한)
Claude | Anthropic Messages API | api.anthropic.com | 필수 | 평문 (사내 연결 제한)

## 4. 파일별 상세 분석

발견된 이슈 및 해결 현황 (클릭하여 펼치기)

심각도 | 파일 | 이슈 | 해결
--- | --- | --- | ---
HIGH | LlmService | JSON 파싱 시 null 체크 없음 | 해결 SafeParseJson 래퍼
HIGH | LlmService | API 에러 시 상세 컨텍스트 부재 | 해결 ClassifyHttpError
HIGH | ChatWindow | Messages 컬렉션 멀티스레드 접근 | 해결 _convLock
HIGH | ChatWindow | 스트리밍 매 청크 UI 갱신 포화 | 해결 50ms 쓰로틀링
HIGH | ChatStorage | Save/Load/Delete 동시 실행 경쟁 | 해결 ReaderWriterLockSlim
MEDIUM | LlmService | 스트리밍 타임아웃 고정 | 해결 30초 청크 타임아웃
MEDIUM | ChatStorage | 원자적 쓰기 미사용 | 해결 tmp→rename
MEDIUM | ChatHandler | 창 생성 스레드 안전 없음 | 해결 lock(_windowLock)
LOW | LlmService | Gemini 스트리밍 파싱 오류 무시 | 해결 LogService.Warn
LOW | ChatWindow | Brush 할당 캐싱 안 됨 | 해결 CacheBrushes()

파일별 상세 분석 (클릭하여 펼치기)

### LlmService.cs

src/AxCommander/Services/LlmService.cs

- JSON 파싱 안전성 — 모든 API 응답에 SafeParseJson 래퍼 적용, 배열 길이 검증
- 에러 메시지 — ClassifyHttpError로 401/403/404/429/500 분류
- 재시도 — PostJsonWithRetryAsync에서 429/타임아웃 시 최대 2회
- 청크 타임아웃 — ReadLineWithTimeoutAsync 30초
- Gemini 파싱 오류 — catch에서 LogService.Warn 기록

### ChatWindow.xaml.cs

src/AxCommander/Views/ChatWindow.xaml.cs

- UI 쓰로틀링 — DispatcherTimer 50ms 간격으로 스트리밍 텍스트 갱신
- 스레드 안전 — _convLock으로 Messages 접근 보호
- Brush 캐싱 — CacheBrushes()에서 로드 시 한 번만 조회
- 창 닫기 보호 — Closed 이벤트에서 _streamCts.Cancel() 호출

### ChatStorageService.cs

src/AxCommander/Services/ChatStorageService.cs

- 파일 동기화 — ReaderWriterLockSlim으로 Save/Load/Delete 보호
- 원자적 쓰기 — .tmp 파일에 쓴 뒤 rename
- 에러 로깅 — catch에서 LogService.Warn으로 구체적 파일명 기록

### ChatHandler.cs

src/AxCommander/Handlers/ChatHandler.cs

- 싱글턴 — lock(_windowLock)으로 중복 ChatWindow 생성 방지

크로스 체크 오류 검증 절차 (클릭하여 펼치기)
원칙: 하나의 LLM 백엔드에서 오류가 발생하면, 반드시 다른 모든 백엔드에서도 동일 문제가 발생하는지 크로스 체크한 후 수정합니다.

검증 항목 | Claude | Gemini | Ollama | vLLM
--- | --- | --- | --- | ---
Function Calling 응답 파싱 | tool_use 블록 | functionCall 블록 | tool_calls 배열 | tool_calls 배열
Tool Result 메시지 구성 | tool_result content | functionResponse | tool role message | tool role message
Assistant tool_use 블록 재전송 | _tool_use_blocks JSON | _tool_use_blocks JSON | _tool_use_blocks JSON | _tool_use_blocks JSON
Array 파라미터 items 스키마 | 불필요 (자동 추론) | 필수 | 불필요 | 불필요
GetProperty 안전성 | 전체 TryGetProperty로 교체 완료 (2026-03-28)

크로스 체크 절차:
1. 오류 발생 시 해당 백엔드의 API 응답 JSON 구조를 로그로 확인
2. 동일 시나리오를 다른 3개 백엔드에서 테스트
3. JSON 파싱 코드에서 GetProperty → TryGetProperty 전환 여부 확인
4. 응답 구조가 다른 부분(예: Gemini=functionCall vs Claude=tool_use)은 별도 처리 검증
5. 수정 후 전체 백엔드 빌드 + 기본 도구 호출 테스트

## 5. 경쟁 서비스 심층 비교

ChatGPT, Claude, Open WebUI, LobeChat 등 주요 서비스와의 기능/디자인/성능 격차 분석.
UX/디자인 리더십 비교 + 다크 모드 가이드 (클릭하여 펼치기)

### UX/디자인 리더십 비교

영역 | 업계 리더 | AX Copilot 현황 | 격차
--- | --- | --- | ---
전체 UX 완성도 | Claude (프로젝트/아티팩트) | 기본 채팅 UI | HIGH
마크다운/코드 렌더링 | ChatGPT, Claude, LobeChat | 플레인 텍스트만 | HIGH
이미지 생성/분석 | ChatGPT (DALL-E/GPT Image) | 미지원 | MEDIUM
음성 대화 | ChatGPT (Advanced Voice) | 미지원 | LOW
다크 모드 색상 품질 | Claude, LobeChat | 테마 리소스 연동 완료 | 해결
사이드바 + 아이콘 바 | Claude Desktop | 구현 완료 | 해결
멀티 LLM 지원 | Open WebUI, LibreChat | 4종 지원 | 해결
암호화 저장 | 없음 (전 서비스) | AES-256-GCM | 우위

### 다크 모드 디자인 가이드 (2026 업계 표준)

- 순수 검정(#000) 금지 — 배경은 #0D0D14~#1A1B2E 사용, 눈 피로 감소
- 대비율 WCAG 4.5:1 이상 — 본문 텍스트, 버튼 라벨 필수 충족
- 편안한 대비 — 너무 강한 대비(순백 #FFF)도 피로 유발, 밝은 회색(#E0E4F0) 권장
- 시맨틱 색상 토큰 — PrimaryText, SecondaryText, HintText 등 의미 기반 네이밍
- 글래스모피즘 — AI 출력 영역에 반투명 패널 + blur 효과로 시각적 분리
- 적응형 색상 — OS 설정 존중(prefers-color-scheme), 수동 토글 항상 제공

경쟁사 핵심 기능 상세 비교 (클릭하여 펼치기)

### 경쟁사 핵심 기능 상세

기능 | ChatGPT | Claude | Open WebUI | LobeChat | AX Cmd
--- | --- | --- | --- | --- | ---
마크다운 렌더링 | O | O | O | O | O
코드 구문 강조 | O | O | O | O | O
코드 블록 복사 | O | O | O | O | O
이미지 생성 | O | X | 일부 | 플러그인 | X
파일 첨부 분석 | O | O | O | O | X
웹 검색 연동 | O | X | 플러그인 | 플러그인 | X
응답 재생성 | O | O | O | O | O
메시지 편집 | O | O | O | O | O
프롬프트 템플릿 | O (GPTs) | O (프로젝트) | O | O | O
대화 내보내기 | O | X | O | O | O
토큰 사용량 | 일부 | X | O | O | O
좋아요/싫어요 | O | O | O | X | O
대화 분류 | 폴더 | 프로젝트 | 태그 | 태그 | O (6종)
대화 고정(핀) | X | O | X | X | O
제목 인라인 편집 | O | O | O | O | O
멀티 LLM 백엔드 | X | X | O | O | O (4종)
암호화 저장 | X | X | X | X | O (AES)
사내 독립 배포 | X | X | O | O | O

AI 서비스 개선 원칙 + 개선 로드맵 (클릭하여 펼치기)

### AI 서비스 개선 원칙

# | 원칙 | 설명
--- | --- | ---
1 | 현대적 웹 디자인 | 디자인은 현대적인 웹 디자인 트렌드를 따르며, ChatGPT·Claude·Open WebUI 등 타 서비스와의 디자인을 고려하여 심미적으로 향상시킨다.
2 | 오픈소스 적극 활용 | 오픈소스를 적극 활용하고 오픈소스들의 핵심 기능 및 우수한 코드를 접목하여 개선한다.
3 | 확장 가능한 서비스 설계 | 단순한 채팅이 아닌, 주고받는 의사소통 및 업무 조율, 보고서·파일 작성 저장, PC 제어 등 향후 서비스 확장(AX Copilot)을 고려하여 설계한다.

### P0 — 핵심 기능 (v1.0.6 목표)

항목 | 현재 | 목표
--- | --- | ---
마크다운 렌더링 | 완료 | 볼드/이탤릭/헤더/리스트/코드블록 + 코드 복사
코드 블록 복사 버튼 | 완료 | 코드 블록 헤더에 언어 표시 + 복사 버튼
대화 제목 인라인 편집 | 완료 | 제목 클릭 시 즉시 편집
응답 재생성 버튼 | 완료 | AI 응답 하단 "다시 생성" 버튼
생성 중지 버튼 | 완료 | 스트리밍 중 빨간 정지 버튼, ESC 지원
대화 내보내기 | 완료 | Markdown/TXT 파일로 저장 (Ctrl+E)
연결 테스트 | 완료 | 설정에서 LLM 서버 상태 확인 버튼
키보드 단축키 | 완료 | Ctrl+N/W/E, Ctrl+Shift+C, ESC 중지
스크롤 개선 | 완료 | 사용자 스크롤 시 자동 스크롤 일시정지

### P0.5 — UI/UX 디자인 혁신 (v1.0.7 목표)

항목 | 현재 | 목표 | 참고
--- | --- | --- | ---
AI 심볼 로딩 애니메이션 | 텍스트 "생각 중..." | 회전/펄스 AI 아이콘 + 그라디언트 효과 | Siri 무지개 원형
무지개 테두리 효과 | 없음 | AI 응답 시 입력 바 또는 AI 아이콘에 무지개 그라디언트 글로우 | Apple Siri
아이콘 호버 애니메이션 | 배경색 변경 (네모) | 아이콘 자체 밝기 전환 + 미세 바운스(Y축 -2px) 또는 스케일(1.1x) | LobeChat
좋아요/싫어요 피드백 | 완료 | 클릭 시 아이콘 채움(filled) + 색상 전환 + 상호 배타 토글 | ChatGPT
메시지 페이드인 | 즉시 표시 | 새 메시지 Opacity 0→1 + Y축 슬라이드(10px) 300ms | Claude Desktop
스트리밍 커서 | 완료 | 텍스트 끝에 깜빡이는 블록 커서 (타이핑 효과) | ChatGPT
스트리밍 글자 단위 표시 | 완료 | 청크 단위 실시간 갱신 + Dispatcher.InvokeAsync(Background) | ChatGPT, Claude

### P1 — 생산성 향상 (v1.0.7 목표)

항목 | 상태 | 설명
--- | --- | ---
메시지 편집 | 완료 | 보낸 메시지 수정 후 재전송
프롬프트 템플릿 | 완료 | 프롬프트 카드 3종 + 워터마크 placeholder
슬래시 명령어 | 완료 | /요약, /번역, /코드리뷰 등 빠른 명령
토큰 사용량 표시 | 완료 | 요청/응답 토큰 수 + 잔여 컨텍스트
모델 전환 (채팅 내) | 완료 | 대화 중 모델을 바로 변경

### P2 — 고급 기능 (v1.1.0 이후)

항목 | 설명
--- | ---
파일 첨부 분석 | PDF/이미지/문서 업로드 후 AI 분석
웹 검색 연동 | 미구현 — 사내 보안 정책으로 에이전트 웹 검색 차단
대화 분기/포크 | 특정 메시지에서 새 대화 분기
대화 내 검색 | 메시지 내용 검색 (제목뿐 아니라)
멀티 대화 비교 | 두 대화를 나란히 비교
장기 메모리 | 대화 간 사용자 선호 기억

## 6. Claude Desktop 심층 분석 — Chat · Cowork · Code

Claude Desktop의 3개 탭(Chat, Cowork, Code)을 심층 분석하고,
AX Copilot에 동등한 기능을 구현하기 위한 아키텍처 및 개발 로드맵을 수립합니다.
Claude Desktop 3탭 기능 비교 + 핵심 패턴 분석 (클릭하여 펼치기)

### Claude Desktop 3탭 기능 비교

구분 | Chat | Cowork | Code
--- | --- | --- | ---
대상 사용자 | 전체 사용자 | 지식 노동자 (기획, 분석, 문서) | 개발자
상호작용 모델 | 대화형 Q&A | 자율적 멀티스텝 작업 수행 | 에이전틱 코딩
파일 접근 | 없음 | 선택된 폴더 (VM 샌드박스) | 선택된 프로젝트 폴더
실행 환경 | N/A | 로컬 VM (격리) | 로컬 / 리모트 / SSH
핵심 기능 | 웹 검색, 커넥터, 아티팩트 | 문서 작성, 데이터 분석, 스프레드시트 | Visual Diff, Git Worktree, 앱 프리뷰
권한 모델 | 읽기 전용 | 폴더 선택 + 읽기/쓰기 분리 + 삭제 확인 | 도구별 허용/차단 + 샌드박스
보안 | 기본 | VM 격리 + 네트워크 차단 | SecurityAnalyzer + ConfirmationPolicy

### Claude Desktop 핵심 패턴 분석

패턴 | 설명 | AX Copilot 적용 방향
--- | --- | ---
폴더 선택 | 채팅 하단에 작업 폴더 선택 UI. 선택한 폴더만 접근 가능 | Chat 하단에 FolderBrowserDialog + 경로 표시 바
권한 단계 | 읽기/쓰기 분리, 삭제 시 확인 프롬프트, 네트워크 차단 | 3단계: Ask(매번 확인) / Auto(자동 허용) / Deny(차단)
에이전트 루프 | 계획 → 도구 실행 → 관찰 → 재평가 반복 | OpenHands/OpenCode 코어 엔진 활용
도구 시스템 | 파일 읽기/쓰기, Bash, 브라우저, 웹 검색 | WPF 네이티브 도구 + MCP 통합 (웹 검색 제외)
Git 스냅샷 | 매 작업 단계마다 Git 커밋으로 롤백 가능 | OpenCode의 Git snapshot 시스템 활용
LSP 검증 | 파일 수정 후 Language Server로 오류 자동 검증 | OpenCode의 LSP 통합 활용

### Claude Cowork vs AX Copilot — 전략적 차별화

항목 | Claude Cowork | AX Copilot 차별점
--- | --- | ---
실행 환경 | 클라우드 VM 샌드박스 | 완전 로컬 실행 — 데이터가 외부로 전송되지 않음
LLM 선택 자유 | Claude만 사용 가능 | 4종 LLM 지원 — Ollama/vLLM/Gemini/Claude
보안 통제 | Ask/Auto 2단계 | Ask/Auto/Deny 3단계 + 차단 경로/확장자/위험 명령
배포 | Electron 기반 | 단일 EXE + NuGet DLL
비용 | Pro $20/월, Max $100/월 | 무료 + API 비용만
네트워크 의존 | 상시 인터넷 필요 | Ollama/vLLM 사용 시 인트라넷만으로 동작

## 7. 오픈소스 코어 엔진 분석

OpenHands + OpenCode + 비교 (클릭하여 펼치기)

### OpenHands — Cowork 코어 (MIT 라이선스)

github.com/All-Hands-AI/OpenHands · Python 72% / TypeScript 25% · 64k+

구성 요소 | 역할 | 내장 방식
--- | --- | ---
`openhands.sdk` | Agent, Conversation, LLM, Tool, 이벤트 시스템 | Python subprocess 또는 HTTP API
`openhands.tools` | 파일 조작, Bash, 브라우저, 웹 검색 | 필요한 도구만 선별 내장 (웹 검색 제외)
`openhands.workspace` | 실행 환경 (로컬/Docker/리모트) | LocalWorkspace (Docker 없이 직접 실행)
`agent_server` | REST/WebSocket API 서버 | 로컬 HTTP 서버로 WPF와 통신

- 에이전트 루프: 사용자 메시지 → LLM → Action → Runtime(샌드박스) → Observation → 반복
- 보안: SecurityAnalyzer(위험도 평가) + ConfirmationPolicy(승인 요구) + SecretRegistry(비밀 관리)
- 컨텍스트 관리: LLMSummarizingCondenser — 컨텍스트 초과 시 자동 요약 (비용 2x 절감)

### OpenCode — Code 코어 (MIT 라이선스)

github.com/opencode-ai/opencode · Go(TUI) / JavaScript+Bun(서버) · 95k+

구성 요소 | 역할 | 내장 방식
--- | --- | ---
Bun HTTP 서버 (Hono) | 에이전트 루프, 도구 실행, LLM 통신 | 백그라운드 프로세스 + REST API
도구 시스템 | 파일 읽기/쓰기, Bash, Glob, Grep, 웹 검색 | HTTP API로 호출 (웹 검색 제외)
LSP 통합 | 파일 수정 후 Language Server 진단 | 서버 내장 LSP 그대로 활용
Git Snapshot | 매 단계 임시 커밋 → undo/redo 지원 | 서버 내장 기능 그대로 활용
이벤트 버스 (SSE) | 실시간 스트리밍 (tool-call, text-delta 등) | WPF HttpClient + SSE 파싱

- 에이전트 루프: 프롬프트 → LLM streamText → 도구 호출 → 결과 피드백 → LSP 검증 → 반복
- 에이전트 모드: Plan 모드(읽기 전용) / Build 모드(파일 수정 허용)
- 서브에이전트: task 도구로 새 세션 생성 (별도 컨텍스트, 다른 LLM 가능)

### 오픈소스 코어 비교

항목 | OpenHands | OpenCode
--- | --- | ---
주 언어 | Python + TypeScript | Go + JavaScript(Bun)
아키텍처 | 이벤트 소싱 + Docker 샌드박스 | 클라이언트-서버 + HTTP API + SSE
격리 수준 | Docker 컨테이너 (완전 격리) | 없음 (Git 스냅샷으로 롤백)
LLM 지원 | 100+ (LiteLLM) | 75+ (AI SDK)
.NET 통합 난이도 | 중간 (Python subprocess + HTTP) | 낮음 (순수 HTTP REST + SSE)
Windows 지원 | Docker 필요 | WSL 권장, 네이티브 가능
적합 용도 | Cowork (문서/데이터/분석 작업) | Code (코드 편집/생성/리팩토링)

## 8. 에이전트 고도화를 위한 논문 및 오픈소스 심층 분석

AX Copilot의 자체 구현 에이전트 코어(AgentLoopService)를 고도화하기 위해
관련 학술 논문과 유사 오픈소스 프레임워크를 분석하고, 적용 가능한 기법을 도출합니다.
12.1 핵심 논문 분석 (ReAct, Reflexion, SWE-Agent 등 10편) (클릭하여 펼치기)

논문/개념 | 핵심 아이디어 | 주요 기법 | AX Copilot 적용 방안
--- | --- | --- | ---
ReAct Yao et al., 2023 | Reasoning + Acting 인터리빙 | Thought-Action-Observation 트리플 반복 | 현재 부분 적용. Thought 단계를 명시적으로 분리하여 UI에 표시.
Toolformer Schick et al., 2023 | LLM이 스스로 도구 사용 시점과 방법을 학습 | Self-supervised API call insertion | 시스템 프롬프트에서 도구 사용 규칙 정의. 추가 조치 불필요.
MRKL Systems Karpas et al., 2022 | LLM을 라우터로, 전문 모듈을 실행기로 분리 | Neural + Symbolic 모듈 하이브리드 | 이미 적용. ToolRegistry가 MRKL의 모듈 레지스트리 역할.
HuggingGPT / TaskMatrix Shen et al., 2023 | LLM이 작업을 분해하고 전문 모델에 위임하는 오케스트레이터 패턴 | Task Planning → Model Selection → Execution → Response | 핵심 적용 대상. Task Decomposition 단계 추가 — 복잡한 요청을 하위 작업으로 분해.
Voyager Wang et al., 2023 | 자동 커리큘럼 + 스킬 라이브러리 | Skill Library + Self-verification + Iterative Refinement | 장기 적용 대상. 커스텀 스킬 저장 시스템.
SWE-Agent Yang et al., 2024 | Agent-Computer Interface (ACI) 설계 원칙 | Linting, Window-based file viewing, Search & Navigate | Code 탭에 핵심 적용. FileEditTool 실행 후 자동 구문 검증 추가.
Reflexion Shinn et al., 2023 | 자기 반성을 통한 에이전트 성능 향상 | Evaluator → Self-Reflection → Memory → Retry with insight | 중요 개선 대상. 도구 실패 시 반성 프롬프트 추가. 최대 N회 자동 재시도.
Plan-and-Solve Wang et al., 2023 | 먼저 계획을 세우고 단계별로 실행 | 계획 → 변수 추출 → 단계별 계산 | 시스템 프롬프트 개선에 즉시 적용 가능.
MemGPT / LLM OS Packer et al., 2023 | LLM 컨텍스트 윈도우를 가상 메모리처럼 관리 | Main context ↔ Archival storage ↔ Recall storage 계층 | Context Condenser의 이론적 기반. 3계층 메모리 시스템.
AutoGPT Richards, 2023 | 완전 자율 에이전트 | Self-criticism, Budget/Step limit, Persistent memory | 가드레일 설계 참고. 에이전트 루프 최대 반복 횟수 제한.
Tree of Thoughts Yao et al., 2023 | 여러 추론 경로를 트리로 탐색 | BFS/DFS 기반 탐색, 백트래킹 | 장기 연구 대상.

12.2 오픈소스 에이전트 프레임워크 비교 (OpenHands, Aider, Cline, Cursor 등) (클릭하여 펼치기)

프로젝트 | Stars | 아키텍처 | 핵심 차별점 | AX Copilot 적용 포인트
--- | --- | --- | --- | ---
OpenHands | 64k+ | 이벤트 소싱 + Docker 샌드박스 | SecurityAnalyzer, LLMSummarizingCondenser, 이벤트 소싱 | ContextCondenser 구현, 위험도 평가, 이벤트 로그
Aider | 30k+ | Git 기반 diff 편집 + 코드맵 | Repository Map, Unified Diff, Auto-commit | Repo Map (작업 폴더 트리 요약), Git 스냅샷
Cline | 35k+ | VS Code 확장 + 에이전트 루프 | Diff 미리보기, 비용 추적, MCP 지원 | Diff 미리보기 UI, 누적 비용 표시
Cursor | 상용 | IDE 내장 에이전트 + Shadow Workspace | Shadow Workspace, Tab Completion, @-mentions | Shadow Workspace, @-참조 컨텍스트 첨부
Devon | 4k+ | 세션 기반 에이전트 + 자동 테스트 | 자동 테스트 실행, 세션 이력, Interrupt & Resume | 세션 직렬화, 자동 테스트
Sweep | 8k+ | GitHub Issue → PR 자동 생성 | 코드 검색 인덱싱, Self-review | Self-review 2-pass 패턴
Mentat | 3k+ | 터미널 기반 코딩 에이전트 | Auto Context (import/dependency 자동 수집) | Auto Context 파일 편집 시 관련 파일 자동 추가

12.3 고도화 기술 영역 — 적용 우선순위 (12항목) (클릭하여 펼치기)

# | 기술 영역 | 현재 상태 | 목표 구현 | 참고 | 우선순위
--- | --- | --- | --- | --- | ---
1 | Task Decomposition | 없음 | 복잡한 요청을 하위 작업으로 분해 + 진행률 UI | HuggingGPT, Plan-and-Solve | P1
2 | Self-Reflection | 에러 메시지만 | 반성 프롬프트 + 최대 3회 자동 재시도 | Reflexion, SWE-Agent | P1
3 | Context Condenser | 없음 | 토큰 임계값 시 LLM 요약으로 압축 | OpenHands | P1
4 | Repo/Folder Map | 없음 | 파일 트리를 시스템 프롬프트에 자동 포함 | Aider RepoMap | P2
5 | Risk Assessment | Ask/Auto/Deny만 | 도구별 위험도 자동 분류 | OpenHands SecurityAnalyzer | P2
6 | Diff Preview | 즉시 수정 | 파일 수정 전 diff 뷰 + 사용자 승인 | Cline, Cursor | P2
7 | Session Serialization | 대화만 저장 | 에이전트 루프 전체 상태 JSON 저장/복원 | Devon, OpenHands | P2
8 | Custom Skill Library | 내장 12개 고정 | 사용자 정의 스킬 저장/관리 | Voyager | P3
9 | Self-Review | 없음 | 2-pass 품질 검증 패턴 | Sweep, Reflexion | P3
10 | Parallel Tool Execution | 순차 1개씩 | Task.WhenAll 병렬 실행 | Claude API parallel tool_use | P3
11 | Auto Context | 없음 | 편집 대상 파일의 import/참조 파일 자동 감지 | Mentat, Cursor | P3
12 | Shadow Workspace | 없음 | 임시 복사본에서 편집 → 검증 → 적용 | Cursor | P3

핵심 원칙: 모든 고도화는 C# 네이티브로 구현. Python/Node.js 의존성 없음.
최우선 3개: Task Decomposition + Self-Reflection + Context Condenser
12.5 UX 고도화 계획 + 12.7 경쟁 서비스 설정 분석 (클릭하여 펼치기)

### UX 고도화 계획

# | 기능 | 설명 | 우선순위
--- | --- | --- | ---
1 | 파일 포맷 선택 UI | 사용자가 결과물 형식(Excel/Word/HTML/Markdown/CSV)을 직접 선택 | P1
2 | 실행 이력 상세 표시 | 에이전트 전체 이력을 타임라인으로 표시 (접이식 이벤트 카드) | P1
3 | 문서 실시간 미리보기 | Claude Artifacts 스타일 오른쪽 패널 미리보기 | P1
4 | 디자인 템플릿 시스템 | 고품질 디자인 템플릿 내장 (보고서, 분석표, 대시보드 등) | P2
5 | Suggestion Chips 고도화 | 다양한 선택지 패턴 감지하여 칩 표시 | P2

### 경쟁 서비스 설정 분석 — 사용자 자유 설정 극대화

설정 카테고리 | 경쟁 서비스 현황 | AX Copilot 구현 계획 | 우선순위
--- | --- | --- | ---
미리보기 자동 열기 | Claude Artifact 자동 표시 | `AutoPreview`: Auto / Manual / Off | P1
기본 출력 포맷 | AI가 자동 선택 | `DefaultOutputFormat`: 자동 / Excel / Word / HTML / MD / CSV | P1
에이전트 권한 세부 | 프로젝트별 권한 프로필 | 도구별 개별 권한, 경로별 권한, 위험도 기반 자동 분류 | P2
이벤트 로그 수준 | 상세/간략 모드 전환 | `AgentLogLevel`: 간략 / 상세 / 디버그 | P2
에이전트 루프 제한 | 기본 25회 | `MaxAgentIterations`: 1~50 슬라이더 | P2
탭별 모델 설정 | 단일 모델 | Chat/Cowork/Code 탭별 다른 LLM 지정 가능 | P3

12.8 커스텀 UI 가이드라인 (클릭하여 펼치기)

### 커스텀 UI 가이드라인 — 심미적 일관성 원칙

UI 요소 | 문제점 | 커스텀 구현 방안 | 상태
--- | --- | --- | ---
ContextMenu | 시스템 기본 흰색 메뉴 | WPF Popup 기반 커스텀 메뉴 + DynamicResource | 완료
MessageBox | Win32 스타일 테마 불일치 | CustomMessageBox 클래스로 대체 | 완료
ComboBox 드롭다운 | 다크 테마에서 불일치 | Popup 기반 커스텀 드롭다운 | P2 예정
FolderBrowserDialog | 테마 적용 불가 | 자체 최근 폴더 메뉴를 1차 접점으로 제공 | 완료
ToolTip | 시스템 기본 노란색 | 커스텀 ToolTip — 다크 배경, 라운드 코너 | P2 예정

개발 규칙:
1. 새 팝업/메뉴/대화상자 — 시스템 기본 컨트롤 사용 금지, 반드시 커스텀 구현
2. 모든 색상은 `DynamicResource` 키 사용 (하드코딩 절대 금지)
3. 폰트 크기: 메뉴 항목 13px 이상, 설명 텍스트 12px 이상
4. 호버/클릭 효과 필수 — `#18FFFFFF` 반투명 배경 + 핸드 커서
5. Popup 내부에 `Button` 사용 금지 — `Border` + `MouseLeftButtonUp` 사용

## 9. AX Agent 3탭 개발 로드맵

AX Agent를 Chat · Cowork · Code 3탭 구조로 확장.
서버 기반 오픈소스 플랫폼의 계획→실행→검증 루프를 데스크톱 앱에 내장.
Phase 1~3 + 공통 인프라 + 전체 스킬 목록 (클릭하여 펼치기)

### Phase 1 — Chat 탭 고도화 (v1.0.7)

항목 | 설명 | 우선순위
--- | --- | ---
탭 UI 구조 | ChatWindow 상단에 Chat | Cowork | Code 3탭 추가 | P0
작업 폴더 선택 | 채팅 하단 폴더 경로 표시 바 + 선택 버튼 | P0
권한 시스템 설계 | 3단계: Ask / Auto / Deny | P0
파일 컨텍스트 첨부 | 드래그&드롭 또는 버튼으로 파일 첨부 | P1

### 환경 제약: Docker/WSL 사용 불가

사내 보안 정책으로 Docker 및 WSL이 차단. 웹 검색 기능은 보안 정책상 구현하지 않습니다.
대안 전략: 오픈소스 핵심 로직을 C# 네이티브 코드로 재구현.

### Phase 2 — Cowork 탭 (v1.1.0) — C# 네이티브 에이전트 엔진

항목 | 설명 | 구현 방식
--- | --- | ---
에이전트 루프 엔진 | 계획→도구실행→관찰→재평가 반복 | C# AgentLoopService
기본 도구 (Tools) | FileRead/Write/Edit, Process, Glob, Grep | C# IAgentTool 인터페이스
내장 스킬 | ExcelSkill, DocxSkill, CsvSkill, MarkdownSkill, HtmlSkill, BatchSkill | 앱 내장 스킬 시스템
LLM 함수 호출 | Tool-use / Function-calling 프로토콜 | 기존 LlmService 확장
권한 승인 UI | 인라인 승인 UI + 경로 표시 배너 | C# PermissionService
컨텍스트 요약 | 토큰 초과 시 자동 요약 | C# ContextCondenser

### Phase 2.5 — Cowork 기능 고도화 (v1.1.x)

항목 | 설명 | 상태
--- | --- | ---
프리뷰 탭 시스템 | 다중 파일 프리뷰, 채팅↔프리뷰 드래그 리사이즈 | 완료
드롭다운 메뉴 패턴 | 컴팩트 드롭다운 + Popup 방식 | 완료
프리뷰 동적 갱신 | 에이전트 파일 수정 시 자동 새로고침 | 완료
문서 읽기 도구 | PDF, DOCX, XLSX, CSV, TXT 텍스트 추출 | 완료
폴더맵 도구 | 작업 폴더 디렉토리 트리 생성 | 완료

### Phase 3 — Code 탭 (v1.2.0) — C# 네이티브 코딩 에이전트

항목 | 설명 | 구현 방식
--- | --- | ---
코딩 에이전트 엔진 | 프롬프트→LLM→도구호출→결과피드백→검증 루프 | Phase 2 AgentLoopService 확장
코드 도구 시스템 | Glob, Grep, FileEdit, Bash, 코드 분석 | C# GlobTool, GrepTool, FileEditTool
코드 에디터 뷰 | 파일 트리 + 코드 뷰어 + diff 표시 | AvalonEdit NuGet
Git Snapshot | 매 작업 단계 자동 커밋 + undo/redo | LibGit2Sharp
LSP 진단 | 파일 수정 후 오류/경고 인라인 표시 | StreamJsonRpc (LSP JSON-RPC)
에이전트 모드 전환 | Plan 모드(읽기 전용) ↔ Build 모드(실제 수정) | 도구 권한 레벨로 구분
서브에이전트 | 복잡한 작업을 하위 에이전트에 위임 | SubAgentService + Task.WhenAll

### 공통 인프라 (전 Phase 공유)

항목 | 설명
--- | ---
작업 폴더 시스템 | Chat 하단에 폴더 선택 바. Cowork/Code 탭 전환 시 동일 폴더 유지
권한 3단계 | Ask(매번 확인) / Auto(자동 허용, 경고 배너) / Deny(완전 차단)
탭별 대화 분리 | Chat · Cowork · Code 탭별 대화 이력 완전 분리
외부 런타임 불필요 | 순수 C#/.NET 8.0으로 모든 기능 구현
웹 검색 차단 | 사내 보안 정책으로 에이전트의 외부 웹 접속 차단
NuGet 패키지만 사용 | LibGit2Sharp, AvalonEdit, StreamJsonRpc, FileSystemGlobbing

### 전체 스킬 목록 (확장 계획)

분류 | 우선순위 | 스킬 | 기능 | 보안
--- | --- | --- | --- | ---
문서 | P0 | ExcelSkill 고도화 | 셀 서식, 수식, 다중 시트 | 안전
P0 | DocxSkill | Word 문서 생성 | 안전
P1 | PptxSkill | 프레젠테이션 생성 | 안전
P0 | HtmlSkill 고도화 | JS 지원, Chart.js 차트, Mermaid | 안전
데이터 | P0 | CsvSkill | CSV 읽기/쓰기/필터링 | 안전
P1 | JsonSkill | JSON 쿼리/변환/검증 | 안전
P2 | SqliteSkill | 로컬 DB 생성/쿼리 | SQL 인젝션 방지
시각화 | P1 | ChartSkill | Bar/Line/Pie 차트 | 안전
P1 | MermaidSkill | Mermaid 다이어그램 | 안전
PDF | P1 | PdfReadSkill | PDF 텍스트 추출 | 읽기 전용
P2 | PdfCreateSkill | 보고서 PDF 생성 | 안전
유틸 | P0 | ZipSkill | 압축/해제 | Zip-slip 검증
P1 | DiffSkill | 두 파일 비교 | 읽기 전용
스크립트 | P0 | BatchSkill | .bat 파일 생성 (실행 X) | 시스템 명령 차단
P1 | PowerShellSkill | .ps1 스크립트 생성 | 시스템 명령 차단
개발 | P1 | GitSkill | status/log/diff/commit + 스냅샷 | 쓰기 작업 확인

Cowork · Code 탭 설정 항목 계획 (클릭하여 펼치기)

설정 항목 | Claude Desktop | AX Copilot 계획 | 상태
--- | --- | --- | ---
기본 파일 접근 권한 | Ask / Auto 선택 | Ask / Auto / Deny 3단계 | 완료
탭별 대화 분리 | 탭별 별도 대화 이력 | 탭별 대화 완전 분리 저장 | 완료
허용 도구 목록 | 도구별 활성/비활성 토글 | 설정에서 도구별 체크박스 | Phase 2
내장 스킬 | 없음 (Artifacts로 대체) | ExcelSkill, MarkdownSkill, HtmlSkill 등 | Phase 2
최대 에이전트 반복 횟수 | 내부 제한 (~100회) | 설정에서 25~100 지정 | Phase 2
자동 컨텍스트 요약 | 자동 (토큰 초과 시) | 임계치 조절 가능 | Phase 2
탭별 모델 선택 | 전역 모델 선택 | Chat / Cowork / Code 탭별 기본 모델 | Phase 2
Git 스냅샷 | 자동 커밋/되돌리기 | 작업 전 자동 스냅샷, 원클릭 롤백 | Phase 3
코드 에디터 설정 | 없음 | AvalonEdit 테마, 폰트/크기, 줄번호 | Phase 3

## 10. 공통 개발 지침

모든 기능 개발 시 아래 5가지 공통 원칙을 준수합니다.
지침 1~5 상세 (클릭하여 펼치기)

### 지침 1. 커스텀 UI 적극 개발

화면 디자인 개선을 위해 커스텀 화면을 적극 개발하여 사용합니다.

- WPF 기본 제공 컨트롤(ContextMenu, MessageBox, Dialog 등) 사용을 지양합니다.
- 다크/라이트 테마 모두에서 올바르게 동작하도록 DynamicResource 기반으로 구현합니다.

### 지침 2. 사용자-모델 상호 피드백 구조

사용자와 대화 모델이 상호 피드백하는 구조로 개발합니다.

단계 | AI 행동 | 사용자 피드백 방식
--- | --- | ---
계획 | 작업 목록 + 예상 결과 제시 | 승인 / 수정 / 취소 버튼
실행 | 도구 호출 전 확인 요청 | 실행 / 건너뛰기 버튼
검수 | 결과 미리보기 + 요약 표시 | 승인 / 재작업 / 메시지

### 지침 3. 최신 논문 및 오픈소스 적극 활용

최신 논문 및 오픈소스를 활용하여 기능 고도화를 적극 추진합니다.

- 에이전트 아키텍처, 도구 사용 패턴, RAG 기법 등 학술 연구 결과를 구현에 반영합니다.
- 새로운 기능 기획 시 관련 논문/오픈소스를 먼저 조사하고 벤치마크합니다.

### 지침 4. NuGet 고성능 라이브러리 적극 채용 + 포함배포

필요한 경우 고성능 NuGet 라이브러리를 적극 채용하고, 포함배포(self-contained)로 인트라넷 호환성을 보장합니다.

영역 | 현재 | 검토 대상 NuGet | 용도
--- | --- | --- | ---
DOCX/XLSX | DocumentFormat.OpenXml | 이미 채택 | Word/Excel 생성
PDF 생성 | 미구현 | QuestPDF, itext7 | PDF 보고서 직접 생성
Excel 고급 | OpenXml 직접 | ClosedXML | 더 간편한 Excel API
차트 이미지 | CSS 차트 | ScottPlot, LiveCharts2 | 차트를 이미지로 렌더링
마크다운 | 직접 파싱 | Markdig | MD→HTML 고품질 변환

### 지침 5. 마우스 오버 애니메이션 필수 적용

대화창에서 마우스 오버가 가능한 모든 버튼, 아이콘에 호버 시 애니메이션을 적용합니다.

대상 | 호버 효과 | 구현 방법
--- | --- | ---
GhostBtn (사이드바 버튼) | 1.08x 확대 | XAML Style.Triggers + ScaleTransform
TopTabBtn (탭 버튼) | 1.06x 확대 | XAML Style.Triggers + ScaleTransform
BtnSend, BtnStop, BtnAttach | 1.10~1.12x 확대 | 코드비하인드 ApplyHoverScaleAnimation()
BtnModelSelector | Y축 -2.5px 바운스 | 코드비하인드 ApplyHoverBounceAnimation()
액션 버튼 (복사, 편집 등) | 1.15x 확대 | CreateActionButton 내 적용

금지 사항: 인접 요소(탭 버튼, 가로 나열 메뉴, 툴바 아이콘 등)에 ScaleTransform 확대 효과 사용 금지 — 이웃 요소를 가리거나 레이아웃 깨짐. 대안: TranslateTransform(바운스), 배경색 변경, Opacity 변경 사용.
디자인 통일 원칙: 모든 선택 표시는 심플한 V 체크 Path(CreateSimpleCheck())로 통일. Segoe MDL2 Assets 폰트 체크마크 사용 금지. 라디오 버튼 형태(원+점) 사용 금지.
Part 2 — 완료된 고도화

## 11. Phase 2.5~7 (v1.1.0 ~ v1.2.1) 완료

- 에이전트 루프 엔진 (21개 도구), 10종 무드, 커스텀 프리셋
- 마크다운 렌더링 (테이블/인용/링크/취소선), 코드 블록 강화
- Code 탭 (5프리셋), DevEnvDetect/BuildRun/GitTool, Nexus 연동
- 8단계 워크플로우 시스템 프롬프트, AX.md 프로젝트 컨텍스트

## 12. Phase 7.5 (v1.2.2) 완료

- 무지개 글로우 효과 (런처/채팅), 커스텀 UI (컨텍스트 메뉴, InputDialog)
- 설정 구조 개편 (공통 탭 통합), 다크 테마 6종 가독성 개선
- 알림 오류 수정 (ShowTips/NotifyOnComplete), ViewModel 바인딩 정비

## 13. Phase 8 (v1.3.0) — 경쟁 서비스 벤치마크 기반 완료

# | 기능 | 구현 내용
--- | --- | ---
8-1 | MCP 클라이언트 | McpClientService (stdio/JSON-RPC), McpTool 래핑, 설정 UI
8-2 | 모델 폴백 | FallbackModels 순차 시도, 폴백 알림, 설정 편집 UI
8-3 | 대화 분기 | ParentId/BranchLabel, 우클릭 "여기서 분기", 사이드바 분기 아이콘
8-4 | 스플릿 뷰 | 자동 프리뷰 (에이전트 파일 수정 시), AutoPreview 설정
8-5 | 커맨드 팔레트 | Ctrl+Shift+P, 16개 명령, 한글 초성 검색
8-6 | 토큰 관리 | TokenEstimator (비용 추정, CJK 가중치), 상태바 비용 표시
8-7 | 에이전트 자율성 | 동적 반복 한도 (도구 15+ → 2배), 다단계 반성
8-8 | 개발자 모드 | 공통 탭, 비밀번호 보호, 스텝 승인
8-9 | 보안 감사 로그 | AuditLogService (JSON 영속화), 설정 토글 + 폴더 열기
추가 | 다중 서버 | RegisteredModel에 endpoint/apiKey 필드, 모델별 서버 라우팅

## 14. 개발 진행 로그 (v1.0.5 ~ v1.0.7)

v1.0.5 AI 서비스 전면 개선 (클릭하여 펼치기)

### 2026-03-28 — v1.0.5 AI 서비스 전면 개선

항목 | 상태 | 변경 내용
--- | --- | ---
LlmService JSON 파싱 안전 | 완료 | SafeParseJson 래퍼, 배열 길이 검사, API error 응답 감지
API 에러 분류 | 완료 | HTTP 상태 코드별 메시지 (401/403/404/429/500)
재시도 로직 | 완료 | PostJsonWithRetryAsync — 429/타임아웃 시 최대 2회
청크 타임아웃 | 완료 | ReadLineWithTimeoutAsync — 30초 무응답 시 스트림 종료
ChatStorageService 동기화 | 완료 | ReaderWriterLockSlim, 원자적 쓰기(tmp→rename)
ChatHandler 싱글턴 | 완료 | lock(_windowLock)으로 중복 창 생성 방지
ChatWindow UI 쓰로틀링 | 완료 | DispatcherTimer 50ms 간격 갱신, Brush 캐싱
Claude API 백엔드 | 완료 | Anthropic Messages API, 스트리밍(content_block_delta)
API 키 보안 분리 | 완료 | Ollama/vLLM=암호화, Gemini/Claude=평문
설정 UI AI 탭 | 완료 | 4종 서비스 선택, 서비스별 키 입력 안내 텍스트 분리

v1.0.6 채팅 서비스 품질 집중 개선 (클릭하여 펼치기)

### 2026-03-28 — v1.0.6 채팅 서비스 품질 집중 개선

항목 | 상태 | 변경 내용
--- | --- | ---
스트리밍 실시간 표시 수정 | 완료 | 청크 단위 갱신 + Dispatcher.InvokeAsync(Background) 방식
Shift+Enter 줄바꿈 | 완료 | AcceptsReturn="True" + PreviewKeyDown 핸들러
프롬프트 카드 워터마크 | 완료 | 워터마크(placeholder) 오버레이 표시
좋아요/싫어요 상호 배타 | 완료 | resetSibling/registerReset 콜백 패턴
디스크 용량 초과 자동 삭제 | 완료 | 드라이브 사용률 98% 초과 시 오래된 대화 자동 삭제
우클릭 컨텍스트 메뉴 | 완료 | 대화 제목에서 우클릭 시 바로 커스텀 메뉴 표시
대화 더블클릭 오류 수정 | 완료 | RemoveAt+Insert 패턴으로 안전 교체

v1.0.7 Chat 1단계 개발 (3탭 · 폴더 · 첨부 · 프리셋) (클릭하여 펼치기)

### 2026-03-28 — v1.0.7 Chat 1단계 개발

항목 | 상태 | 변경 내용
--- | --- | ---
Chat/Cowork/Code 3탭 UI | 완료 | 상단 RadioButton 탭을 Agent 단일 → 3탭으로 전환
작업 폴더 선택 바 | 완료 | 폴더 경로 표시 + 선택/해제 버튼. 최근 폴더 10개 저장
파일 컨텍스트 첨부 | 완료 | 파일 첨부 버튼 + 드래그 앤 드롭. 10MB 제한
권한 시스템 설계 | 완료 | 3단계 파일 접근 권한: Ask / Auto / Deny
대화 주제 프리셋 7종 | 완료 | 일반/경영/연구개발/제품분석/수율분석/제조기술/시스템
대화 내보내기 확장 | 완료 | Markdown + JSON + HTML + Text 4종 포맷
메시지 타임스탬프 | 완료 | 사용자/AI 메시지에 HH:mm 시간 표시
격려 알림 주기 타이머 | 완료 | System.Timers.Timer 기반 주기적 알림
커스텀 메시지 박스 | 완료 | 앱 전체 기본 MessageBox → 테마 통합 커스텀 다이얼로그

Part 3 — 다음 고도화 계획

## 15. Phase 9 — 차세대 고도화 (v1.5.0) ✓ 완료

#### Context (2026년 3월 기준)

- Claude Code: SWE-bench 80.8%, Opus 4.6 1M 컨텍스트, 서브에이전트, MCP 표준화, 원격 트리거
- Cursor: Tab 자동완성, Multi-file 에이전트, 백그라운드 에이전트, LSP 통합
- OpenCode: Go 기반 오픈소스 131K★, Tree-of-Thought, MCP, 벡터 DB 컨텍스트
- GitHub Copilot: 코딩 에이전트, 자동 PR, 이슈→코드 파이프라인
- Windsurf: Cascade 멀티스텝 에이전트, 브라우저 통합
- 논문: Agentic Coding Survey (arXiv 2025), SWE-Agent v2, CodeAct, Reflexion

#### 9-1. 코드 인텔리전스 (LSP 연동)

✓ 완료

갭: 코드 분석 없이 텍스트 기반으로만 코드 이해

구현: Language Server Protocol 클라이언트로 정의 이동, 참조 검색, 심볼 목록 활용

에이전트 도구: `lsp_goto_definition`, `lsp_find_references`, `lsp_symbols`

기술: OmniSharp (C#), typescript-language-server, pyright

#### 9-2. 병렬 에이전트 (서브에이전트) — ✓ 완료

높음

갭: 단일 에이전트가 순차 처리, 큰 작업에서 느림

구현:

- 메인 에이전트가 서브태스크 분할 → 서브에이전트 독립 실행 → 결과 병합
- 에이전트 도구: `spawn_agent`, `wait_agents`

패턴: Claude Code의 Agent tool, OpenCode의 parallel execution

#### 9-3. 코드 시맨틱 검색 (TF-IDF) — ✓ 완료

높음

갭: 대규모 프로젝트에서 관련 파일을 찾지 못함

- 프로젝트 파일을 임베딩 벡터로 인덱싱 → 질문 관련 파일 자동 검색
- 에이전트 도구: `search_codebase` (시맨틱 검색)

기술: SQLite-vec 또는 Hnswlib (로컬 벡터 DB, 서버 불필요)

#### 9-4. 자동 테스트 루프 — ✓ 완료

중간

구현: 코드 변경 감지 → 관련 테스트 자동 생성 → 실행 → 결과 기반 수정

에이전트 도구: `test_generate`, `test_run`, `test_analyze`

#### 9-5. 이벤트 트리거 에이전트 — ✓ 완료

중간

구현: 스케줄된 작업 실행 (코드 리뷰, 보안 스캔, 일일 보고서)

트리거 소스: 타이머, 파일 변경 감지, Git push/pull 이벤트

#### 9-6. PDF/문서 내보내기 — ✓ 완료

중간

구현: 대화 → PDF, 보고서 → Word/PDF 변환

기술: HTML → PDF (PuppeteerSharp 또는 wkhtmltopdf)

#### 9-7. 실시간 diff 뷰어 — ✓ 완료

중간

- 수정 전/후 비교 (라인 기반 diff, 색상 하이라이트)
- 프리뷰 패널에 diff 탭 자동 추가
- Accept/Reject 버튼으로 변경 승인/취소

#### 9-8. 대화 분기 트리 탐색기

낮음

구현: 트리 형태 대화 탐색기 (노드 = 메시지, 간선 = 분기, 현재 위치 하이라이트)

#### 9-9. 접근성 (A11y)

중간

구현: WPF AutomationPeer, 키보드 내비게이션, 고대비 모드 (WCAG 2.1 AA)

## 16. Phase 10 — 지능형 에이전트 (v1.5.0) ✓ 완료

# | 기능 | 구현 내용 | 상태
--- | --- | --- | ---
10-1 | 자동 모델 선택 (Auto Router) | 질문 유형 감지 → 최적 모델 자동 라우팅, 잠금 모드 | ✓ 완료
10-2 | 에이전트 메모리 (영속 학습) | 프로젝트 규칙/코딩 선호도 자동 기억, 대화 간 유지 | ✓ 완료
10-3 | 웹훅 트리거 확장 | Git push/PR, Jira/Slack 웹훅 → 에이전트 자동 실행 | 높음
10-4 | 멀티모달 입력 (Vision) | Ctrl+V 이미지 붙여넣기 → Gemini/Claude/Ollama/OpenAI Vision API | ✓ 완료
10-5 | 코드 검색 개선 | TF-IDF + SQLite 영속 인덱스, 증분 업데이트, 바이그램 | ✓ 완료
10-6 | 에이전트 훅 시스템 | 도구 호출 전/후 사용자 스크립트 실행 | ✓ 완료

## 17. Phase 11 — 생태계 확장 (v1.5.0) ✓ 완료

# | 기능 | 구현 내용 | 상태
--- | --- | --- | ---
11-1 | 스킬 시스템 | *.skill.md YAML 프론트매터 → 슬래시 명령 자동 등록. 3폴더 우선순위. 기본 스킬 3종 | ✓ 완료
11-2 | AI 코드 리뷰 자동화 | CodeReviewTool — diff_review/file_review/pr_summary. 정적 분석 + diff 파서 | ✓ 완료
11-3 | 드래그&드롭 AI 처리 | 파일 유형별 AI 액션 팝업 (코드/문서/데이터/이미지) | ✓ 완료
추가 | 프로젝트 지침 (AX.md) | ProjectRuleTool — read/append/write, 사용자 승인 | ✓ 완료
추가 | 슬래시 명령어 강화 | 탭별 필터링, /help 도움말 창, 12개 내장 명령 | ✓ 완료

## 18. Phase 12 — 스킬/커넥터 고도화 + 자율 에이전트 (v2.0+) 차기 개발

# | 기능 | 설명 | 우선순위
--- | --- | --- | ---
12-1 | 도구/커넥터 관리 UI | 설정 → 기타에 29개 도구 카드 리스트, 활성/비활성 토글, 권한 표시 | 최고
12-2 | SKILL.md 표준 호환 | agentskills.io 스펙 지원. *.skill.md + 폴더/SKILL.md 양쪽 호환. 도구명 매핑 | 최고
12-3 | 스킬 시각적 편집기 | 폼 기반 UI로 스킬 생성 (이름/설명/지시사항/도구 선택). SKILL.md 저장 | ✓ 완료
12-4 | 런타임 의존 스킬 | Python/Node 감지 → 고급 스킬 자동 활성화, 4종 번들 | ✓ 완료
12-5 | 워크플로우 분석기 | 에이전트 실행 실시간 시각화 창, AgentLogLevel 연동, 타이밍/토큰 추적 | ✓ 완료
12-6 | 스킬 갤러리 UI | 설치된 스킬 카드 뷰, 카테고리 필터, 내장/사용자 뱃지, 편집/복제/삭제 | ✓ 완료
12-7 | 스킬 가져오기/내보내기 | 로컬 zip 기반 스킬 패키지 설치/내보내기 (온라인 마켓 제외) | ✓ 완료
12-8 | 에이전트 팀 (다중 세션 협업) | 여러 에이전트 메시지 교환 + 분업 | 중간
12-9 | 오프라인 AI (로컬 SLM) | ONNX Runtime + phi-3, 서버 없이 번역/요약 | 낮음
12-10 | 음성 입출력 | Whisper STT + TTS | 낮음
12-11 | 접근성 (A11y) | WCAG 2.1 AA, 키보드 내비게이션 | 낮음

## 19. Phase 13 — 스킬 생태계 + 에이전트 분석 고도화 (v1.5.3+) 차기 개발

# | 기능 | 설명 | 우선순위
--- | --- | --- | ---
13-1 | 스킬 갤러리 UI | 설치된 스킬 카드 뷰, 카테고리 필터, 내장/사용자/고급 뱃지, 편집/복제/삭제 | ✓ 완료
13-2 | 스킬 시각적 편집기 | 폼 기반 UI로 스킬 생성 (이름/설명/지시사항/도구 선택), SKILL.md 저장 | ✓ 완료
13-3 | 스킬 가져오기/내보내기 | 로컬 zip 기반 스킬 패키지 설치/내보내기 | ✓ 완료
13-4 | 에이전트 실행 통계 대시보드 | 일별/주별 토큰 사용량, 도구 호출 빈도, 모델별 비용, 성공률 차트 | ✓ 완료
13-5 | AgentLogLevel 채팅 UI 연동 | 실행 이력 상세도를 코워크/코드 탭으로 이동, 채팅 본문 표시에 반영 | ✓ 완료

구현 순서: 13-A (13-5 + 13-3) → 13-B (13-1 + 13-4) → 13-C (13-2)

## 20. Phase 14 — 에이전트 도구 + 스킬 대확장 (v1.5.4+) ✓ 완료

#### 방향

- 에이전트 도구 확장: 25종 → 42종+. 실무 작업 80% 이상을 에이전트가 자율 수행
- 외부 검증 스킬 번들: Anthropic 공식, 커뮤니티 검증 스킬을 앱에 내장 (13개 → 29개)
- 앱 인프라: 가이드 시스템, 설정 UI 개선, About 보안

### 14-A. 데이터 처리 도구 (5종) ✓ 완료

# | 도구 | 설명 | 상태
--- | --- | --- | ---
14-A1 | json_tool | JSON 파싱·변환·검증·포맷팅 (jq 스타일 쿼리) | ✓ 완료
14-A2 | regex_tool | 정규식 테스트·추출·치환 (패턴 설명 포함) | ✓ 완료
14-A3 | diff_tool | 두 파일/텍스트 비교 → 통합 diff 출력 | ✓ 완료
14-A4 | base64_tool | Base64/URL 인코딩·디코딩 | ✓ 완료
14-A5 | hash_tool | 파일·텍스트 MD5/SHA256 해시 계산 | ✓ 완료

### 14-B. 시스템/환경 도구 (6종) ✓ 완료

# | 도구 | 설명 | 상태
--- | --- | --- | ---
14-B1 | clipboard_tool | Windows 클립보드 읽기·쓰기 (텍스트/이미지) | ✓ 완료
14-B2 | notify_tool | Windows 알림 전송 (장시간 작업 완료 알림) | ✓ 완료
14-B3 | env_tool | 환경변수 읽기·설정 (프로세스 범위) | ✓ 완료
14-B4 | zip_tool | 파일 압축(zip) / 해제 | ✓ 완료
14-B5 | log_search | Windows 이벤트 로그·애플리케이션 로그 검색 | 낮음
14-B6 | datetime_tool | 날짜·시간 변환, 타임존, 기간 계산 | ✓ 완료

### 14-C. 네트워크/API 도구

# | 도구 | 설명 | 상태
--- | --- | --- | ---
14-C1 | http_tool | 로컬/사내 HTTP API 호출 (GET/POST, JSON 파싱) | ✓ 완료
14-C2 | sql_tool | SQLite DB 쿼리 실행 (로컬 파일 기반) | ✓ 완료
14-C3 | network_tool | 포트 열림 확인, DNS 조회, ping (사내 망) | 낮음

### 14-E. UX 개선 (슬래시 명령어 고도화)

# | 항목 | 설명 | 상태
--- | --- | --- | ---
14-E1 | 슬래시 칩 표시 | 명령 선택 후 입력창에 파란 칩으로 표시 | ✓ 완료
14-E2 | 팝업 페이징 | 최대 N개 표시 + ▲▼ 네비게이션 | ✓ 완료
14-E3 | compact 명령어 | /init, /ctx, /pr, /todo, /clean, /refactor 등 | 차기

### 14-F. 외부 검증 스킬 내장 번들 (12종) ✓ 완료

# | 스킬 | 설명 | requires
--- | --- | --- | ---
14-F1 | code-scaffold | 프로젝트 구조 자동 생성 | —
14-F2 | meeting-minutes | 회의록 정리 (참석자/결정사항/액션아이템) | —
14-F3 | paper-review | 논문 요약, 강점/약점 분석 | —
14-F4 | data-visualize | 데이터 시각화 차트 (CSV/JSON → HTML) | —
14-F5 | docx-creator | Word 문서 자동 생성 | python
14-F6 | xlsx-analyzer | Excel 데이터 분석·피벗·차트 | python
14-F7 | pdf-processor | PDF 텍스트 추출·병합·분할 | python
14-F8 | pptx-creator | PPT 프레젠테이션 자동 생성 | node
14-F9 | report-writer | 구조화된 보고서 자동 작성 | —
14-F10 | api-docs | API 문서 자동 생성 | —
14-F11 | db-schema | DB 스키마 → ERD 생성 | —
14-F12 | commit-review | Git 커밋 메시지 검토 + 개선 | —

크기 영향: .skill.md 12개 ≈ 약 130KB (인스톨러 크기 영향 없음)

### 14-G. 앱 인프라 개선 (v1.5.3) ✓ 완료

# | 항목 | 설명
--- | --- | ---
14-G1 | 가이드 시스템 신설 | 사용자/개발자 가이드 분리, AES-256-CBC 암호화, GuideViewerWindow 내장 뷰어
14-G2 | 설정 UI 개선 | 독 바 탭 3번째 이동, 기타 탭 접기/열기 섹션
14-G3 | About 정보 보안 | 기술 스택 비노출, "Commander + Agent" 표시

## 21. Phase 15 — 멀티패스 문서 엔진 + 스킬/도구 대확장 (v1.6.0) ✓ 완료

# | 기능 | 구현 내용
--- | --- | ---
15-A | 멀티패스 문서 생성 | document_plan (개요 구조화) + document_assemble (섹션 조립). 3페이지+ 문서를 개요→섹션별 상세→조립 방식으로 품질 향상
15-B | PPT 네이티브 생성 | pptx_create — OpenXML 기반, Python 무의존, 5종 레이아웃, 4종 테마
15-C | 데이터 피벗/집계 | data_pivot — CSV/JSON 그룹화·필터·정렬·집계 (LINQ 기반)
15-D | 템플릿 렌더링 | template_render — Mustache 스타일 변수 치환·반복·조건부
15-E | 이미지 분석 | image_analyze — LLM 멀티모달 describe/OCR/데이터 추출/비교
15-F | 파일 변경 감지 | file_watch — 폴더 감시, 상대 시간(1h/7d), 유형별 통계
15-G | 텍스트 요약 | text_summarize — 청크 분할→핵심 추출 요약 (4종 스타일)
15-H | 내장 스킬 16종 추가 | 비즈니스 4종 + 데이터 3종 + 개발 3종 + 외부 검증 6종 — 총 29종
15-I | 설정 | EnableMultiPassDocument, MultiPassThresholdPages

도구: 34개 → 42개 (+8), 스킬: 13개 → 29개 (+16)

Part 4 — 차세대 고도화 계획 (v1.7.0 ~ v2.0)

#### 계획 기준 (2026년 3월)

- Claude Code: Plan mode, Hooks, 병렬 도구, 서브에이전트 팀
- Cursor: 프로젝트 규칙(.cursor/rules), 멀티파일 diff, 백그라운드 에이전트
- GitHub Copilot: 반복 테스트-수정, Workspace plan, 이슈→코드 파이프라인
- Windsurf: 자동 컨텍스트 수집, 영속 메모리, Cascade 멀티스텝
- 논문: Reflexion (자기 성찰), CodeAct (코드 기반 액션), SWE-Agent v2

## 22. Phase 16 — 에이전트 지능 강화 + 개발자 경험 (v1.7.0) 차기 개발

# | 기능 | 설명 | 우선순위
--- | --- | --- | ---
16-1 | 플랜 모드 (Plan Mode) | 에이전트가 도구 실행 전 구조화된 계획 생성 → 사용자 검토/편집/승인 → 승인 후 실행. `PlanMode`: off/always/auto | 최고
16-2 | 도구/커넥터 관리 UI | 설정에서 52개 도구 카테고리별 카드, 활성/비활성 토글, MCP 서버 연결 상태 표시 | 높음
16-3 | 프로젝트 규칙 시스템 | `.ax/rules/*.md` 디렉토리 — 파일 패턴·작업 유형별 규칙을 시스템 프롬프트에 자동 주입 | 높음
16-4 | 반복 테스트-수정 루프 | TestLoopTool `auto_fix` 모드 — 테스트 실행→실패 파싱→수정→재실행 자동 반복 | 높음
16-5 | 병렬 도구 실행 | LLM 다수 도구 동시 호출 시 의존성 분석 후 `Task.WhenAll()` 병렬 실행 | 중간
16-6 | SKILL.md 표준 완전 호환 | agentskills.io 스펙 전체 파싱, 외부↔내부 도구 이름 매핑 | 중간
16-R | 런타임 고급 스킬 확장 | 4종 추가: image-processor, diagram-generator, ocr-extract, data-visualize-adv (총 8종) | 중간

#### 16-1. 플랜 모드 (Plan Mode) — 핵심 기능

경쟁 대응: Claude Code Plan mode, GitHub Copilot Workspace plan

구현:

- `AppSettings.cs` — `PlanMode` 설정: off / always / auto
- `AgentLoopService.cs` — 첫 반복에서 plan-only 시스템 프롬프트 주입, 도구 호출 차단
- `ChatWindow.xaml` — PlanReviewPanel (계획 단계별 편집/순서변경/삭제 UI)
- `TaskDecomposer.cs` — 구조화된 JSON 계획 포맷 파싱 강화

#### 16-3. 프로젝트 규칙 시스템 (.ax/rules/)

경쟁 대응: Cursor `.cursor/rules`, Claude Code custom commands

구현:

- `ProjectRulesService.cs` — 규칙 로드, YAML 프론트매터 파싱 (`applies-to: *.cs`, `when: code-review`)
- `AgentLoopService.cs` — 컨텍스트에 맞는 규칙만 시스템 프롬프트에 자동 주입

## 23. Phase 17 — 심화 지능 + UX 혁신 (v1.8.0) 계획

# | 기능 | 설명 | 우선순위
--- | --- | --- | ---
17-1 | 자기 성찰 (Self-Reflection) | 도구 실패 시 구조화된 성찰 프롬프트 주입, 에러 패턴 추적 (Reflexion 패턴) | 최고
17-2 | 작업 기억 (Working Memory) | 대화 압축 시에도 유지되는 구조화된 태스크 상태 (현재 작업, 참조 파일, 의사결정 로그) | 높음
17-3 | 멀티파일 통합 Diff 뷰 | 에이전트 다수 파일 수정 시 전체 변경사항을 하나의 패널에서 파일별/헌크별 승인/거부 | 높음
17-4 | 자동 컨텍스트 수집 | 사용자 메시지에서 파일명 감지 → 자동 읽기, Git diff, 관련 코드 검색 → 컨텍스트 주입 | 중간
17-5 | MCP HTTP+SSE 전송 | stdio 전용 → HTTP+SSE 트랜스포트 추가, 원격 MCP 서버 연결 지원 | 중간
17-6 | 대화 요약 온디맨드 | `/summarize-chat` 슬래시 명령으로 현재 대화 구조화 요약 | 낮음

#### 17-1. 자기 성찰 (Self-Reflection) — 핵심 기능

현황: 현재 단순 재시도만 존재 (`consecutiveErrors` 카운터)

구현:

- `ReflectionService.cs` — 에러 패턴 추적, 성찰 프롬프트 생성
- `AgentLoopService.cs` — 에러 후 성찰 주입
- `IAgentTool.cs` — `AgentEventType.Reflecting` 추가

#### 17-2. 작업 기억 (Working Memory)

경쟁 대응: Windsurf persistent memory, CrewAI structured memory layers

구현:

- `WorkingMemoryService.cs` — 구조화된 태스크 상태 추적
- `ContextCondenser.cs` — 압축 시 작업 기억 보존

## 24. Phase 18 — 에코시스템 + 차별화 (v2.0) 계획

# | 기능 | 설명 | 우선순위
--- | --- | --- | ---
18-1 | 에이전트 팀 (Multi-Agent) | 특화 에이전트(코드리뷰, 문서작성, 보안감사)가 메시지 버스로 협업, 공동 작업 수행 | 최고
18-2 | 플러그인 갤러리 + 레지스트리 | 로컬 NAS/Git 레지스트리 기반 플러그인/스킬 탐색, 설치, 업데이트 인앱 갤러리 | 높음
18-3 | AI 스니펫 | `;email {수신자} {주제}` → LLM이 이메일 초안 자동 생성. 기존 스니펫에 AI 확장 | 중간
18-4 | 파라미터 퀵링크 | `jira {티켓번호}` → URL 템플릿 변수 치환 (사내 도구 빠른 접근) | 중간
18-5 | 오프라인 AI (ONNX Runtime) | 서버 없이 번역/요약/분류 가능한 로컬 소형 모델, 모델 별도 배포 | 낮음
18-6 | 웹 검색 AI 요약 | `?` 검색 결과를 AI로 요약하여 런처에 표시 | 낮음

#### 18-1. 에이전트 팀 (Multi-Agent) — 차별화 핵심

경쟁 대응: GitHub Copilot workspace agents, CrewAI role-based teams

구현:

- `AgentTeamService.cs` — 팀 오케스트레이션
- `AgentMessageBus.cs` — 에이전트 간 통신
- `AgentTeamConfig.cs` — 팀 구성 모델
- `ChatWindow.xaml` — 팀 모드 UI

## 25. 기존 기능 보완 (v1.3.0~v1.5.0 완료) ✓ 완료

항목 | 상태
--- | ---
MCP UI (서버 관리 화면) | ✓ 비주얼 카드 리스트 + 활성/비활성 토글 + 서버 추가/삭제 UI 구현
대화 분기 트리 UI | ✓ 사이드바에 들여쓰기(16px) + 보라색 분기 아이콘 표시
스플릿 뷰 diff | ✓ DiffService (LCS 기반 라인 diff) 구현 — Added/Removed/Equal 분류
english.json 확장 | ✓ 101 → 150개 완료
movies.json 확장 | ✓ ~90 → 150개 완료
McpClientService nullable warning | ✓ CS8603 해결 — 전체 경고 0개, 오류 0개
대화별 하단 설정 저장 | ✓ 권한/데이터활용/무드를 대화별 독립 저장/복원
vLLM 다중 서버 지원 | ✓ RegisteredModel에 endpoint/apiKey 필드, 모델별 서버 라우팅
설정창 OutlineHoverBtn 크래시 | ✓ 인라인 스타일로 교체
Auto 권한 경고 중복 표시 | ✓ 기존 대화에서 Auto였으면 경고 숨김 처리
ShowTips/NotifyOnComplete 바인딩 | ✓ SettingsViewModel 속성 추가, 설정값 저장 정상화