Files
AX-Copilot/docs/AGENT_ROADMAP.html

1635 lines
114 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AX Agent 대화 서비스 고도화 — 종합 계획 및 코드 리뷰</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Pretendard', 'Segoe UI', 'Malgun Gothic', sans-serif;
font-size: 15px;
color: #1a1a2e;
background: #f8f9fe;
line-height: 1.7;
}
.wrap { max-width: 900px; margin: 0 auto; padding: 40px 20px 80px; }
.header {
background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%);
border-radius: 20px;
padding: 48px 40px 40px;
margin-bottom: 40px;
color: white;
}
.header .badge {
display: inline-block;
background: rgba(255,255,255,0.15);
border: 1px solid rgba(255,255,255,0.25);
border-radius: 20px;
padding: 4px 14px;
font-size: 12px;
font-weight: 600;
margin-bottom: 16px;
}
.header h1 { font-size: 26px; font-weight: 800; line-height: 1.3; margin-bottom: 12px; }
.header .subtitle { font-size: 14px; color: rgba(255,255,255,0.65); line-height: 1.6; }
.header .tag {
display: inline-block;
background: #4b5efc;
border-radius: 6px;
padding: 2px 10px;
font-size: 12px;
font-weight: 700;
margin-top: 14px;
}
.part-title {
font-size: 22px; font-weight: 800; color: #fff;
margin: 48px 0 20px; padding: 16px 20px;
background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%);
border-radius: 12px; line-height: 1.3;
}
.section-title {
font-size: 20px; font-weight: 800; color: #1a1b2e;
margin: 40px 0 0; padding: 14px 14px 14px 18px;
border-left: 4px solid #4b5efc; line-height: 1.3;
cursor: pointer; user-select: none;
background: #f0f2ff; border-radius: 0 10px 10px 0;
display: flex; align-items: center; justify-content: space-between;
}
.section-title::after {
content: '\25BC'; font-size: 11px; color: #8888aa;
transition: transform 0.2s;
}
.section-title.collapsed::after { content: '\25B6'; }
.section-title + .section-body { margin-bottom: 16px; }
.section-title.collapsed + .section-body { display: none; }
.section-desc {
font-size: 13.5px; color: #6b6b8a; margin-bottom: 14px;
padding: 10px 16px; background: #eef1ff;
border-radius: 8px; border-left: 3px solid #4b5efc;
}
table { width: 100%; border-collapse: collapse; background: white; font-size: 13.5px; margin-bottom: 20px; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 12px rgba(75,94,252,0.08); }
th { background: #2e3060; color: white; padding: 12px 16px; text-align: left; font-weight: 600; }
td { padding: 10px 16px; border-bottom: 1px solid #f0f0f8; }
tr:last-child td { border-bottom: none; }
tr:hover { background: #f5f6ff; }
.severity-high { color: #e53e3e; font-weight: 700; }
.severity-med { color: #dd6b20; font-weight: 700; }
.severity-low { color: #38a169; font-weight: 700; }
.card {
background: white; border-radius: 12px; padding: 20px;
margin-bottom: 16px; box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.card h3 { font-size: 16px; margin-bottom: 8px; color: #2e3060; }
.card .file { font-family: 'Consolas', monospace; font-size: 12px; color: #4b5efc; margin-bottom: 8px; }
.card ul { margin-left: 20px; }
.card ul li { margin-bottom: 4px; }
.status-done { color: #38a169; }
.status-todo { color: #e53e3e; }
.status-wip { color: #dd6b20; }
code { background: #eef1ff; padding: 2px 6px; border-radius: 4px; font-family: Consolas, monospace; font-size: 12px; }
.footer {
text-align: center; padding: 32px 20px; margin-top: 40px;
border-top: 1px solid #e0e0ec; color: #8888aa; font-size: 12px;
}
.fold { margin: 20px 0; }
.fold summary {
cursor: pointer; font-size: 15px; font-weight: 700; color: #4b5efc;
padding: 12px 16px; background: #eef1ff; border-radius: 10px;
list-style: none; user-select: none;
}
.fold summary::-webkit-details-marker { display: none; }
.fold summary::before { content: '\25B6 '; font-size: 11px; display: inline-block; }
.fold[open] summary::before { content: '\25BC '; }
.done-badge {
display: inline-block; background: #38a169; color: white;
font-size: 11px; font-weight: 700; border-radius: 4px;
padding: 1px 8px; margin-left: 8px; vertical-align: middle;
}
/* Phase badges */
.badge-completed { display:inline-block; background:rgba(52,211,153,0.15); color:#16a34a; border:1px solid rgba(52,211,153,0.3); padding:2px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.badge-planned { display:inline-block; background:rgba(96,165,250,0.15); color:#3b82f6; border:1px solid rgba(96,165,250,0.3); padding:2px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.badge-in-progress { display:inline-block; background:rgba(251,191,36,0.15); color:#d97706; border:1px solid rgba(251,191,36,0.3); padding:2px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.badge-done { display:inline-block; background:rgba(16,185,129,0.15); color:#059669; border:1px solid rgba(16,185,129,0.3); padding:2px 10px; border-radius:20px; font-size:12px; font-weight:600; }
/* Feature cards for Phase 9 */
.feature-card {
background: #f8f9fe; border: 1px solid #e0e0ec; border-radius: 10px;
padding: 16px 20px; margin-bottom: 12px;
}
.feature-card:hover { border-color: #4b5efc; }
.feature-card h4 { font-size: 15px; font-weight: 700; color: #2e3060; margin-bottom: 6px; }
.feature-card p { color: #6b6b8a; font-size: 13px; margin-bottom: 4px; }
.feature-card ul { margin-left: 20px; }
.feature-card li { color: #6b6b8a; font-size: 13px; margin-bottom: 3px; }
.feature-card strong { color: #1a1a2e; }
.priority { display:inline-block; padding:2px 8px; border-radius:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; }
.priority-highest { background:rgba(248,113,113,0.15); color:#e53e3e; border:1px solid rgba(248,113,113,0.3); }
.priority-high { background:rgba(251,146,60,0.15); color:#dd6b20; border:1px solid rgba(251,146,60,0.3); }
.priority-medium { background:rgba(251,191,36,0.15); color:#d97706; border:1px solid rgba(251,191,36,0.3); }
.priority-low { background:rgba(156,163,175,0.15); color:#6b7280; border:1px solid rgba(156,163,175,0.3); }
.priority-longterm { background:rgba(139,92,246,0.15); color:#7c3aed; border:1px solid rgba(139,92,246,0.3); }
/* Context box */
.context-box {
background: linear-gradient(135deg, rgba(75,94,252,0.06), rgba(124,58,237,0.06));
border: 1px solid rgba(75,94,252,0.2);
border-radius: 10px; padding: 16px 20px; margin-bottom: 16px;
}
.context-box h4 { color: #4b5efc; margin-bottom: 8px; font-size: 14px; }
.context-box li { color: #6b6b8a; font-size: 13px; margin-bottom: 4px; }
.context-box strong { color: #1a1a2e; }
@media print {
body { background: #fff; }
.header { page-break-after: always; }
.fold[open] summary::before, .fold summary::before { content: ''; }
details { display: block !important; }
details > summary { display: none; }
}
</style>
</head>
<body>
<div class="wrap">
<!-- ══════════════════════════════════════════════════════════ -->
<!-- HEADER -->
<div class="header">
<div class="badge">COMPREHENSIVE PLAN &amp; CODE REVIEW</div>
<h1>AX Agent 대화 서비스 고도화<br>— 종합 계획 및 코드 리뷰</h1>
<p class="subtitle">
코드 리뷰 현황 + 완료된 고도화 + 차기 로드맵을 하나의 문서로 통합<br>
LlmService &middot; ChatWindow &middot; ChatStorageService &middot; AgentLoopService &middot; McpClientService
</p>
<div class="tag">2026-03-30 &middot; v1.6.1</div>
</div>
<!-- ══════════════════════════════════════════════════════════ -->
<!-- 목차 -->
<div style="background:rgba(30,34,60,0.95);border:1px solid rgba(75,94,252,0.5);border-radius:12px;padding:18px 26px;margin:0 0 24px 0;">
<h3 style="margin:0 0 10px 0;font-size:15px;font-weight:800;color:#fff;letter-spacing:0.3px;">목차 (Table of Contents)</h3>
<div style="font-size:13px;line-height:2.2;color:#cbd5e1;">
<p style="margin:8px 0 4px;font-weight:700;color:#60a5fa;">Part 1 — 코드 리뷰 및 현황</p>
<ol style="margin:0;padding-left:20px;">
<li><a href="#p1-status" style="color:#fff;text-decoration:none;font-weight:600;">현재 구현 상태</a></li>
<li><a href="#p1-arch" style="color:#fff;text-decoration:none;font-weight:600;">아키텍처 개요</a></li>
<li><a href="#p1-backend" style="color:#fff;text-decoration:none;font-weight:600;">지원 백엔드</a></li>
<li><a href="#p1-files" style="color:#fff;text-decoration:none;font-weight:600;">파일별 상세 분석</a></li>
<li><a href="#p1-compare" style="color:#fff;text-decoration:none;font-weight:600;">경쟁 서비스 비교</a></li>
<li><a href="#p1-claude" style="color:#fff;text-decoration:none;font-weight:600;">Claude Desktop 분석</a></li>
<li><a href="#p1-opensource" style="color:#fff;text-decoration:none;font-weight:600;">오픈소스 코어 분석</a></li>
<li><a href="#p1-research" style="color:#fff;text-decoration:none;font-weight:600;">에이전트 논문 및 오픈소스 심층 분석</a></li>
<li><a href="#p1-devplan" style="color:#fff;text-decoration:none;font-weight:600;">3탭 개발 로드맵</a></li>
<li><a href="#p1-guidelines" style="color:#fff;text-decoration:none;font-weight:600;">공통 개발 지침</a></li>
</ol>
<p style="margin:12px 0 4px;font-weight:700;color:#34d399;">Part 2 — 완료된 고도화</p>
<ol start="11" style="margin:0;padding-left:20px;">
<li><a href="#p2-phase25-7" style="color:#fff;text-decoration:none;font-weight:600;">Phase 2.5~7 (v1.1.0 ~ v1.2.1) 완료</a></li>
<li><a href="#p2-phase75" style="color:#fff;text-decoration:none;font-weight:600;">Phase 7.5 (v1.2.2) 완료</a></li>
<li><a href="#p2-phase8" style="color:#fff;text-decoration:none;font-weight:600;">Phase 8 (v1.3.0) 완료</a></li>
<li><a href="#p2-devlog" style="color:#fff;text-decoration:none;font-weight:600;">개발 진행 로그 (v1.0.5~v1.0.7)</a></li>
</ol>
<p style="margin:12px 0 4px;font-weight:700;color:#60a5fa;">Part 3 — 다음 고도화 계획</p>
<ol start="15" style="margin:0;padding-left:20px;">
<li><a href="#p3-phase9" style="color:#fff;text-decoration:none;font-weight:600;">Phase 9 — 차세대 고도화 (v1.5.0)</a></li>
<li><a href="#p3-phase10" style="color:#fff;text-decoration:none;font-weight:600;">Phase 10 — 지능형 에이전트 (v1.5.0)</a></li>
<li><a href="#p3-phase11" style="color:#fff;text-decoration:none;font-weight:600;">Phase 11 — 생태계 확장 (v1.5.0)</a></li>
<li><a href="#p3-phase12" style="color:#fff;text-decoration:none;font-weight:600;">Phase 12 — 자율 에이전트 (v2.0+)</a></li>
<li><a href="#p3-phase13" style="color:#fff;text-decoration:none;font-weight:600;">Phase 13 — 스킬 생태계 + 분석 고도화</a></li>
<li><a href="#p3-phase14" style="color:#fff;text-decoration:none;font-weight:600;">Phase 14 — 에이전트 도구 + 스킬 대확장 (v1.5.4)</a></li>
<li><a href="#p3-phase15" style="color:#fff;text-decoration:none;font-weight:600;">Phase 15 — 멀티패스 문서 엔진 (v1.6.0)</a></li>
</ol>
<p style="margin:12px 0 4px;font-weight:700;color:#f59e0b;">Part 4 — 차세대 고도화 계획</p>
<ol start="23" style="margin:0;padding-left:20px;">
<li><a href="#p4-phase16" style="color:#fff;text-decoration:none;font-weight:600;">Phase 16 — 에이전트 지능 강화 (v1.7.0)</a></li>
<li><a href="#p4-phase17" style="color:#fff;text-decoration:none;font-weight:600;">Phase 17 — 심화 지능 + UX 혁신 (v1.8.0)</a></li>
<li><a href="#p4-phase18" style="color:#fff;text-decoration:none;font-weight:600;">Phase 18 — 에코시스템 + 차별화 (v2.0)</a></li>
<li><a href="#p3-debt" style="color:#fff;text-decoration:none;font-weight:600;">기술 부채</a></li>
</ol>
</div>
</div>
<!-- ██████████████████████████████████████████████████████████ -->
<!-- PART 1: 코드 리뷰 및 현황 -->
<!-- ██████████████████████████████████████████████████████████ -->
<div class="part-title">Part 1 — 코드 리뷰 및 현황</div>
<!-- ── 1. 현재 구현 상태 ── -->
<h2 id="p1-status" class="section-title">1. 현재 구현 상태</h2>
<div class="section-desc">
백엔드(LlmService, ChatStorageService, CryptoService)는 100% 구현 완료.<br>
설정 UI(SettingsWindow AI 탭)와 DEPLOY_STUB 해제 완료. 핵심 기능은 즉시 사용 가능 상태.
</div>
<table>
<tr><th>파일</th><th>라인 수</th><th>상태</th><th>역할</th></tr>
<tr><td><code>LlmService.cs</code></td><td>362</td><td class="status-done">완료</td><td>Ollama/vLLM/Gemini 3종 LLM API 통신</td></tr>
<tr><td><code>ChatStorageService.cs</code></td><td>260+</td><td class="status-done">완료</td><td>AES-256-GCM 암호화 대화 저장/로드 + 디스크 용량 관리</td></tr>
<tr><td><code>ChatWindow.xaml(.cs)</code></td><td>209 + 650+</td><td class="status-done">완료</td><td>채팅 UI &middot; 스트리밍 &middot; 피드백 &middot; 워터마크</td></tr>
<tr><td><code>ChatHandler.cs</code></td><td>154</td><td class="status-done">완료</td><td>"!" 프리픽스 핸들러</td></tr>
<tr><td><code>SettingsWindow (AI 탭)</code></td><td>~120</td><td class="status-done">완료</td><td>서비스/모델/키/온도 설정 UI</td></tr>
<tr><td><code>CryptoService.cs</code></td><td>200+</td><td class="status-done">완료</td><td>Portable + Local 이중 암호화</td></tr>
</table>
<!-- ── 2. 아키텍처 개요 ── -->
<h2 id="p1-arch" class="section-title">2. 아키텍처 개요</h2>
<div class="card">
<h3>메시지 흐름</h3>
<pre style="font-family:Consolas;font-size:13px;background:#f0f2ff;padding:16px;border-radius:8px;overflow-x:auto;">
사용자 입력 (! 예약어)
ChatHandler.GetItemsAsync()
↓ (Enter)
ChatHandler.ExecuteAsync() → ChatWindow 열기
사용자 메시지 입력 → SendMessageAsync()
LlmService.StreamAsync() / SendAsync()
백엔드 선택 (Ollama / vLLM / Gemini)
HTTP 요청 (Messages + SystemPrompt)
스트리밍 응답 → UI 실시간 갱신
ChatStorageService.Save() (AES-256-GCM 암호화)
</pre>
</div>
<div class="card">
<h3>암호화 구조</h3>
<table>
<tr><th>용도</th><th>알고리즘</th><th>키 파생</th><th>이식성</th></tr>
<tr><td>설정값 (API 키)</td><td>AES-256-CBC</td><td>PBKDF2(AppSeed, 100K)</td><td>모든 PC 동일</td></tr>
<tr><td>대화 파일 (.axchat)</td><td>AES-256-GCM</td><td>DPAPI 마스터 키</td><td>해당 PC만</td></tr>
</table>
</div>
<div class="card">
<h3>3탭 통합 아키텍처 (C# 네이티브)</h3>
<pre style="font-family:Consolas;font-size:13px;background:#f0f2ff;padding:16px;border-radius:8px;overflow-x:auto;">
┌─────────────────────────────────────────────────────────────┐
│ 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 스냅샷 │
└─────────────────────────────────────────────────────────────┘
</pre>
</div>
<!-- ── 3. 지원 백엔드 ── -->
<h2 id="p1-backend" class="section-title">3. 지원 백엔드</h2>
<table>
<tr><th>서비스</th><th>API 형식</th><th>기본 엔드포인트</th><th>API 키</th><th>키 보안</th></tr>
<tr><td>Ollama</td><td>POST /api/chat</td><td>http://localhost:11434</td><td>선택</td><td>AES-256-CBC 암호화</td></tr>
<tr><td>vLLM</td><td>POST /v1/chat/completions</td><td>http://localhost:8000</td><td>선택</td><td>AES-256-CBC 암호화</td></tr>
<tr><td>Gemini</td><td>Google GenerateContent API</td><td>generativelanguage.googleapis.com</td><td>필수</td><td>평문 (사내 연결 제한)</td></tr>
<tr><td>Claude</td><td>Anthropic Messages API</td><td>api.anthropic.com</td><td>필수</td><td>평문 (사내 연결 제한)</td></tr>
</table>
<!-- ── 4. 파일별 상세 분석 ── -->
<h2 id="p1-files" class="section-title">4. 파일별 상세 분석</h2>
<details class="fold">
<summary>발견된 이슈 및 해결 현황 (클릭하여 펼치기)</summary>
<table>
<tr><th>심각도</th><th>파일</th><th>이슈</th><th>해결</th></tr>
<tr><td class="severity-high">HIGH</td><td>LlmService</td><td>JSON 파싱 시 null 체크 없음</td><td><span class="done-badge">해결</span> SafeParseJson 래퍼</td></tr>
<tr><td class="severity-high">HIGH</td><td>LlmService</td><td>API 에러 시 상세 컨텍스트 부재</td><td><span class="done-badge">해결</span> ClassifyHttpError</td></tr>
<tr><td class="severity-high">HIGH</td><td>ChatWindow</td><td>Messages 컬렉션 멀티스레드 접근</td><td><span class="done-badge">해결</span> _convLock</td></tr>
<tr><td class="severity-high">HIGH</td><td>ChatWindow</td><td>스트리밍 매 청크 UI 갱신 포화</td><td><span class="done-badge">해결</span> 50ms 쓰로틀링</td></tr>
<tr><td class="severity-high">HIGH</td><td>ChatStorage</td><td>Save/Load/Delete 동시 실행 경쟁</td><td><span class="done-badge">해결</span> ReaderWriterLockSlim</td></tr>
<tr><td class="severity-med">MEDIUM</td><td>LlmService</td><td>스트리밍 타임아웃 고정</td><td><span class="done-badge">해결</span> 30초 청크 타임아웃</td></tr>
<tr><td class="severity-med">MEDIUM</td><td>ChatStorage</td><td>원자적 쓰기 미사용</td><td><span class="done-badge">해결</span> tmp→rename</td></tr>
<tr><td class="severity-med">MEDIUM</td><td>ChatHandler</td><td>창 생성 스레드 안전 없음</td><td><span class="done-badge">해결</span> lock(_windowLock)</td></tr>
<tr><td class="severity-low">LOW</td><td>LlmService</td><td>Gemini 스트리밍 파싱 오류 무시</td><td><span class="done-badge">해결</span> LogService.Warn</td></tr>
<tr><td class="severity-low">LOW</td><td>ChatWindow</td><td>Brush 할당 캐싱 안 됨</td><td><span class="done-badge">해결</span> CacheBrushes()</td></tr>
</table>
</details>
<details class="fold">
<summary>파일별 상세 분석 (클릭하여 펼치기)</summary>
<div class="card">
<h3>LlmService.cs</h3>
<div class="file">src/AxCommander/Services/LlmService.cs</div>
<ul>
<li><strong>JSON 파싱 안전성</strong> — 모든 API 응답에 SafeParseJson 래퍼 적용, 배열 길이 검증</li>
<li><strong>에러 메시지</strong> — ClassifyHttpError로 401/403/404/429/500 분류</li>
<li><strong>재시도</strong> — PostJsonWithRetryAsync에서 429/타임아웃 시 최대 2회</li>
<li><strong>청크 타임아웃</strong> — ReadLineWithTimeoutAsync 30초</li>
<li><strong>Gemini 파싱 오류</strong> — catch에서 LogService.Warn 기록</li>
</ul>
</div>
<div class="card">
<h3>ChatWindow.xaml.cs</h3>
<div class="file">src/AxCommander/Views/ChatWindow.xaml.cs</div>
<ul>
<li><strong>UI 쓰로틀링</strong> — DispatcherTimer 50ms 간격으로 스트리밍 텍스트 갱신</li>
<li><strong>스레드 안전</strong> — _convLock으로 Messages 접근 보호</li>
<li><strong>Brush 캐싱</strong> — CacheBrushes()에서 로드 시 한 번만 조회</li>
<li><strong>창 닫기 보호</strong> — Closed 이벤트에서 _streamCts.Cancel() 호출</li>
</ul>
</div>
<div class="card">
<h3>ChatStorageService.cs</h3>
<div class="file">src/AxCommander/Services/ChatStorageService.cs</div>
<ul>
<li><strong>파일 동기화</strong> — ReaderWriterLockSlim으로 Save/Load/Delete 보호</li>
<li><strong>원자적 쓰기</strong> — .tmp 파일에 쓴 뒤 rename</li>
<li><strong>에러 로깅</strong> — catch에서 LogService.Warn으로 구체적 파일명 기록</li>
</ul>
</div>
<div class="card">
<h3>ChatHandler.cs</h3>
<div class="file">src/AxCommander/Handlers/ChatHandler.cs</div>
<ul>
<li><strong>싱글턴</strong> — lock(_windowLock)으로 중복 ChatWindow 생성 방지</li>
</ul>
</div>
</details>
<details class="fold">
<summary>크로스 체크 오류 검증 절차 (클릭하여 펼치기)</summary>
<div class="card">
<div style="padding:12px 16px;background:#FEF2F2;border-left:3px solid #EF4444;border-radius:0 8px 8px 0;font-size:13px;margin-bottom:12px;">
<strong>원칙:</strong> 하나의 LLM 백엔드에서 오류가 발생하면, <strong>반드시 다른 모든 백엔드에서도 동일 문제가 발생하는지 크로스 체크</strong>한 후 수정합니다.
</div>
<table>
<tr><th>검증 항목</th><th>Claude</th><th>Gemini</th><th>Ollama</th><th>vLLM</th></tr>
<tr><td>Function Calling 응답 파싱</td><td>tool_use 블록</td><td>functionCall 블록</td><td>tool_calls 배열</td><td>tool_calls 배열</td></tr>
<tr><td>Tool Result 메시지 구성</td><td>tool_result content</td><td>functionResponse</td><td>tool role message</td><td>tool role message</td></tr>
<tr><td>Assistant tool_use 블록 재전송</td><td>_tool_use_blocks JSON</td><td>_tool_use_blocks JSON</td><td>_tool_use_blocks JSON</td><td>_tool_use_blocks JSON</td></tr>
<tr><td>Array 파라미터 items 스키마</td><td>불필요 (자동 추론)</td><td><strong>필수</strong></td><td>불필요</td><td>불필요</td></tr>
<tr><td>GetProperty 안전성</td><td colspan="4" style="text-align:center;color:#16a34a;">전체 TryGetProperty로 교체 완료 (2026-03-28)</td></tr>
</table>
<p style="font-size:13px;color:#6b6b8a;margin-top:12px;">
<strong>크로스 체크 절차:</strong><br>
1. 오류 발생 시 해당 백엔드의 API 응답 JSON 구조를 로그로 확인<br>
2. 동일 시나리오를 다른 3개 백엔드에서 테스트<br>
3. JSON 파싱 코드에서 GetProperty → TryGetProperty 전환 여부 확인<br>
4. 응답 구조가 다른 부분(예: Gemini=functionCall vs Claude=tool_use)은 별도 처리 검증<br>
5. 수정 후 전체 백엔드 빌드 + 기본 도구 호출 테스트
</p>
</div>
</details>
<!-- ── 5. 경쟁 서비스 비교 ── -->
<h2 id="p1-compare" class="section-title">5. 경쟁 서비스 심층 비교</h2>
<div class="section-desc">
ChatGPT, Claude, Open WebUI, LobeChat 등 주요 서비스와의 기능/디자인/성능 격차 분석.
</div>
<details class="fold">
<summary>UX/디자인 리더십 비교 + 다크 모드 가이드 (클릭하여 펼치기)</summary>
<div class="card">
<h3>UX/디자인 리더십 비교</h3>
<table>
<tr><th>영역</th><th>업계 리더</th><th>AX Copilot 현황</th><th>격차</th></tr>
<tr><td>전체 UX 완성도</td><td>Claude (프로젝트/아티팩트)</td><td>기본 채팅 UI</td><td class="severity-high">HIGH</td></tr>
<tr><td>마크다운/코드 렌더링</td><td>ChatGPT, Claude, LobeChat</td><td>플레인 텍스트만</td><td class="severity-high">HIGH</td></tr>
<tr><td>이미지 생성/분석</td><td>ChatGPT (DALL-E/GPT Image)</td><td>미지원</td><td class="severity-med">MEDIUM</td></tr>
<tr><td>음성 대화</td><td>ChatGPT (Advanced Voice)</td><td>미지원</td><td class="severity-low">LOW</td></tr>
<tr><td>다크 모드 색상 품질</td><td>Claude, LobeChat</td><td>테마 리소스 연동 완료</td><td class="status-done">해결</td></tr>
<tr><td>사이드바 + 아이콘 바</td><td>Claude Desktop</td><td>구현 완료</td><td class="status-done">해결</td></tr>
<tr><td>멀티 LLM 지원</td><td>Open WebUI, LibreChat</td><td>4종 지원</td><td class="status-done">해결</td></tr>
<tr><td>암호화 저장</td><td>없음 (전 서비스)</td><td>AES-256-GCM</td><td class="status-done">우위</td></tr>
</table>
</div>
<div class="card">
<h3>다크 모드 디자인 가이드 (2026 업계 표준)</h3>
<ul>
<li><strong>순수 검정(#000) 금지</strong> — 배경은 #0D0D14~#1A1B2E 사용, 눈 피로 감소</li>
<li><strong>대비율 WCAG 4.5:1 이상</strong> — 본문 텍스트, 버튼 라벨 필수 충족</li>
<li><strong>편안한 대비</strong> — 너무 강한 대비(순백 #FFF)도 피로 유발, 밝은 회색(#E0E4F0) 권장</li>
<li><strong>시맨틱 색상 토큰</strong> — PrimaryText, SecondaryText, HintText 등 의미 기반 네이밍</li>
<li><strong>글래스모피즘</strong> — AI 출력 영역에 반투명 패널 + blur 효과로 시각적 분리</li>
<li><strong>적응형 색상</strong> — OS 설정 존중(prefers-color-scheme), 수동 토글 항상 제공</li>
</ul>
</div>
</details>
<details class="fold">
<summary>경쟁사 핵심 기능 상세 비교 (클릭하여 펼치기)</summary>
<div class="card">
<h3>경쟁사 핵심 기능 상세</h3>
<table>
<tr><th>기능</th><th>ChatGPT</th><th>Claude</th><th>Open WebUI</th><th>LobeChat</th><th>AX Cmd</th></tr>
<tr><td>마크다운 렌더링</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>코드 구문 강조</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>코드 블록 복사</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>이미지 생성</td><td>O</td><td>X</td><td>일부</td><td>플러그인</td><td class="status-todo">X</td></tr>
<tr><td>파일 첨부 분석</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-todo">X</td></tr>
<tr><td>웹 검색 연동</td><td>O</td><td>X</td><td>플러그인</td><td>플러그인</td><td class="status-todo">X</td></tr>
<tr><td>응답 재생성</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>메시지 편집</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>프롬프트 템플릿</td><td>O (GPTs)</td><td>O (프로젝트)</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>대화 내보내기</td><td>O</td><td>X</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>토큰 사용량</td><td>일부</td><td>X</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>좋아요/싫어요</td><td>O</td><td>O</td><td>O</td><td>X</td><td class="status-done">O</td></tr>
<tr><td>대화 분류</td><td>폴더</td><td>프로젝트</td><td>태그</td><td>태그</td><td class="status-done">O (6종)</td></tr>
<tr><td>대화 고정(핀)</td><td>X</td><td>O</td><td>X</td><td>X</td><td class="status-done">O</td></tr>
<tr><td>제목 인라인 편집</td><td>O</td><td>O</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
<tr><td>멀티 LLM 백엔드</td><td>X</td><td>X</td><td>O</td><td>O</td><td class="status-done">O (4종)</td></tr>
<tr><td>암호화 저장</td><td>X</td><td>X</td><td>X</td><td>X</td><td class="status-done">O (AES)</td></tr>
<tr><td>사내 독립 배포</td><td>X</td><td>X</td><td>O</td><td>O</td><td class="status-done">O</td></tr>
</table>
</div>
</details>
<details class="fold">
<summary>AI 서비스 개선 원칙 + 개선 로드맵 (클릭하여 펼치기)</summary>
<div class="card">
<h3>AI 서비스 개선 원칙</h3>
<table>
<tr><th style="width:40px">#</th><th>원칙</th><th>설명</th></tr>
<tr><td>1</td><td><strong>현대적 웹 디자인</strong></td><td>디자인은 현대적인 웹 디자인 트렌드를 따르며, ChatGPT&middot;Claude&middot;Open WebUI 등 타 서비스와의 디자인을 고려하여 심미적으로 향상시킨다.</td></tr>
<tr><td>2</td><td><strong>오픈소스 적극 활용</strong></td><td>오픈소스를 적극 활용하고 오픈소스들의 핵심 기능 및 우수한 코드를 접목하여 개선한다.</td></tr>
<tr><td>3</td><td><strong>확장 가능한 서비스 설계</strong></td><td>단순한 채팅이 아닌, 주고받는 의사소통 및 업무 조율, 보고서&middot;파일 작성 저장, PC 제어 등 향후 서비스 확장(AX Copilot)을 고려하여 설계한다.</td></tr>
</table>
</div>
<div class="card">
<h3>P0 — 핵심 기능 (v1.0.6 목표)</h3>
<table>
<tr><th>항목</th><th>현재</th><th>목표</th></tr>
<tr><td>마크다운 렌더링</td><td class="status-done">완료</td><td>볼드/이탤릭/헤더/리스트/코드블록 + 코드 복사</td></tr>
<tr><td>코드 블록 복사 버튼</td><td class="status-done">완료</td><td>코드 블록 헤더에 언어 표시 + 복사 버튼</td></tr>
<tr><td>대화 제목 인라인 편집</td><td class="status-done">완료</td><td>제목 클릭 시 즉시 편집</td></tr>
<tr><td>응답 재생성 버튼</td><td class="status-done">완료</td><td>AI 응답 하단 "다시 생성" 버튼</td></tr>
<tr><td>생성 중지 버튼</td><td class="status-done">완료</td><td>스트리밍 중 빨간 정지 버튼, ESC 지원</td></tr>
<tr><td>대화 내보내기</td><td class="status-done">완료</td><td>Markdown/TXT 파일로 저장 (Ctrl+E)</td></tr>
<tr><td>연결 테스트</td><td class="status-done">완료</td><td>설정에서 LLM 서버 상태 확인 버튼</td></tr>
<tr><td>키보드 단축키</td><td class="status-done">완료</td><td>Ctrl+N/W/E, Ctrl+Shift+C, ESC 중지</td></tr>
<tr><td>스크롤 개선</td><td class="status-done">완료</td><td>사용자 스크롤 시 자동 스크롤 일시정지</td></tr>
</table>
</div>
<div class="card">
<h3>P0.5 — UI/UX 디자인 혁신 (v1.0.7 목표)</h3>
<table>
<tr><th>항목</th><th>현재</th><th>목표</th><th>참고</th></tr>
<tr><td>AI 심볼 로딩 애니메이션</td><td>텍스트 "생각 중..."</td><td>회전/펄스 AI 아이콘 + 그라디언트 효과</td><td>Siri 무지개 원형</td></tr>
<tr><td>무지개 테두리 효과</td><td>없음</td><td>AI 응답 시 입력 바 또는 AI 아이콘에 무지개 그라디언트 글로우</td><td>Apple Siri</td></tr>
<tr><td>아이콘 호버 애니메이션</td><td>배경색 변경 (네모)</td><td>아이콘 자체 밝기 전환 + 미세 바운스(Y축 -2px) 또는 스케일(1.1x)</td><td>LobeChat</td></tr>
<tr><td>좋아요/싫어요 피드백</td><td class="status-done">완료</td><td>클릭 시 아이콘 채움(filled) + 색상 전환 + 상호 배타 토글</td><td>ChatGPT</td></tr>
<tr><td>메시지 페이드인</td><td>즉시 표시</td><td>새 메시지 Opacity 0→1 + Y축 슬라이드(10px) 300ms</td><td>Claude Desktop</td></tr>
<tr><td>스트리밍 커서</td><td class="status-done">완료</td><td>텍스트 끝에 깜빡이는 블록 커서 (타이핑 효과)</td><td>ChatGPT</td></tr>
<tr><td>스트리밍 글자 단위 표시</td><td class="status-done">완료</td><td>청크 단위 실시간 갱신 + Dispatcher.InvokeAsync(Background)</td><td>ChatGPT, Claude</td></tr>
</table>
</div>
<div class="card">
<h3>P1 — 생산성 향상 (v1.0.7 목표)</h3>
<table>
<tr><th>항목</th><th>상태</th><th>설명</th></tr>
<tr><td>메시지 편집</td><td class="status-done">완료</td><td>보낸 메시지 수정 후 재전송</td></tr>
<tr><td>프롬프트 템플릿</td><td class="status-done">완료</td><td>프롬프트 카드 3종 + 워터마크 placeholder</td></tr>
<tr><td>슬래시 명령어</td><td class="status-done">완료</td><td>/요약, /번역, /코드리뷰 등 빠른 명령</td></tr>
<tr><td>토큰 사용량 표시</td><td class="status-done">완료</td><td>요청/응답 토큰 수 + 잔여 컨텍스트</td></tr>
<tr><td>모델 전환 (채팅 내)</td><td class="status-done">완료</td><td>대화 중 모델을 바로 변경</td></tr>
</table>
</div>
<div class="card">
<h3>P2 — 고급 기능 (v1.1.0 이후)</h3>
<table>
<tr><th>항목</th><th>설명</th></tr>
<tr><td>파일 첨부 분석</td><td>PDF/이미지/문서 업로드 후 AI 분석</td></tr>
<tr><td>웹 검색 연동</td><td><span style="color:#e53e3e;">미구현 — 사내 보안 정책으로 에이전트 웹 검색 차단</span></td></tr>
<tr><td>대화 분기/포크</td><td>특정 메시지에서 새 대화 분기</td></tr>
<tr><td>대화 내 검색</td><td>메시지 내용 검색 (제목뿐 아니라)</td></tr>
<tr><td>멀티 대화 비교</td><td>두 대화를 나란히 비교</td></tr>
<tr><td>장기 메모리</td><td>대화 간 사용자 선호 기억</td></tr>
</table>
</div>
</details>
<!-- ── 6. Claude Desktop 분석 ── -->
<h2 id="p1-claude" class="section-title">6. Claude Desktop 심층 분석 — Chat &middot; Cowork &middot; Code</h2>
<div class="section-desc">
Claude Desktop의 3개 탭(Chat, Cowork, Code)을 심층 분석하고,<br>
AX Copilot에 동등한 기능을 구현하기 위한 아키텍처 및 개발 로드맵을 수립합니다.
</div>
<details class="fold">
<summary>Claude Desktop 3탭 기능 비교 + 핵심 패턴 분석 (클릭하여 펼치기)</summary>
<div class="card">
<h3>Claude Desktop 3탭 기능 비교</h3>
<table>
<tr><th>구분</th><th>Chat</th><th>Cowork</th><th>Code</th></tr>
<tr><td><strong>대상 사용자</strong></td><td>전체 사용자</td><td>지식 노동자 (기획, 분석, 문서)</td><td>개발자</td></tr>
<tr><td><strong>상호작용 모델</strong></td><td>대화형 Q&A</td><td>자율적 멀티스텝 작업 수행</td><td>에이전틱 코딩</td></tr>
<tr><td><strong>파일 접근</strong></td><td>없음</td><td>선택된 폴더 (VM 샌드박스)</td><td>선택된 프로젝트 폴더</td></tr>
<tr><td><strong>실행 환경</strong></td><td>N/A</td><td>로컬 VM (격리)</td><td>로컬 / 리모트 / SSH</td></tr>
<tr><td><strong>핵심 기능</strong></td><td>웹 검색, 커넥터, 아티팩트</td><td>문서 작성, 데이터 분석, 스프레드시트</td><td>Visual Diff, Git Worktree, 앱 프리뷰</td></tr>
<tr><td><strong>권한 모델</strong></td><td>읽기 전용</td><td>폴더 선택 + 읽기/쓰기 분리 + 삭제 확인</td><td>도구별 허용/차단 + 샌드박스</td></tr>
<tr><td><strong>보안</strong></td><td>기본</td><td>VM 격리 + 네트워크 차단</td><td>SecurityAnalyzer + ConfirmationPolicy</td></tr>
</table>
</div>
<div class="card">
<h3>Claude Desktop 핵심 패턴 분석</h3>
<table>
<tr><th>패턴</th><th>설명</th><th>AX Copilot 적용 방향</th></tr>
<tr><td><strong>폴더 선택</strong></td><td>채팅 하단에 작업 폴더 선택 UI. 선택한 폴더만 접근 가능</td><td>Chat 하단에 FolderBrowserDialog + 경로 표시 바</td></tr>
<tr><td><strong>권한 단계</strong></td><td>읽기/쓰기 분리, 삭제 시 확인 프롬프트, 네트워크 차단</td><td>3단계: Ask(매번 확인) / Auto(자동 허용) / Deny(차단)</td></tr>
<tr><td><strong>에이전트 루프</strong></td><td>계획 → 도구 실행 → 관찰 → 재평가 반복</td><td>OpenHands/OpenCode 코어 엔진 활용</td></tr>
<tr><td><strong>도구 시스템</strong></td><td>파일 읽기/쓰기, Bash, 브라우저, 웹 검색</td><td>WPF 네이티브 도구 + MCP 통합 <span style="color:#e53e3e;font-size:11px;">(웹 검색 제외)</span></td></tr>
<tr><td><strong>Git 스냅샷</strong></td><td>매 작업 단계마다 Git 커밋으로 롤백 가능</td><td>OpenCode의 Git snapshot 시스템 활용</td></tr>
<tr><td><strong>LSP 검증</strong></td><td>파일 수정 후 Language Server로 오류 자동 검증</td><td>OpenCode의 LSP 통합 활용</td></tr>
</table>
</div>
<div class="card">
<h3>Claude Cowork vs AX Copilot — 전략적 차별화</h3>
<table>
<tr><th>항목</th><th>Claude Cowork</th><th>AX Copilot 차별점</th></tr>
<tr><td><strong>실행 환경</strong></td><td>클라우드 VM 샌드박스</td><td style="color:#16a34a;"><strong>완전 로컬 실행</strong> — 데이터가 외부로 전송되지 않음</td></tr>
<tr><td><strong>LLM 선택 자유</strong></td><td>Claude만 사용 가능</td><td style="color:#16a34a;"><strong>4종 LLM 지원</strong> — Ollama/vLLM/Gemini/Claude</td></tr>
<tr><td><strong>보안 통제</strong></td><td>Ask/Auto 2단계</td><td style="color:#16a34a;"><strong>Ask/Auto/Deny 3단계</strong> + 차단 경로/확장자/위험 명령</td></tr>
<tr><td><strong>배포</strong></td><td>Electron 기반</td><td style="color:#16a34a;"><strong>단일 EXE + NuGet DLL</strong></td></tr>
<tr><td><strong>비용</strong></td><td>Pro $20/월, Max $100/월</td><td style="color:#16a34a;"><strong>무료 + API 비용만</strong></td></tr>
<tr><td><strong>네트워크 의존</strong></td><td>상시 인터넷 필요</td><td style="color:#16a34a;">Ollama/vLLM 사용 시 <strong>인트라넷만으로 동작</strong></td></tr>
</table>
</div>
</details>
<!-- ── 7. 오픈소스 코어 분석 ── -->
<h2 id="p1-opensource" class="section-title">7. 오픈소스 코어 엔진 분석</h2>
<details class="fold">
<summary>OpenHands + OpenCode + 비교 (클릭하여 펼치기)</summary>
<div class="card">
<h3>OpenHands — Cowork 코어 (MIT 라이선스)</h3>
<div class="file">github.com/All-Hands-AI/OpenHands &middot; Python 72% / TypeScript 25% &middot; 64k+</div>
<table>
<tr><th>구성 요소</th><th>역할</th><th>내장 방식</th></tr>
<tr><td><code>openhands.sdk</code></td><td>Agent, Conversation, LLM, Tool, 이벤트 시스템</td><td>Python subprocess 또는 HTTP API</td></tr>
<tr><td><code>openhands.tools</code></td><td>파일 조작, Bash, 브라우저, 웹 검색</td><td>필요한 도구만 선별 내장 <span style="color:#e53e3e;font-size:11px;">(웹 검색 제외)</span></td></tr>
<tr><td><code>openhands.workspace</code></td><td>실행 환경 (로컬/Docker/리모트)</td><td>LocalWorkspace (Docker 없이 직접 실행)</td></tr>
<tr><td><code>agent_server</code></td><td>REST/WebSocket API 서버</td><td>로컬 HTTP 서버로 WPF와 통신</td></tr>
</table>
<ul>
<li><strong>에이전트 루프</strong>: 사용자 메시지 → LLM → Action → Runtime(샌드박스) → Observation → 반복</li>
<li><strong>보안</strong>: SecurityAnalyzer(위험도 평가) + ConfirmationPolicy(승인 요구) + SecretRegistry(비밀 관리)</li>
<li><strong>컨텍스트 관리</strong>: LLMSummarizingCondenser — 컨텍스트 초과 시 자동 요약 (비용 2x 절감)</li>
</ul>
</div>
<div class="card">
<h3>OpenCode — Code 코어 (MIT 라이선스)</h3>
<div class="file">github.com/opencode-ai/opencode &middot; Go(TUI) / JavaScript+Bun(서버) &middot; 95k+</div>
<table>
<tr><th>구성 요소</th><th>역할</th><th>내장 방식</th></tr>
<tr><td>Bun HTTP 서버 (Hono)</td><td>에이전트 루프, 도구 실행, LLM 통신</td><td>백그라운드 프로세스 + REST API</td></tr>
<tr><td>도구 시스템</td><td>파일 읽기/쓰기, Bash, Glob, Grep, 웹 검색</td><td>HTTP API로 호출 <span style="color:#e53e3e;font-size:11px;">(웹 검색 제외)</span></td></tr>
<tr><td>LSP 통합</td><td>파일 수정 후 Language Server 진단</td><td>서버 내장 LSP 그대로 활용</td></tr>
<tr><td>Git Snapshot</td><td>매 단계 임시 커밋 → undo/redo 지원</td><td>서버 내장 기능 그대로 활용</td></tr>
<tr><td>이벤트 버스 (SSE)</td><td>실시간 스트리밍 (tool-call, text-delta 등)</td><td>WPF HttpClient + SSE 파싱</td></tr>
</table>
<ul>
<li><strong>에이전트 루프</strong>: 프롬프트 → LLM streamText → 도구 호출 → 결과 피드백 → LSP 검증 → 반복</li>
<li><strong>에이전트 모드</strong>: Plan 모드(읽기 전용) / Build 모드(파일 수정 허용)</li>
<li><strong>서브에이전트</strong>: task 도구로 새 세션 생성 (별도 컨텍스트, 다른 LLM 가능)</li>
</ul>
</div>
<div class="card">
<h3>오픈소스 코어 비교</h3>
<table>
<tr><th>항목</th><th>OpenHands</th><th>OpenCode</th></tr>
<tr><td>주 언어</td><td>Python + TypeScript</td><td>Go + JavaScript(Bun)</td></tr>
<tr><td>아키텍처</td><td>이벤트 소싱 + Docker 샌드박스</td><td>클라이언트-서버 + HTTP API + SSE</td></tr>
<tr><td>격리 수준</td><td>Docker 컨테이너 (완전 격리)</td><td>없음 (Git 스냅샷으로 롤백)</td></tr>
<tr><td>LLM 지원</td><td>100+ (LiteLLM)</td><td>75+ (AI SDK)</td></tr>
<tr><td>.NET 통합 난이도</td><td>중간 (Python subprocess + HTTP)</td><td>낮음 (순수 HTTP REST + SSE)</td></tr>
<tr><td>Windows 지원</td><td>Docker 필요</td><td>WSL 권장, 네이티브 가능</td></tr>
<tr><td>적합 용도</td><td>Cowork (문서/데이터/분석 작업)</td><td>Code (코드 편집/생성/리팩토링)</td></tr>
</table>
</div>
</details>
<!-- ── 8. 에이전트 논문 및 오픈소스 심층 분석 ── -->
<h2 id="p1-research" class="section-title">8. 에이전트 고도화를 위한 논문 및 오픈소스 심층 분석</h2>
<div class="section-desc">
AX Copilot의 자체 구현 에이전트 코어(AgentLoopService)를 고도화하기 위해<br>
관련 학술 논문과 유사 오픈소스 프레임워크를 분석하고, 적용 가능한 기법을 도출합니다.
</div>
<details class="fold">
<summary>12.1 핵심 논문 분석 (ReAct, Reflexion, SWE-Agent 등 10편) (클릭하여 펼치기)</summary>
<div class="card">
<table>
<tr><th style="width:18%">논문/개념</th><th style="width:22%">핵심 아이디어</th><th style="width:30%">주요 기법</th><th style="width:30%">AX Copilot 적용 방안</th></tr>
<tr>
<td><strong>ReAct</strong><br><span style="font-size:10px;color:#6b6b8a;">Yao et al., 2023</span></td>
<td>Reasoning + Acting 인터리빙</td>
<td>Thought-Action-Observation 트리플 반복</td>
<td><strong style="color:#16a34a;">현재 부분 적용.</strong> Thought 단계를 명시적으로 분리하여 UI에 표시.</td>
</tr>
<tr>
<td><strong>Toolformer</strong><br><span style="font-size:10px;color:#6b6b8a;">Schick et al., 2023</span></td>
<td>LLM이 스스로 도구 사용 시점과 방법을 학습</td>
<td>Self-supervised API call insertion</td>
<td>시스템 프롬프트에서 도구 사용 규칙 정의. <strong style="color:#6b6b8a;">추가 조치 불필요.</strong></td>
</tr>
<tr>
<td><strong>MRKL Systems</strong><br><span style="font-size:10px;color:#6b6b8a;">Karpas et al., 2022</span></td>
<td>LLM을 라우터로, 전문 모듈을 실행기로 분리</td>
<td>Neural + Symbolic 모듈 하이브리드</td>
<td><strong style="color:#16a34a;">이미 적용.</strong> ToolRegistry가 MRKL의 모듈 레지스트리 역할.</td>
</tr>
<tr>
<td><strong>HuggingGPT / TaskMatrix</strong><br><span style="font-size:10px;color:#6b6b8a;">Shen et al., 2023</span></td>
<td>LLM이 작업을 분해하고 전문 모델에 위임하는 오케스트레이터 패턴</td>
<td>Task Planning → Model Selection → Execution → Response</td>
<td><strong style="color:#e53e3e;">핵심 적용 대상.</strong> Task Decomposition 단계 추가 — 복잡한 요청을 하위 작업으로 분해.</td>
</tr>
<tr>
<td><strong>Voyager</strong><br><span style="font-size:10px;color:#6b6b8a;">Wang et al., 2023</span></td>
<td>자동 커리큘럼 + 스킬 라이브러리</td>
<td>Skill Library + Self-verification + Iterative Refinement</td>
<td><strong style="color:#3b82f6;">장기 적용 대상.</strong> 커스텀 스킬 저장 시스템.</td>
</tr>
<tr>
<td><strong>SWE-Agent</strong><br><span style="font-size:10px;color:#6b6b8a;">Yang et al., 2024</span></td>
<td>Agent-Computer Interface (ACI) 설계 원칙</td>
<td>Linting, Window-based file viewing, Search &amp; Navigate</td>
<td><strong>Code 탭에 핵심 적용.</strong> FileEditTool 실행 후 자동 구문 검증 추가.</td>
</tr>
<tr>
<td><strong>Reflexion</strong><br><span style="font-size:10px;color:#6b6b8a;">Shinn et al., 2023</span></td>
<td>자기 반성을 통한 에이전트 성능 향상</td>
<td>Evaluator → Self-Reflection → Memory → Retry with insight</td>
<td><strong style="color:#e53e3e;">중요 개선 대상.</strong> 도구 실패 시 반성 프롬프트 추가. 최대 N회 자동 재시도.</td>
</tr>
<tr>
<td><strong>Plan-and-Solve</strong><br><span style="font-size:10px;color:#6b6b8a;">Wang et al., 2023</span></td>
<td>먼저 계획을 세우고 단계별로 실행</td>
<td>계획 → 변수 추출 → 단계별 계산</td>
<td><strong>시스템 프롬프트 개선에 즉시 적용 가능.</strong></td>
</tr>
<tr>
<td><strong>MemGPT / LLM OS</strong><br><span style="font-size:10px;color:#6b6b8a;">Packer et al., 2023</span></td>
<td>LLM 컨텍스트 윈도우를 가상 메모리처럼 관리</td>
<td>Main context ↔ Archival storage ↔ Recall storage 계층</td>
<td><strong style="color:#e53e3e;">Context Condenser의 이론적 기반.</strong> 3계층 메모리 시스템.</td>
</tr>
<tr>
<td><strong>AutoGPT</strong><br><span style="font-size:10px;color:#6b6b8a;">Richards, 2023</span></td>
<td>완전 자율 에이전트</td>
<td>Self-criticism, Budget/Step limit, Persistent memory</td>
<td><strong>가드레일 설계 참고.</strong> 에이전트 루프 최대 반복 횟수 제한.</td>
</tr>
<tr>
<td><strong>Tree of Thoughts</strong><br><span style="font-size:10px;color:#6b6b8a;">Yao et al., 2023</span></td>
<td>여러 추론 경로를 트리로 탐색</td>
<td>BFS/DFS 기반 탐색, 백트래킹</td>
<td><strong style="color:#6b6b8a;">장기 연구 대상.</strong></td>
</tr>
</table>
</div>
</details>
<details class="fold">
<summary>12.2 오픈소스 에이전트 프레임워크 비교 (OpenHands, Aider, Cline, Cursor 등) (클릭하여 펼치기)</summary>
<div class="card">
<table>
<tr><th style="width:12%">프로젝트</th><th style="width:8%">Stars</th><th style="width:20%">아키텍처</th><th style="width:25%">핵심 차별점</th><th style="width:35%">AX Copilot 적용 포인트</th></tr>
<tr>
<td><strong>OpenHands</strong></td><td>64k+</td>
<td>이벤트 소싱 + Docker 샌드박스</td>
<td>SecurityAnalyzer, LLMSummarizingCondenser, 이벤트 소싱</td>
<td>ContextCondenser 구현, 위험도 평가, 이벤트 로그</td>
</tr>
<tr>
<td><strong>Aider</strong></td><td>30k+</td>
<td>Git 기반 diff 편집 + 코드맵</td>
<td>Repository Map, Unified Diff, Auto-commit</td>
<td>Repo Map (작업 폴더 트리 요약), Git 스냅샷</td>
</tr>
<tr>
<td><strong>Cline</strong></td><td>35k+</td>
<td>VS Code 확장 + 에이전트 루프</td>
<td>Diff 미리보기, 비용 추적, MCP 지원</td>
<td>Diff 미리보기 UI, 누적 비용 표시</td>
</tr>
<tr>
<td><strong>Cursor</strong></td><td>상용</td>
<td>IDE 내장 에이전트 + Shadow Workspace</td>
<td>Shadow Workspace, Tab Completion, @-mentions</td>
<td>Shadow Workspace, @-참조 컨텍스트 첨부</td>
</tr>
<tr>
<td><strong>Devon</strong></td><td>4k+</td>
<td>세션 기반 에이전트 + 자동 테스트</td>
<td>자동 테스트 실행, 세션 이력, Interrupt &amp; Resume</td>
<td>세션 직렬화, 자동 테스트</td>
</tr>
<tr>
<td><strong>Sweep</strong></td><td>8k+</td>
<td>GitHub Issue → PR 자동 생성</td>
<td>코드 검색 인덱싱, Self-review</td>
<td>Self-review 2-pass 패턴</td>
</tr>
<tr>
<td><strong>Mentat</strong></td><td>3k+</td>
<td>터미널 기반 코딩 에이전트</td>
<td>Auto Context (import/dependency 자동 수집)</td>
<td>Auto Context 파일 편집 시 관련 파일 자동 추가</td>
</tr>
</table>
</div>
</details>
<details class="fold">
<summary>12.3 고도화 기술 영역 — 적용 우선순위 (12항목) (클릭하여 펼치기)</summary>
<div class="card">
<table>
<tr><th>#</th><th>기술 영역</th><th>현재 상태</th><th>목표 구현</th><th>참고</th><th>우선순위</th></tr>
<tr><td>1</td><td><strong>Task Decomposition</strong></td><td>없음</td><td>복잡한 요청을 하위 작업으로 분해 + 진행률 UI</td><td>HuggingGPT, Plan-and-Solve</td><td class="severity-high">P1</td></tr>
<tr><td>2</td><td><strong>Self-Reflection</strong></td><td>에러 메시지만</td><td>반성 프롬프트 + 최대 3회 자동 재시도</td><td>Reflexion, SWE-Agent</td><td class="severity-high">P1</td></tr>
<tr><td>3</td><td><strong>Context Condenser</strong></td><td>없음</td><td>토큰 임계값 시 LLM 요약으로 압축</td><td>OpenHands</td><td class="severity-high">P1</td></tr>
<tr><td>4</td><td><strong>Repo/Folder Map</strong></td><td>없음</td><td>파일 트리를 시스템 프롬프트에 자동 포함</td><td>Aider RepoMap</td><td class="severity-med">P2</td></tr>
<tr><td>5</td><td><strong>Risk Assessment</strong></td><td>Ask/Auto/Deny만</td><td>도구별 위험도 자동 분류</td><td>OpenHands SecurityAnalyzer</td><td class="severity-med">P2</td></tr>
<tr><td>6</td><td><strong>Diff Preview</strong></td><td>즉시 수정</td><td>파일 수정 전 diff 뷰 + 사용자 승인</td><td>Cline, Cursor</td><td class="severity-med">P2</td></tr>
<tr><td>7</td><td><strong>Session Serialization</strong></td><td>대화만 저장</td><td>에이전트 루프 전체 상태 JSON 저장/복원</td><td>Devon, OpenHands</td><td class="severity-med">P2</td></tr>
<tr><td>8</td><td><strong>Custom Skill Library</strong></td><td>내장 12개 고정</td><td>사용자 정의 스킬 저장/관리</td><td>Voyager</td><td class="severity-low">P3</td></tr>
<tr><td>9</td><td><strong>Self-Review</strong></td><td>없음</td><td>2-pass 품질 검증 패턴</td><td>Sweep, Reflexion</td><td class="severity-low">P3</td></tr>
<tr><td>10</td><td><strong>Parallel Tool Execution</strong></td><td>순차 1개씩</td><td>Task.WhenAll 병렬 실행</td><td>Claude API parallel tool_use</td><td class="severity-low">P3</td></tr>
<tr><td>11</td><td><strong>Auto Context</strong></td><td>없음</td><td>편집 대상 파일의 import/참조 파일 자동 감지</td><td>Mentat, Cursor</td><td class="severity-low">P3</td></tr>
<tr><td>12</td><td><strong>Shadow Workspace</strong></td><td>없음</td><td>임시 복사본에서 편집 → 검증 → 적용</td><td>Cursor</td><td class="severity-low">P3</td></tr>
</table>
<div style="margin-top:16px;padding:12px 16px;background:#FFFBEB;border-left:3px solid #F59E0B;border-radius:0 8px 8px 0;font-size:13px;">
<strong>핵심 원칙:</strong> 모든 고도화는 <strong>C# 네이티브</strong>로 구현. Python/Node.js 의존성 없음.<br>
<strong>최우선 3개:</strong> Task Decomposition + Self-Reflection + Context Condenser
</div>
</div>
</details>
<details class="fold">
<summary>12.5 UX 고도화 계획 + 12.7 경쟁 서비스 설정 분석 (클릭하여 펼치기)</summary>
<div class="card">
<h3>UX 고도화 계획</h3>
<table>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
<tr><td>1</td><td><strong>파일 포맷 선택 UI</strong></td><td>사용자가 결과물 형식(Excel/Word/HTML/Markdown/CSV)을 직접 선택</td><td class="severity-high">P1</td></tr>
<tr><td>2</td><td><strong>실행 이력 상세 표시</strong></td><td>에이전트 전체 이력을 타임라인으로 표시 (접이식 이벤트 카드)</td><td class="severity-high">P1</td></tr>
<tr><td>3</td><td><strong>문서 실시간 미리보기</strong></td><td>Claude Artifacts 스타일 오른쪽 패널 미리보기</td><td class="severity-high">P1</td></tr>
<tr><td>4</td><td><strong>디자인 템플릿 시스템</strong></td><td>고품질 디자인 템플릿 내장 (보고서, 분석표, 대시보드 등)</td><td class="severity-med">P2</td></tr>
<tr><td>5</td><td><strong>Suggestion Chips 고도화</strong></td><td>다양한 선택지 패턴 감지하여 칩 표시</td><td class="severity-med">P2</td></tr>
</table>
</div>
<div class="card">
<h3>경쟁 서비스 설정 분석 — 사용자 자유 설정 극대화</h3>
<table>
<tr><th>설정 카테고리</th><th>경쟁 서비스 현황</th><th>AX Copilot 구현 계획</th><th>우선순위</th></tr>
<tr><td><strong>미리보기 자동 열기</strong></td><td>Claude Artifact 자동 표시</td><td><code>AutoPreview</code>: Auto / Manual / Off</td><td class="severity-high">P1</td></tr>
<tr><td><strong>기본 출력 포맷</strong></td><td>AI가 자동 선택</td><td><code>DefaultOutputFormat</code>: 자동 / Excel / Word / HTML / MD / CSV</td><td class="severity-high">P1</td></tr>
<tr><td><strong>에이전트 권한 세부</strong></td><td>프로젝트별 권한 프로필</td><td>도구별 개별 권한, 경로별 권한, 위험도 기반 자동 분류</td><td class="severity-med">P2</td></tr>
<tr><td><strong>이벤트 로그 수준</strong></td><td>상세/간략 모드 전환</td><td><code>AgentLogLevel</code>: 간략 / 상세 / 디버그</td><td class="severity-med">P2</td></tr>
<tr><td><strong>에이전트 루프 제한</strong></td><td>기본 25회</td><td><code>MaxAgentIterations</code>: 1~50 슬라이더</td><td class="severity-med">P2</td></tr>
<tr><td><strong>탭별 모델 설정</strong></td><td>단일 모델</td><td>Chat/Cowork/Code 탭별 다른 LLM 지정 가능</td><td class="severity-low">P3</td></tr>
</table>
</div>
</details>
<details class="fold">
<summary>12.8 커스텀 UI 가이드라인 (클릭하여 펼치기)</summary>
<div class="card">
<h3>커스텀 UI 가이드라인 — 심미적 일관성 원칙</h3>
<table>
<tr><th>UI 요소</th><th>문제점</th><th>커스텀 구현 방안</th><th>상태</th></tr>
<tr><td><strong>ContextMenu</strong></td><td>시스템 기본 흰색 메뉴</td><td>WPF Popup 기반 커스텀 메뉴 + DynamicResource</td><td>완료</td></tr>
<tr><td><strong>MessageBox</strong></td><td>Win32 스타일 테마 불일치</td><td>CustomMessageBox 클래스로 대체</td><td>완료</td></tr>
<tr><td><strong>ComboBox 드롭다운</strong></td><td>다크 테마에서 불일치</td><td>Popup 기반 커스텀 드롭다운</td><td>P2 예정</td></tr>
<tr><td><strong>FolderBrowserDialog</strong></td><td>테마 적용 불가</td><td>자체 최근 폴더 메뉴를 1차 접점으로 제공</td><td>완료</td></tr>
<tr><td><strong>ToolTip</strong></td><td>시스템 기본 노란색</td><td>커스텀 ToolTip — 다크 배경, 라운드 코너</td><td>P2 예정</td></tr>
</table>
<div style="margin-top:16px;padding:12px 16px;background:#F0FDF4;border-left:3px solid #16A34A;border-radius:0 8px 8px 0;font-size:13px;">
<strong>개발 규칙:</strong><br>
1. 새 팝업/메뉴/대화상자 — 시스템 기본 컨트롤 사용 금지, 반드시 커스텀 구현<br>
2. 모든 색상은 <code>DynamicResource</code> 키 사용 (하드코딩 절대 금지)<br>
3. 폰트 크기: 메뉴 항목 13px 이상, 설명 텍스트 12px 이상<br>
4. 호버/클릭 효과 필수 — <code>#18FFFFFF</code> 반투명 배경 + 핸드 커서<br>
5. Popup 내부에 <code>Button</code> 사용 금지 — <code>Border</code> + <code>MouseLeftButtonUp</code> 사용
</div>
</div>
</details>
<!-- ── 9. 3탭 개발 로드맵 ── -->
<h2 id="p1-devplan" class="section-title">9. AX Agent 3탭 개발 로드맵</h2>
<div class="section-desc">
AX Agent를 Chat &middot; Cowork &middot; Code 3탭 구조로 확장.<br>
서버 기반 오픈소스 플랫폼의 <strong>계획→실행→검증 루프</strong>를 데스크톱 앱에 내장.
</div>
<details class="fold">
<summary>Phase 1~3 + 공통 인프라 + 전체 스킬 목록 (클릭하여 펼치기)</summary>
<div class="card">
<h3>Phase 1 — Chat 탭 고도화 (v1.0.7)</h3>
<table>
<tr><th>항목</th><th>설명</th><th>우선순위</th></tr>
<tr><td>탭 UI 구조</td><td>ChatWindow 상단에 Chat | Cowork | Code 3탭 추가</td><td class="severity-high">P0</td></tr>
<tr><td>작업 폴더 선택</td><td>채팅 하단 폴더 경로 표시 바 + 선택 버튼</td><td class="severity-high">P0</td></tr>
<tr><td>권한 시스템 설계</td><td>3단계: Ask / Auto / Deny</td><td class="severity-high">P0</td></tr>
<tr><td>파일 컨텍스트 첨부</td><td>드래그&amp;드롭 또는 버튼으로 파일 첨부</td><td class="severity-med">P1</td></tr>
</table>
</div>
<div class="card" style="border-left:3px solid #EF4444;">
<h3>환경 제약: Docker/WSL 사용 불가</h3>
<p style="font-size:13px;color:#6b6b8a;margin:8px 0;">
사내 보안 정책으로 Docker 및 WSL이 차단. <strong style="color:#e53e3e;">웹 검색 기능은 보안 정책상 구현하지 않습니다.</strong><br>
<strong>대안 전략:</strong> 오픈소스 핵심 로직을 <strong>C# 네이티브 코드로 재구현</strong>.
</p>
</div>
<div class="card">
<h3>Phase 2 — Cowork 탭 (v1.1.0) — C# 네이티브 에이전트 엔진</h3>
<table>
<tr><th>항목</th><th>설명</th><th>구현 방식</th></tr>
<tr><td>에이전트 루프 엔진</td><td>계획→도구실행→관찰→재평가 반복</td><td>C# AgentLoopService</td></tr>
<tr><td>기본 도구 (Tools)</td><td>FileRead/Write/Edit, Process, Glob, Grep</td><td>C# IAgentTool 인터페이스</td></tr>
<tr><td>내장 스킬</td><td>ExcelSkill, DocxSkill, CsvSkill, MarkdownSkill, HtmlSkill, BatchSkill</td><td>앱 내장 스킬 시스템</td></tr>
<tr><td>LLM 함수 호출</td><td>Tool-use / Function-calling 프로토콜</td><td>기존 LlmService 확장</td></tr>
<tr><td>권한 승인 UI</td><td>인라인 승인 UI + 경로 표시 배너</td><td>C# PermissionService</td></tr>
<tr><td>컨텍스트 요약</td><td>토큰 초과 시 자동 요약</td><td>C# ContextCondenser</td></tr>
</table>
</div>
<div class="card">
<h3>Phase 2.5 — Cowork 기능 고도화 (v1.1.x)</h3>
<table>
<tr><th>항목</th><th>설명</th><th>상태</th></tr>
<tr><td>프리뷰 탭 시스템</td><td>다중 파일 프리뷰, 채팅↔프리뷰 드래그 리사이즈</td><td style="color:#10B981;">완료</td></tr>
<tr><td>드롭다운 메뉴 패턴</td><td>컴팩트 드롭다운 + Popup 방식</td><td style="color:#10B981;">완료</td></tr>
<tr><td>프리뷰 동적 갱신</td><td>에이전트 파일 수정 시 자동 새로고침</td><td style="color:#10B981;">완료</td></tr>
<tr><td>문서 읽기 도구</td><td>PDF, DOCX, XLSX, CSV, TXT 텍스트 추출</td><td style="color:#10B981;">완료</td></tr>
<tr><td>폴더맵 도구</td><td>작업 폴더 디렉토리 트리 생성</td><td style="color:#10B981;">완료</td></tr>
</table>
</div>
<div class="card">
<h3>Phase 3 — Code 탭 (v1.2.0) — C# 네이티브 코딩 에이전트</h3>
<table>
<tr><th>항목</th><th>설명</th><th>구현 방식</th></tr>
<tr><td>코딩 에이전트 엔진</td><td>프롬프트→LLM→도구호출→결과피드백→검증 루프</td><td>Phase 2 AgentLoopService 확장</td></tr>
<tr><td>코드 도구 시스템</td><td>Glob, Grep, FileEdit, Bash, 코드 분석</td><td>C# GlobTool, GrepTool, FileEditTool</td></tr>
<tr><td>코드 에디터 뷰</td><td>파일 트리 + 코드 뷰어 + diff 표시</td><td>AvalonEdit NuGet</td></tr>
<tr><td>Git Snapshot</td><td>매 작업 단계 자동 커밋 + undo/redo</td><td>LibGit2Sharp</td></tr>
<tr><td>LSP 진단</td><td>파일 수정 후 오류/경고 인라인 표시</td><td>StreamJsonRpc (LSP JSON-RPC)</td></tr>
<tr><td>에이전트 모드 전환</td><td>Plan 모드(읽기 전용) ↔ Build 모드(실제 수정)</td><td>도구 권한 레벨로 구분</td></tr>
<tr><td>서브에이전트</td><td>복잡한 작업을 하위 에이전트에 위임</td><td>SubAgentService + Task.WhenAll</td></tr>
</table>
</div>
<div class="card">
<h3>공통 인프라 (전 Phase 공유)</h3>
<table>
<tr><th>항목</th><th>설명</th></tr>
<tr><td><strong>작업 폴더 시스템</strong></td><td>Chat 하단에 폴더 선택 바. Cowork/Code 탭 전환 시 동일 폴더 유지</td></tr>
<tr><td><strong>권한 3단계</strong></td><td>Ask(매번 확인) / Auto(자동 허용, 경고 배너) / Deny(완전 차단)</td></tr>
<tr><td><strong>탭별 대화 분리</strong></td><td>Chat &middot; Cowork &middot; Code 탭별 대화 이력 완전 분리</td></tr>
<tr><td><strong>외부 런타임 불필요</strong></td><td>순수 C#/.NET 8.0으로 모든 기능 구현</td></tr>
<tr><td><strong>웹 검색 차단</strong></td><td style="color:#e53e3e;">사내 보안 정책으로 에이전트의 외부 웹 접속 차단</td></tr>
<tr><td><strong>NuGet 패키지만 사용</strong></td><td>LibGit2Sharp, AvalonEdit, StreamJsonRpc, FileSystemGlobbing</td></tr>
</table>
</div>
<div class="card">
<h3>전체 스킬 목록 (확장 계획)</h3>
<table style="font-size:12px;">
<tr><th>분류</th><th>우선순위</th><th>스킬</th><th>기능</th><th>보안</th></tr>
<tr><td rowspan="4">문서</td><td class="severity-high">P0</td><td><strong>ExcelSkill 고도화</strong></td><td>셀 서식, 수식, 다중 시트</td><td style="color:#16a34a;">안전</td></tr>
<tr><td class="severity-high">P0</td><td><strong>DocxSkill</strong></td><td>Word 문서 생성</td><td style="color:#16a34a;">안전</td></tr>
<tr><td class="severity-med">P1</td><td><strong>PptxSkill</strong></td><td>프레젠테이션 생성</td><td style="color:#16a34a;">안전</td></tr>
<tr><td class="severity-high">P0</td><td><strong>HtmlSkill 고도화</strong></td><td>JS 지원, Chart.js 차트, Mermaid</td><td style="color:#16a34a;">안전</td></tr>
<tr><td rowspan="3">데이터</td><td class="severity-high">P0</td><td><strong>CsvSkill</strong></td><td>CSV 읽기/쓰기/필터링</td><td style="color:#16a34a;">안전</td></tr>
<tr><td class="severity-med">P1</td><td><strong>JsonSkill</strong></td><td>JSON 쿼리/변환/검증</td><td style="color:#16a34a;">안전</td></tr>
<tr><td class="severity-low">P2</td><td><strong>SqliteSkill</strong></td><td>로컬 DB 생성/쿼리</td><td style="color:#dd6b20;">SQL 인젝션 방지</td></tr>
<tr><td rowspan="2">시각화</td><td class="severity-med">P1</td><td><strong>ChartSkill</strong></td><td>Bar/Line/Pie 차트</td><td style="color:#16a34a;">안전</td></tr>
<tr><td class="severity-med">P1</td><td><strong>MermaidSkill</strong></td><td>Mermaid 다이어그램</td><td style="color:#16a34a;">안전</td></tr>
<tr><td rowspan="2">PDF</td><td class="severity-med">P1</td><td><strong>PdfReadSkill</strong></td><td>PDF 텍스트 추출</td><td style="color:#16a34a;">읽기 전용</td></tr>
<tr><td class="severity-low">P2</td><td><strong>PdfCreateSkill</strong></td><td>보고서 PDF 생성</td><td style="color:#16a34a;">안전</td></tr>
<tr><td rowspan="2">유틸</td><td class="severity-high">P0</td><td><strong>ZipSkill</strong></td><td>압축/해제</td><td style="color:#dd6b20;">Zip-slip 검증</td></tr>
<tr><td class="severity-med">P1</td><td><strong>DiffSkill</strong></td><td>두 파일 비교</td><td style="color:#16a34a;">읽기 전용</td></tr>
<tr><td rowspan="2">스크립트</td><td class="severity-high">P0</td><td><strong>BatchSkill</strong></td><td>.bat 파일 생성 (실행 X)</td><td style="color:#dd6b20;">시스템 명령 차단</td></tr>
<tr><td class="severity-med">P1</td><td><strong>PowerShellSkill</strong></td><td>.ps1 스크립트 생성</td><td style="color:#dd6b20;">시스템 명령 차단</td></tr>
<tr><td>개발</td><td class="severity-med">P1</td><td><strong>GitSkill</strong></td><td>status/log/diff/commit + 스냅샷</td><td style="color:#dd6b20;">쓰기 작업 확인</td></tr>
</table>
</div>
</details>
<details class="fold">
<summary>Cowork &middot; Code 탭 설정 항목 계획 (클릭하여 펼치기)</summary>
<div class="card">
<table>
<tr><th>설정 항목</th><th>Claude Desktop</th><th>AX Copilot 계획</th><th>상태</th></tr>
<tr><td><strong>기본 파일 접근 권한</strong></td><td>Ask / Auto 선택</td><td>Ask / Auto / Deny 3단계</td><td class="status-done">완료</td></tr>
<tr><td><strong>탭별 대화 분리</strong></td><td>탭별 별도 대화 이력</td><td>탭별 대화 완전 분리 저장</td><td class="status-done">완료</td></tr>
<tr><td><strong>허용 도구 목록</strong></td><td>도구별 활성/비활성 토글</td><td>설정에서 도구별 체크박스</td><td class="status-todo">Phase 2</td></tr>
<tr><td><strong>내장 스킬</strong></td><td>없음 (Artifacts로 대체)</td><td>ExcelSkill, MarkdownSkill, HtmlSkill 등</td><td class="status-todo">Phase 2</td></tr>
<tr><td><strong>최대 에이전트 반복 횟수</strong></td><td>내부 제한 (~100회)</td><td>설정에서 25~100 지정</td><td class="status-todo">Phase 2</td></tr>
<tr><td><strong>자동 컨텍스트 요약</strong></td><td>자동 (토큰 초과 시)</td><td>임계치 조절 가능</td><td class="status-todo">Phase 2</td></tr>
<tr><td><strong>탭별 모델 선택</strong></td><td>전역 모델 선택</td><td>Chat / Cowork / Code 탭별 기본 모델</td><td class="status-todo">Phase 2</td></tr>
<tr><td><strong>Git 스냅샷</strong></td><td>자동 커밋/되돌리기</td><td>작업 전 자동 스냅샷, 원클릭 롤백</td><td class="status-todo">Phase 3</td></tr>
<tr><td><strong>코드 에디터 설정</strong></td><td>없음</td><td>AvalonEdit 테마, 폰트/크기, 줄번호</td><td class="status-todo">Phase 3</td></tr>
</table>
</div>
</details>
<!-- ── 10. 공통 개발 지침 ── -->
<h2 id="p1-guidelines" class="section-title">10. 공통 개발 지침</h2>
<div class="section-desc">
모든 기능 개발 시 아래 5가지 공통 원칙을 준수합니다.
</div>
<details class="fold">
<summary>지침 1~5 상세 (클릭하여 펼치기)</summary>
<div class="card" style="margin-bottom:20px;">
<h3 style="color:#4b5efc;">지침 1. 커스텀 UI 적극 개발</h3>
<p>화면 디자인 개선을 위해 <strong>커스텀 화면을 적극 개발</strong>하여 사용합니다.</p>
<ul style="margin:10px 0 0 20px;">
<li>WPF 기본 제공 컨트롤(ContextMenu, MessageBox, Dialog 등) 사용을 <strong>지양</strong>합니다.</li>
<li>다크/라이트 테마 모두에서 올바르게 동작하도록 DynamicResource 기반으로 구현합니다.</li>
</ul>
</div>
<div class="card" style="margin-bottom:20px;">
<h3 style="color:#10b981;">지침 2. 사용자-모델 상호 피드백 구조</h3>
<p>사용자와 대화 모델이 <strong>상호 피드백하는 구조</strong>로 개발합니다.</p>
<table style="margin-top:12px;font-size:13px;">
<tr><th>단계</th><th>AI 행동</th><th>사용자 피드백 방식</th></tr>
<tr><td>계획</td><td>작업 목록 + 예상 결과 제시</td><td>승인 / 수정 / 취소 버튼</td></tr>
<tr><td>실행</td><td>도구 호출 전 확인 요청</td><td>실행 / 건너뛰기 버튼</td></tr>
<tr><td>검수</td><td>결과 미리보기 + 요약 표시</td><td>승인 / 재작업 / 메시지</td></tr>
</table>
</div>
<div class="card" style="margin-bottom:20px;">
<h3 style="color:#8b5cf6;">지침 3. 최신 논문 및 오픈소스 적극 활용</h3>
<p><strong>최신 논문 및 오픈소스</strong>를 활용하여 기능 고도화를 적극 추진합니다.</p>
<ul style="margin:10px 0 0 20px;">
<li>에이전트 아키텍처, 도구 사용 패턴, RAG 기법 등 학술 연구 결과를 구현에 반영합니다.</li>
<li>새로운 기능 기획 시 관련 논문/오픈소스를 먼저 조사하고 벤치마크합니다.</li>
</ul>
</div>
<div class="card" style="margin-bottom:20px;">
<h3 style="color:#f59e0b;">지침 4. NuGet 고성능 라이브러리 적극 채용 + 포함배포</h3>
<p>필요한 경우 <strong>고성능 NuGet 라이브러리</strong>를 적극 채용하고, <strong>포함배포(self-contained)</strong>로 인트라넷 호환성을 보장합니다.</p>
<table style="margin-top:12px;font-size:13px;">
<tr><th>영역</th><th>현재</th><th>검토 대상 NuGet</th><th>용도</th></tr>
<tr><td>DOCX/XLSX</td><td>DocumentFormat.OpenXml</td><td>이미 채택</td><td>Word/Excel 생성</td></tr>
<tr><td>PDF 생성</td><td>미구현</td><td>QuestPDF, itext7</td><td>PDF 보고서 직접 생성</td></tr>
<tr><td>Excel 고급</td><td>OpenXml 직접</td><td>ClosedXML</td><td>더 간편한 Excel API</td></tr>
<tr><td>차트 이미지</td><td>CSS 차트</td><td>ScottPlot, LiveCharts2</td><td>차트를 이미지로 렌더링</td></tr>
<tr><td>마크다운</td><td>직접 파싱</td><td>Markdig</td><td>MD→HTML 고품질 변환</td></tr>
</table>
</div>
<div class="card" style="margin-bottom:20px;">
<h3 style="color:#ec4899;">지침 5. 마우스 오버 애니메이션 필수 적용</h3>
<p>대화창에서 <strong>마우스 오버가 가능한 모든 버튼, 아이콘</strong>에 호버 시 애니메이션을 적용합니다.</p>
<table style="margin-top:12px;font-size:13px;">
<tr><th>대상</th><th>호버 효과</th><th>구현 방법</th></tr>
<tr><td>GhostBtn (사이드바 버튼)</td><td>1.08x 확대</td><td>XAML Style.Triggers + ScaleTransform</td></tr>
<tr><td>TopTabBtn (탭 버튼)</td><td>1.06x 확대</td><td>XAML Style.Triggers + ScaleTransform</td></tr>
<tr><td>BtnSend, BtnStop, BtnAttach</td><td>1.10~1.12x 확대</td><td>코드비하인드 ApplyHoverScaleAnimation()</td></tr>
<tr><td>BtnModelSelector</td><td>Y축 -2.5px 바운스</td><td>코드비하인드 ApplyHoverBounceAnimation()</td></tr>
<tr><td>액션 버튼 (복사, 편집 등)</td><td>1.15x 확대</td><td>CreateActionButton 내 적용</td></tr>
</table>
<div style="margin-top:12px;padding:12px;background:#fef2f2;border-radius:8px;border-left:3px solid #ef4444;font-size:12px;">
<strong>금지 사항:</strong> 인접 요소(탭 버튼, 가로 나열 메뉴, 툴바 아이콘 등)에 ScaleTransform 확대 효과 사용 금지 — 이웃 요소를 가리거나 레이아웃 깨짐. 대안: TranslateTransform(바운스), 배경색 변경, Opacity 변경 사용.
</div>
<div style="margin-top:8px;padding:12px;background:#eff6ff;border-radius:8px;border-left:3px solid #3b82f6;font-size:12px;">
<strong>디자인 통일 원칙:</strong> 모든 선택 표시는 심플한 V 체크 Path(CreateSimpleCheck())로 통일. Segoe MDL2 Assets 폰트 체크마크 사용 금지. 라디오 버튼 형태(원+점) 사용 금지.
</div>
</div>
</details>
<!-- ██████████████████████████████████████████████████████████ -->
<!-- PART 2: 완료된 고도화 -->
<!-- ██████████████████████████████████████████████████████████ -->
<div class="part-title">Part 2 — 완료된 고도화</div>
<!-- ── Phase 2.5~7 ── -->
<h2 id="p2-phase25-7" class="section-title">11. Phase 2.5~7 (v1.1.0 ~ v1.2.1) <span class="badge-completed">완료</span></h2>
<div class="card">
<ul>
<li>에이전트 루프 엔진 (21개 도구), 10종 무드, 커스텀 프리셋</li>
<li>마크다운 렌더링 (테이블/인용/링크/취소선), 코드 블록 강화</li>
<li>Code 탭 (5프리셋), DevEnvDetect/BuildRun/GitTool, Nexus 연동</li>
<li>8단계 워크플로우 시스템 프롬프트, AX.md 프로젝트 컨텍스트</li>
</ul>
</div>
<!-- ── Phase 7.5 ── -->
<h2 id="p2-phase75" class="section-title">12. Phase 7.5 (v1.2.2) <span class="badge-completed">완료</span></h2>
<div class="card">
<ul>
<li>무지개 글로우 효과 (런처/채팅), 커스텀 UI (컨텍스트 메뉴, InputDialog)</li>
<li>설정 구조 개편 (공통 탭 통합), 다크 테마 6종 가독성 개선</li>
<li>알림 오류 수정 (ShowTips/NotifyOnComplete), ViewModel 바인딩 정비</li>
</ul>
</div>
<!-- ── Phase 8 ── -->
<h2 id="p2-phase8" class="section-title">13. Phase 8 (v1.3.0) — 경쟁 서비스 벤치마크 기반 <span class="badge-completed">완료</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>구현 내용</th></tr>
<tr><td>8-1</td><td>MCP 클라이언트</td><td>McpClientService (stdio/JSON-RPC), McpTool 래핑, 설정 UI</td></tr>
<tr><td>8-2</td><td>모델 폴백</td><td>FallbackModels 순차 시도, 폴백 알림, 설정 편집 UI</td></tr>
<tr><td>8-3</td><td>대화 분기</td><td>ParentId/BranchLabel, 우클릭 "여기서 분기", 사이드바 분기 아이콘</td></tr>
<tr><td>8-4</td><td>스플릿 뷰</td><td>자동 프리뷰 (에이전트 파일 수정 시), AutoPreview 설정</td></tr>
<tr><td>8-5</td><td>커맨드 팔레트</td><td>Ctrl+Shift+P, 16개 명령, 한글 초성 검색</td></tr>
<tr><td>8-6</td><td>토큰 관리</td><td>TokenEstimator (비용 추정, CJK 가중치), 상태바 비용 표시</td></tr>
<tr><td>8-7</td><td>에이전트 자율성</td><td>동적 반복 한도 (도구 15+ → 2배), 다단계 반성</td></tr>
<tr><td>8-8</td><td>개발자 모드</td><td>공통 탭, 비밀번호 보호, 스텝 승인</td></tr>
<tr><td>8-9</td><td>보안 감사 로그</td><td>AuditLogService (JSON 영속화), 설정 토글 + 폴더 열기</td></tr>
<tr><td>추가</td><td>다중 서버</td><td>RegisteredModel에 endpoint/apiKey 필드, 모델별 서버 라우팅</td></tr>
</table>
</div>
<!-- ── 개발 진행 로그 ── -->
<h2 id="p2-devlog" class="section-title">14. 개발 진행 로그 (v1.0.5 ~ v1.0.7)</h2>
<details class="fold">
<summary>v1.0.5 AI 서비스 전면 개선 (클릭하여 펼치기)</summary>
<div class="card">
<h3>2026-03-28 — v1.0.5 AI 서비스 전면 개선</h3>
<table>
<tr><th>항목</th><th>상태</th><th>변경 내용</th></tr>
<tr><td>LlmService JSON 파싱 안전</td><td class="status-done">완료</td><td>SafeParseJson 래퍼, 배열 길이 검사, API error 응답 감지</td></tr>
<tr><td>API 에러 분류</td><td class="status-done">완료</td><td>HTTP 상태 코드별 메시지 (401/403/404/429/500)</td></tr>
<tr><td>재시도 로직</td><td class="status-done">완료</td><td>PostJsonWithRetryAsync — 429/타임아웃 시 최대 2회</td></tr>
<tr><td>청크 타임아웃</td><td class="status-done">완료</td><td>ReadLineWithTimeoutAsync — 30초 무응답 시 스트림 종료</td></tr>
<tr><td>ChatStorageService 동기화</td><td class="status-done">완료</td><td>ReaderWriterLockSlim, 원자적 쓰기(tmp→rename)</td></tr>
<tr><td>ChatHandler 싱글턴</td><td class="status-done">완료</td><td>lock(_windowLock)으로 중복 창 생성 방지</td></tr>
<tr><td>ChatWindow UI 쓰로틀링</td><td class="status-done">완료</td><td>DispatcherTimer 50ms 간격 갱신, Brush 캐싱</td></tr>
<tr><td>Claude API 백엔드</td><td class="status-done">완료</td><td>Anthropic Messages API, 스트리밍(content_block_delta)</td></tr>
<tr><td>API 키 보안 분리</td><td class="status-done">완료</td><td>Ollama/vLLM=암호화, Gemini/Claude=평문</td></tr>
<tr><td>설정 UI AI 탭</td><td class="status-done">완료</td><td>4종 서비스 선택, 서비스별 키 입력 안내 텍스트 분리</td></tr>
</table>
</div>
</details>
<details class="fold">
<summary>v1.0.6 채팅 서비스 품질 집중 개선 (클릭하여 펼치기)</summary>
<div class="card">
<h3>2026-03-28 — v1.0.6 채팅 서비스 품질 집중 개선</h3>
<table>
<tr><th>항목</th><th>상태</th><th>변경 내용</th></tr>
<tr><td>스트리밍 실시간 표시 수정</td><td class="status-done">완료</td><td>청크 단위 갱신 + Dispatcher.InvokeAsync(Background) 방식</td></tr>
<tr><td>Shift+Enter 줄바꿈</td><td class="status-done">완료</td><td>AcceptsReturn="True" + PreviewKeyDown 핸들러</td></tr>
<tr><td>프롬프트 카드 워터마크</td><td class="status-done">완료</td><td>워터마크(placeholder) 오버레이 표시</td></tr>
<tr><td>좋아요/싫어요 상호 배타</td><td class="status-done">완료</td><td>resetSibling/registerReset 콜백 패턴</td></tr>
<tr><td>디스크 용량 초과 자동 삭제</td><td class="status-done">완료</td><td>드라이브 사용률 98% 초과 시 오래된 대화 자동 삭제</td></tr>
<tr><td>우클릭 컨텍스트 메뉴</td><td class="status-done">완료</td><td>대화 제목에서 우클릭 시 바로 커스텀 메뉴 표시</td></tr>
<tr><td>대화 더블클릭 오류 수정</td><td class="status-done">완료</td><td>RemoveAt+Insert 패턴으로 안전 교체</td></tr>
</table>
</div>
</details>
<details class="fold">
<summary>v1.0.7 Chat 1단계 개발 (3탭 &middot; 폴더 &middot; 첨부 &middot; 프리셋) (클릭하여 펼치기)</summary>
<div class="card">
<h3>2026-03-28 — v1.0.7 Chat 1단계 개발</h3>
<table>
<tr><th>항목</th><th>상태</th><th>변경 내용</th></tr>
<tr><td>Chat/Cowork/Code 3탭 UI</td><td class="status-done">완료</td><td>상단 RadioButton 탭을 Agent 단일 → 3탭으로 전환</td></tr>
<tr><td>작업 폴더 선택 바</td><td class="status-done">완료</td><td>폴더 경로 표시 + 선택/해제 버튼. 최근 폴더 10개 저장</td></tr>
<tr><td>파일 컨텍스트 첨부</td><td class="status-done">완료</td><td>파일 첨부 버튼 + 드래그 앤 드롭. 10MB 제한</td></tr>
<tr><td>권한 시스템 설계</td><td class="status-done">완료</td><td>3단계 파일 접근 권한: Ask / Auto / Deny</td></tr>
<tr><td>대화 주제 프리셋 7종</td><td class="status-done">완료</td><td>일반/경영/연구개발/제품분석/수율분석/제조기술/시스템</td></tr>
<tr><td>대화 내보내기 확장</td><td class="status-done">완료</td><td>Markdown + JSON + HTML + Text 4종 포맷</td></tr>
<tr><td>메시지 타임스탬프</td><td class="status-done">완료</td><td>사용자/AI 메시지에 HH:mm 시간 표시</td></tr>
<tr><td>격려 알림 주기 타이머</td><td class="status-done">완료</td><td>System.Timers.Timer 기반 주기적 알림</td></tr>
<tr><td>커스텀 메시지 박스</td><td class="status-done">완료</td><td>앱 전체 기본 MessageBox → 테마 통합 커스텀 다이얼로그</td></tr>
</table>
</div>
</details>
<!-- ██████████████████████████████████████████████████████████ -->
<!-- PART 3: 다음 고도화 계획 -->
<!-- ██████████████████████████████████████████████████████████ -->
<div class="part-title">Part 3 — 다음 고도화 계획</div>
<!-- ── Phase 9 ── -->
<h2 id="p3-phase9" class="section-title">15. Phase 9 — 차세대 고도화 (v1.5.0) <span class="badge-done">✓ 완료</span></h2>
<div class="context-box">
<h4>Context (2026년 3월 기준)</h4>
<ul style="margin-left:20px;">
<li><strong>Claude Code</strong>: SWE-bench 80.8%, Opus 4.6 1M 컨텍스트, 서브에이전트, MCP 표준화, 원격 트리거</li>
<li><strong>Cursor</strong>: Tab 자동완성, Multi-file 에이전트, 백그라운드 에이전트, LSP 통합</li>
<li><strong>OpenCode</strong>: Go 기반 오픈소스 131K&#9733;, Tree-of-Thought, MCP, 벡터 DB 컨텍스트</li>
<li><strong>GitHub Copilot</strong>: 코딩 에이전트, 자동 PR, 이슈→코드 파이프라인</li>
<li><strong>Windsurf</strong>: Cascade 멀티스텝 에이전트, 브라우저 통합</li>
<li><strong>논문</strong>: Agentic Coding Survey (arXiv 2025), SWE-Agent v2, CodeAct, Reflexion</li>
</ul>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-1. 코드 인텔리전스 (LSP 연동)</h4>
<span class="badge-done">✓ 완료</span>
</div>
<p><strong>갭:</strong> 코드 분석 없이 텍스트 기반으로만 코드 이해</p>
<p><strong>구현:</strong> Language Server Protocol 클라이언트로 정의 이동, 참조 검색, 심볼 목록 활용</p>
<p><strong>에이전트 도구:</strong> <code>lsp_goto_definition</code>, <code>lsp_find_references</code>, <code>lsp_symbols</code></p>
<p><strong>기술:</strong> OmniSharp (C#), typescript-language-server, pyright</p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-2. 병렬 에이전트 (서브에이전트) — ✓ 완료</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 단일 에이전트가 순차 처리, 큰 작업에서 느림</p>
<p><strong>구현:</strong></p>
<ul>
<li>메인 에이전트가 서브태스크 분할 → 서브에이전트 독립 실행 → 결과 병합</li>
<li>에이전트 도구: <code>spawn_agent</code>, <code>wait_agents</code></li>
</ul>
<p><strong>패턴:</strong> Claude Code의 Agent tool, OpenCode의 parallel execution</p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-3. 코드 시맨틱 검색 (TF-IDF) — ✓ 완료</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 대규모 프로젝트에서 관련 파일을 찾지 못함</p>
<ul>
<li>프로젝트 파일을 임베딩 벡터로 인덱싱 → 질문 관련 파일 자동 검색</li>
<li>에이전트 도구: <code>search_codebase</code> (시맨틱 검색)</li>
</ul>
<p><strong>기술:</strong> SQLite-vec 또는 Hnswlib (로컬 벡터 DB, 서버 불필요)</p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-4. 자동 테스트 루프 — ✓ 완료</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>구현:</strong> 코드 변경 감지 → 관련 테스트 자동 생성 → 실행 → 결과 기반 수정</p>
<p><strong>에이전트 도구:</strong> <code>test_generate</code>, <code>test_run</code>, <code>test_analyze</code></p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-5. 이벤트 트리거 에이전트 — ✓ 완료</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>구현:</strong> 스케줄된 작업 실행 (코드 리뷰, 보안 스캔, 일일 보고서)</p>
<p><strong>트리거 소스:</strong> 타이머, 파일 변경 감지, Git push/pull 이벤트</p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-6. PDF/문서 내보내기 — ✓ 완료</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>구현:</strong> 대화 → PDF, 보고서 → Word/PDF 변환</p>
<p><strong>기술:</strong> HTML → PDF (PuppeteerSharp 또는 wkhtmltopdf)</p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-7. 실시간 diff 뷰어 — ✓ 완료</h4>
<span class="priority priority-medium">중간</span>
</div>
<ul>
<li>수정 전/후 비교 (라인 기반 diff, 색상 하이라이트)</li>
<li>프리뷰 패널에 diff 탭 자동 추가</li>
<li>Accept/Reject 버튼으로 변경 승인/취소</li>
</ul>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-8. 대화 분기 트리 탐색기</h4>
<span class="priority priority-low">낮음</span>
</div>
<p><strong>구현:</strong> 트리 형태 대화 탐색기 (노드 = 메시지, 간선 = 분기, 현재 위치 하이라이트)</p>
</div>
<div class="feature-card">
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;">
<h4>9-9. 접근성 (A11y)</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>구현:</strong> WPF AutomationPeer, 키보드 내비게이션, 고대비 모드 (WCAG 2.1 AA)</p>
</div>
<!-- ── Phase 10 ── -->
<h2 id="p3-phase10" class="section-title">16. Phase 10 — 지능형 에이전트 (v1.5.0) <span class="badge-done">✓ 완료</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>구현 내용</th><th>상태</th></tr>
<tr><td>10-1</td><td>자동 모델 선택 (Auto Router)</td><td>질문 유형 감지 → 최적 모델 자동 라우팅, 잠금 모드</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>10-2</td><td>에이전트 메모리 (영속 학습)</td><td>프로젝트 규칙/코딩 선호도 자동 기억, 대화 간 유지</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>10-3</td><td>웹훅 트리거 확장</td><td>Git push/PR, Jira/Slack 웹훅 → 에이전트 자동 실행</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>10-4</td><td>멀티모달 입력 (Vision)</td><td>Ctrl+V 이미지 붙여넣기 → Gemini/Claude/Ollama/OpenAI Vision API</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>10-5</td><td>코드 검색 개선</td><td>TF-IDF + SQLite 영속 인덱스, 증분 업데이트, 바이그램</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>10-6</td><td>에이전트 훅 시스템</td><td>도구 호출 전/후 사용자 스크립트 실행</td><td><span class="badge-done">✓ 완료</span></td></tr>
</table>
</div>
<!-- ── Phase 11 ── -->
<h2 id="p3-phase11" class="section-title">17. Phase 11 — 생태계 확장 (v1.5.0) <span class="badge-done">✓ 완료</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>구현 내용</th><th>상태</th></tr>
<tr><td>11-1</td><td>스킬 시스템</td><td>*.skill.md YAML 프론트매터 → 슬래시 명령 자동 등록. 3폴더 우선순위. 기본 스킬 3종</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>11-2</td><td>AI 코드 리뷰 자동화</td><td>CodeReviewTool — diff_review/file_review/pr_summary. 정적 분석 + diff 파서</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>11-3</td><td>드래그&드롭 AI 처리</td><td>파일 유형별 AI 액션 팝업 (코드/문서/데이터/이미지)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>추가</td><td>프로젝트 지침 (AX.md)</td><td>ProjectRuleTool — read/append/write, 사용자 승인</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>추가</td><td>슬래시 명령어 강화</td><td>탭별 필터링, /help 도움말 창, 12개 내장 명령</td><td><span class="badge-done">✓ 완료</span></td></tr>
</table>
</div>
<!-- ── Phase 12 ── -->
<h2 id="p3-phase12" class="section-title">18. Phase 12 — 스킬/커넥터 고도화 + 자율 에이전트 (v2.0+) <span class="badge-planned">차기 개발</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
<tr><td>12-1</td><td><strong>도구/커넥터 관리 UI</strong></td><td>설정 → 기타에 29개 도구 카드 리스트, 활성/비활성 토글, 권한 표시</td><td><span class="priority priority-high">최고</span></td></tr>
<tr><td>12-2</td><td><strong>SKILL.md 표준 호환</strong></td><td>agentskills.io 스펙 지원. *.skill.md + 폴더/SKILL.md 양쪽 호환. 도구명 매핑</td><td><span class="priority priority-high">최고</span></td></tr>
<tr><td>12-3</td><td><strong>스킬 시각적 편집기</strong></td><td>폼 기반 UI로 스킬 생성 (이름/설명/지시사항/도구 선택). SKILL.md 저장</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>12-4</td><td><strong>런타임 의존 스킬</strong></td><td>Python/Node 감지 → 고급 스킬 자동 활성화, 4종 번들</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>12-5</td><td><strong>워크플로우 분석기</strong></td><td>에이전트 실행 실시간 시각화 창, AgentLogLevel 연동, 타이밍/토큰 추적</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>12-6</td><td><strong>스킬 갤러리 UI</strong></td><td>설치된 스킬 카드 뷰, 카테고리 필터, 내장/사용자 뱃지, 편집/복제/삭제</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>12-7</td><td><strong>스킬 가져오기/내보내기</strong></td><td>로컬 zip 기반 스킬 패키지 설치/내보내기 (온라인 마켓 제외)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>12-8</td><td>에이전트 팀 (다중 세션 협업)</td><td>여러 에이전트 메시지 교환 + 분업</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>12-9</td><td>오프라인 AI (로컬 SLM)</td><td>ONNX Runtime + phi-3, 서버 없이 번역/요약</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>12-10</td><td>음성 입출력</td><td>Whisper STT + TTS</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>12-11</td><td>접근성 (A11y)</td><td>WCAG 2.1 AA, 키보드 내비게이션</td><td><span class="priority priority-low">낮음</span></td></tr>
</table>
</div>
<!-- ── Phase 13 ── -->
<h2 id="p3-phase13" class="section-title">19. Phase 13 — 스킬 생태계 + 에이전트 분석 고도화 (v1.5.3+) <span class="badge-planned">차기 개발</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
<tr><td>13-1</td><td><strong>스킬 갤러리 UI</strong></td><td>설치된 스킬 카드 뷰, 카테고리 필터, 내장/사용자/고급 뱃지, 편집/복제/삭제</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>13-2</td><td><strong>스킬 시각적 편집기</strong></td><td>폼 기반 UI로 스킬 생성 (이름/설명/지시사항/도구 선택), SKILL.md 저장</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>13-3</td><td><strong>스킬 가져오기/내보내기</strong></td><td>로컬 zip 기반 스킬 패키지 설치/내보내기</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>13-4</td><td><strong>에이전트 실행 통계 대시보드</strong></td><td>일별/주별 토큰 사용량, 도구 호출 빈도, 모델별 비용, 성공률 차트</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>13-5</td><td><strong>AgentLogLevel 채팅 UI 연동</strong></td><td>실행 이력 상세도를 코워크/코드 탭으로 이동, 채팅 본문 표시에 반영</td><td><span class="badge-done">✓ 완료</span></td></tr>
</table>
<p style="margin-top:12px;color:#888;font-size:13px;">
<strong>구현 순서:</strong> 13-A (13-5 + 13-3) → 13-B (13-1 + 13-4) → 13-C (13-2)
</p>
</div>
<!-- ── Phase 14 ── -->
<h2 id="p3-phase14" class="section-title">20. Phase 14 — 에이전트 도구 + 스킬 대확장 (v1.5.4+) <span class="badge-done">✓ 완료</span></h2>
<div class="context-box">
<h4>방향</h4>
<ul style="margin-left:20px;">
<li><strong>에이전트 도구 확장</strong>: 25종 → 42종+. 실무 작업 80% 이상을 에이전트가 자율 수행</li>
<li><strong>외부 검증 스킬 번들</strong>: Anthropic 공식, 커뮤니티 검증 스킬을 앱에 내장 (13개 → 29개)</li>
<li><strong>앱 인프라</strong>: 가이드 시스템, 설정 UI 개선, About 보안</li>
</ul>
</div>
<div class="card">
<h3>14-A. 데이터 처리 도구 (5종) <span class="badge-done">✓ 완료</span></h3>
<table>
<tr><th>#</th><th>도구</th><th>설명</th><th>상태</th></tr>
<tr><td>14-A1</td><td>json_tool</td><td>JSON 파싱·변환·검증·포맷팅 (jq 스타일 쿼리)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-A2</td><td>regex_tool</td><td>정규식 테스트·추출·치환 (패턴 설명 포함)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-A3</td><td>diff_tool</td><td>두 파일/텍스트 비교 → 통합 diff 출력</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-A4</td><td>base64_tool</td><td>Base64/URL 인코딩·디코딩</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-A5</td><td>hash_tool</td><td>파일·텍스트 MD5/SHA256 해시 계산</td><td><span class="badge-done">✓ 완료</span></td></tr>
</table>
</div>
<div class="card">
<h3>14-B. 시스템/환경 도구 (6종) <span class="badge-done">✓ 완료</span></h3>
<table>
<tr><th>#</th><th>도구</th><th>설명</th><th>상태</th></tr>
<tr><td>14-B1</td><td>clipboard_tool</td><td>Windows 클립보드 읽기·쓰기 (텍스트/이미지)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-B2</td><td>notify_tool</td><td>Windows 알림 전송 (장시간 작업 완료 알림)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-B3</td><td>env_tool</td><td>환경변수 읽기·설정 (프로세스 범위)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-B4</td><td>zip_tool</td><td>파일 압축(zip) / 해제</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-B5</td><td>log_search</td><td>Windows 이벤트 로그·애플리케이션 로그 검색</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>14-B6</td><td>datetime_tool</td><td>날짜·시간 변환, 타임존, 기간 계산</td><td><span class="badge-done">✓ 완료</span></td></tr>
</table>
</div>
<div class="card">
<h3>14-C. 네트워크/API 도구</h3>
<table>
<tr><th>#</th><th>도구</th><th>설명</th><th>상태</th></tr>
<tr><td>14-C1</td><td>http_tool</td><td>로컬/사내 HTTP API 호출 (GET/POST, JSON 파싱)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-C2</td><td>sql_tool</td><td>SQLite DB 쿼리 실행 (로컬 파일 기반)</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-C3</td><td>network_tool</td><td>포트 열림 확인, DNS 조회, ping (사내 망)</td><td><span class="priority priority-low">낮음</span></td></tr>
</table>
</div>
<div class="card">
<h3>14-E. UX 개선 (슬래시 명령어 고도화)</h3>
<table>
<tr><th>#</th><th>항목</th><th>설명</th><th>상태</th></tr>
<tr><td>14-E1</td><td>슬래시 칩 표시</td><td>명령 선택 후 입력창에 파란 칩으로 표시</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-E2</td><td>팝업 페이징</td><td>최대 N개 표시 + ▲▼ 네비게이션</td><td><span class="badge-done">✓ 완료</span></td></tr>
<tr><td>14-E3</td><td>compact 명령어</td><td>/init, /ctx, /pr, /todo, /clean, /refactor 등</td><td><span class="priority priority-medium">차기</span></td></tr>
</table>
</div>
<div class="card">
<h3>14-F. 외부 검증 스킬 내장 번들 (12종) <span class="badge-done">✓ 완료</span></h3>
<table>
<tr><th>#</th><th>스킬</th><th>설명</th><th>requires</th></tr>
<tr><td>14-F1</td><td>code-scaffold</td><td>프로젝트 구조 자동 생성</td><td></td></tr>
<tr><td>14-F2</td><td>meeting-minutes</td><td>회의록 정리 (참석자/결정사항/액션아이템)</td><td></td></tr>
<tr><td>14-F3</td><td>paper-review</td><td>논문 요약, 강점/약점 분석</td><td></td></tr>
<tr><td>14-F4</td><td>data-visualize</td><td>데이터 시각화 차트 (CSV/JSON → HTML)</td><td></td></tr>
<tr><td>14-F5</td><td>docx-creator</td><td>Word 문서 자동 생성</td><td>python</td></tr>
<tr><td>14-F6</td><td>xlsx-analyzer</td><td>Excel 데이터 분석·피벗·차트</td><td>python</td></tr>
<tr><td>14-F7</td><td>pdf-processor</td><td>PDF 텍스트 추출·병합·분할</td><td>python</td></tr>
<tr><td>14-F8</td><td>pptx-creator</td><td>PPT 프레젠테이션 자동 생성</td><td>node</td></tr>
<tr><td>14-F9</td><td>report-writer</td><td>구조화된 보고서 자동 작성</td><td></td></tr>
<tr><td>14-F10</td><td>api-docs</td><td>API 문서 자동 생성</td><td></td></tr>
<tr><td>14-F11</td><td>db-schema</td><td>DB 스키마 → ERD 생성</td><td></td></tr>
<tr><td>14-F12</td><td>commit-review</td><td>Git 커밋 메시지 검토 + 개선</td><td></td></tr>
</table>
<p style="margin-top:8px;color:#888;font-size:13px;">크기 영향: .skill.md 12개 ≈ 약 130KB (인스톨러 크기 영향 없음)</p>
</div>
<div class="card">
<h3>14-G. 앱 인프라 개선 (v1.5.3) <span class="badge-done">✓ 완료</span></h3>
<table>
<tr><th>#</th><th>항목</th><th>설명</th></tr>
<tr><td>14-G1</td><td>가이드 시스템 신설</td><td>사용자/개발자 가이드 분리, AES-256-CBC 암호화, GuideViewerWindow 내장 뷰어</td></tr>
<tr><td>14-G2</td><td>설정 UI 개선</td><td>독 바 탭 3번째 이동, 기타 탭 접기/열기 섹션</td></tr>
<tr><td>14-G3</td><td>About 정보 보안</td><td>기술 스택 비노출, "Commander + Agent" 표시</td></tr>
</table>
</div>
<!-- ── Phase 15 ── -->
<h2 id="p3-phase15" class="section-title">21. Phase 15 — 멀티패스 문서 엔진 + 스킬/도구 대확장 (v1.6.0) <span class="badge-done">✓ 완료</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>구현 내용</th></tr>
<tr><td>15-A</td><td><strong>멀티패스 문서 생성</strong></td><td>document_plan (개요 구조화) + document_assemble (섹션 조립). 3페이지+ 문서를 개요→섹션별 상세→조립 방식으로 품질 향상</td></tr>
<tr><td>15-B</td><td><strong>PPT 네이티브 생성</strong></td><td>pptx_create — OpenXML 기반, Python 무의존, 5종 레이아웃, 4종 테마</td></tr>
<tr><td>15-C</td><td><strong>데이터 피벗/집계</strong></td><td>data_pivot — CSV/JSON 그룹화·필터·정렬·집계 (LINQ 기반)</td></tr>
<tr><td>15-D</td><td><strong>템플릿 렌더링</strong></td><td>template_render — Mustache 스타일 변수 치환·반복·조건부</td></tr>
<tr><td>15-E</td><td><strong>이미지 분석</strong></td><td>image_analyze — LLM 멀티모달 describe/OCR/데이터 추출/비교</td></tr>
<tr><td>15-F</td><td><strong>파일 변경 감지</strong></td><td>file_watch — 폴더 감시, 상대 시간(1h/7d), 유형별 통계</td></tr>
<tr><td>15-G</td><td><strong>텍스트 요약</strong></td><td>text_summarize — 청크 분할→핵심 추출 요약 (4종 스타일)</td></tr>
<tr><td>15-H</td><td><strong>내장 스킬 16종 추가</strong></td><td>비즈니스 4종 + 데이터 3종 + 개발 3종 + 외부 검증 6종 — 총 29종</td></tr>
<tr><td>15-I</td><td><strong>설정</strong></td><td>EnableMultiPassDocument, MultiPassThresholdPages</td></tr>
</table>
<p style="margin-top:8px;color:#888;font-size:13px;">도구: 34개 → <strong>42개</strong> (+8), 스킬: 13개 → <strong>29개</strong> (+16)</p>
</div>
<!-- ██████████████████████████████████████████████████████████ -->
<!-- PART 4: 차세대 고도화 계획 -->
<!-- ██████████████████████████████████████████████████████████ -->
<div class="part-title">Part 4 — 차세대 고도화 계획 (v1.7.0 ~ v2.0)</div>
<div class="context-box">
<h4>계획 기준 (2026년 3월)</h4>
<ul style="margin-left:20px;">
<li><strong>Claude Code</strong>: Plan mode, Hooks, 병렬 도구, 서브에이전트 팀</li>
<li><strong>Cursor</strong>: 프로젝트 규칙(.cursor/rules), 멀티파일 diff, 백그라운드 에이전트</li>
<li><strong>GitHub Copilot</strong>: 반복 테스트-수정, Workspace plan, 이슈→코드 파이프라인</li>
<li><strong>Windsurf</strong>: 자동 컨텍스트 수집, 영속 메모리, Cascade 멀티스텝</li>
<li><strong>논문</strong>: Reflexion (자기 성찰), CodeAct (코드 기반 액션), SWE-Agent v2</li>
</ul>
</div>
<!-- ── Phase 16 ── -->
<h2 id="p4-phase16" class="section-title">22. Phase 16 — 에이전트 지능 강화 + 개발자 경험 (v1.7.0) <span class="badge-planned">차기 개발</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
<tr><td>16-1</td><td><strong>플랜 모드 (Plan Mode)</strong></td><td>에이전트가 도구 실행 전 구조화된 계획 생성 → 사용자 검토/편집/승인 → 승인 후 실행. <code>PlanMode</code>: off/always/auto</td><td><span class="priority priority-highest">최고</span></td></tr>
<tr><td>16-2</td><td><strong>도구/커넥터 관리 UI</strong></td><td>설정에서 52개 도구 카테고리별 카드, 활성/비활성 토글, MCP 서버 연결 상태 표시</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>16-3</td><td><strong>프로젝트 규칙 시스템</strong></td><td><code>.ax/rules/*.md</code> 디렉토리 — 파일 패턴·작업 유형별 규칙을 시스템 프롬프트에 자동 주입</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>16-4</td><td><strong>반복 테스트-수정 루프</strong></td><td>TestLoopTool <code>auto_fix</code> 모드 — 테스트 실행→실패 파싱→수정→재실행 자동 반복</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>16-5</td><td><strong>병렬 도구 실행</strong></td><td>LLM 다수 도구 동시 호출 시 의존성 분석 후 <code>Task.WhenAll()</code> 병렬 실행</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>16-6</td><td><strong>SKILL.md 표준 완전 호환</strong></td><td>agentskills.io 스펙 전체 파싱, 외부↔내부 도구 이름 매핑</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>16-R</td><td><strong>런타임 고급 스킬 확장</strong></td><td>4종 추가: image-processor, diagram-generator, ocr-extract, data-visualize-adv (총 8종)</td><td><span class="priority priority-medium">중간</span></td></tr>
</table>
</div>
<div class="feature-card">
<h4>16-1. 플랜 모드 (Plan Mode) — 핵심 기능</h4>
<p><strong>경쟁 대응:</strong> Claude Code Plan mode, GitHub Copilot Workspace plan</p>
<p><strong>구현:</strong></p>
<ul>
<li><code>AppSettings.cs</code><code>PlanMode</code> 설정: off / always / auto</li>
<li><code>AgentLoopService.cs</code> — 첫 반복에서 plan-only 시스템 프롬프트 주입, 도구 호출 차단</li>
<li><code>ChatWindow.xaml</code> — PlanReviewPanel (계획 단계별 편집/순서변경/삭제 UI)</li>
<li><code>TaskDecomposer.cs</code> — 구조화된 JSON 계획 포맷 파싱 강화</li>
</ul>
</div>
<div class="feature-card">
<h4>16-3. 프로젝트 규칙 시스템 (.ax/rules/)</h4>
<p><strong>경쟁 대응:</strong> Cursor <code>.cursor/rules</code>, Claude Code custom commands</p>
<p><strong>구현:</strong></p>
<ul>
<li><code>ProjectRulesService.cs</code> — 규칙 로드, YAML 프론트매터 파싱 (<code>applies-to: *.cs</code>, <code>when: code-review</code>)</li>
<li><code>AgentLoopService.cs</code> — 컨텍스트에 맞는 규칙만 시스템 프롬프트에 자동 주입</li>
</ul>
</div>
<!-- ── Phase 17 ── -->
<h2 id="p4-phase17" class="section-title">23. Phase 17 — 심화 지능 + UX 혁신 (v1.8.0) <span class="badge-planned">계획</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
<tr><td>17-1</td><td><strong>자기 성찰 (Self-Reflection)</strong></td><td>도구 실패 시 구조화된 성찰 프롬프트 주입, 에러 패턴 추적 (Reflexion 패턴)</td><td><span class="priority priority-highest">최고</span></td></tr>
<tr><td>17-2</td><td><strong>작업 기억 (Working Memory)</strong></td><td>대화 압축 시에도 유지되는 구조화된 태스크 상태 (현재 작업, 참조 파일, 의사결정 로그)</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>17-3</td><td><strong>멀티파일 통합 Diff 뷰</strong></td><td>에이전트 다수 파일 수정 시 전체 변경사항을 하나의 패널에서 파일별/헌크별 승인/거부</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>17-4</td><td><strong>자동 컨텍스트 수집</strong></td><td>사용자 메시지에서 파일명 감지 → 자동 읽기, Git diff, 관련 코드 검색 → 컨텍스트 주입</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>17-5</td><td><strong>MCP HTTP+SSE 전송</strong></td><td>stdio 전용 → HTTP+SSE 트랜스포트 추가, 원격 MCP 서버 연결 지원</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>17-6</td><td><strong>대화 요약 온디맨드</strong></td><td><code>/summarize-chat</code> 슬래시 명령으로 현재 대화 구조화 요약</td><td><span class="priority priority-low">낮음</span></td></tr>
</table>
</div>
<div class="feature-card">
<h4>17-1. 자기 성찰 (Self-Reflection) — 핵심 기능</h4>
<p><strong>현황:</strong> 현재 단순 재시도만 존재 (<code>consecutiveErrors</code> 카운터)</p>
<p><strong>구현:</strong></p>
<ul>
<li><code>ReflectionService.cs</code> — 에러 패턴 추적, 성찰 프롬프트 생성</li>
<li><code>AgentLoopService.cs</code> — 에러 후 성찰 주입</li>
<li><code>IAgentTool.cs</code><code>AgentEventType.Reflecting</code> 추가</li>
</ul>
</div>
<div class="feature-card">
<h4>17-2. 작업 기억 (Working Memory)</h4>
<p><strong>경쟁 대응:</strong> Windsurf persistent memory, CrewAI structured memory layers</p>
<p><strong>구현:</strong></p>
<ul>
<li><code>WorkingMemoryService.cs</code> — 구조화된 태스크 상태 추적</li>
<li><code>ContextCondenser.cs</code> — 압축 시 작업 기억 보존</li>
</ul>
</div>
<!-- ── Phase 18 ── -->
<h2 id="p4-phase18" class="section-title">24. Phase 18 — 에코시스템 + 차별화 (v2.0) <span class="badge-planned">계획</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
<tr><td>18-1</td><td><strong>에이전트 팀 (Multi-Agent)</strong></td><td>특화 에이전트(코드리뷰, 문서작성, 보안감사)가 메시지 버스로 협업, 공동 작업 수행</td><td><span class="priority priority-highest">최고</span></td></tr>
<tr><td>18-2</td><td><strong>플러그인 갤러리 + 레지스트리</strong></td><td>로컬 NAS/Git 레지스트리 기반 플러그인/스킬 탐색, 설치, 업데이트 인앱 갤러리</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>18-3</td><td><strong>AI 스니펫</strong></td><td><code>;email {수신자} {주제}</code> → LLM이 이메일 초안 자동 생성. 기존 스니펫에 AI 확장</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>18-4</td><td><strong>파라미터 퀵링크</strong></td><td><code>jira {티켓번호}</code> → URL 템플릿 변수 치환 (사내 도구 빠른 접근)</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>18-5</td><td><strong>오프라인 AI (ONNX Runtime)</strong></td><td>서버 없이 번역/요약/분류 가능한 로컬 소형 모델, 모델 별도 배포</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>18-6</td><td><strong>웹 검색 AI 요약</strong></td><td><code>?</code> 검색 결과를 AI로 요약하여 런처에 표시</td><td><span class="priority priority-low">낮음</span></td></tr>
</table>
</div>
<div class="feature-card">
<h4>18-1. 에이전트 팀 (Multi-Agent) — 차별화 핵심</h4>
<p><strong>경쟁 대응:</strong> GitHub Copilot workspace agents, CrewAI role-based teams</p>
<p><strong>구현:</strong></p>
<ul>
<li><code>AgentTeamService.cs</code> — 팀 오케스트레이션</li>
<li><code>AgentMessageBus.cs</code> — 에이전트 간 통신</li>
<li><code>AgentTeamConfig.cs</code> — 팀 구성 모델</li>
<li><code>ChatWindow.xaml</code> — 팀 모드 UI</li>
</ul>
</div>
<!-- ── 기술 부채 (v1.3.0 해결) ── -->
<h2 id="p3-debt" class="section-title">25. 기존 기능 보완 (v1.3.0~v1.5.0 완료) <span class="badge-done">✓ 완료</span></h2>
<div class="card">
<table>
<tr><th>항목</th><th>상태</th></tr>
<tr><td>MCP UI (서버 관리 화면)</td><td>✓ 비주얼 카드 리스트 + 활성/비활성 토글 + 서버 추가/삭제 UI 구현</td></tr>
<tr><td>대화 분기 트리 UI</td><td>✓ 사이드바에 들여쓰기(16px) + 보라색 분기 아이콘 표시</td></tr>
<tr><td>스플릿 뷰 diff</td><td>✓ DiffService (LCS 기반 라인 diff) 구현 — Added/Removed/Equal 분류</td></tr>
<tr><td>english.json 확장</td><td>✓ 101 → 150개 완료</td></tr>
<tr><td>movies.json 확장</td><td>✓ ~90 → 150개 완료</td></tr>
<tr><td>McpClientService nullable warning</td><td>✓ CS8603 해결 — 전체 경고 0개, 오류 0개</td></tr>
<tr><td>대화별 하단 설정 저장</td><td>✓ 권한/데이터활용/무드를 대화별 독립 저장/복원</td></tr>
<tr><td>vLLM 다중 서버 지원</td><td>✓ RegisteredModel에 endpoint/apiKey 필드, 모델별 서버 라우팅</td></tr>
<tr><td>설정창 OutlineHoverBtn 크래시</td><td>✓ 인라인 스타일로 교체</td></tr>
<tr><td>Auto 권한 경고 중복 표시</td><td>✓ 기존 대화에서 Auto였으면 경고 숨김 처리</td></tr>
<tr><td>ShowTips/NotifyOnComplete 바인딩</td><td>✓ SettingsViewModel 속성 추가, 설정값 저장 정상화</td></tr>
</table>
</div>
<!-- ══════════════════════════════════════════════════════════ -->
<div class="footer">
<strong>AX Copilot v1.6.1</strong> — AX Agent 대화 서비스 고도화 &mdash; 종합 계획 및 코드 리뷰<br>
최종 업데이트: 2026-03-30
</div>
</div>
<script>
// 각 section-title 다음 요소들을 section-body div로 자동 래핑
document.querySelectorAll('.section-title').forEach(title => {
const body = document.createElement('div');
body.className = 'section-body';
let next = title.nextElementSibling;
const siblings = [];
while (next && !next.classList.contains('section-title') && !next.classList.contains('part-title') && !next.classList.contains('footer')) {
siblings.push(next);
next = next.nextElementSibling;
}
if (siblings.length === 0) return;
title.after(body);
siblings.forEach(s => body.appendChild(s));
title.addEventListener('click', () => {
title.classList.toggle('collapsed');
});
});
</script>
</body>
</html>