Internal Tech Seminar

AX Copilot

WPF 데스크톱 기반 AI 에이전트 플랫폼의
핵심 아키텍처와 차별화 전략

WPF / .NET 8 Agentic AI Loop 91+ Tools Multi-Model MCP Protocol

Table of Contents

1

오픈소스 기반 핵심 엔진 구성

AX Copilot의 에이전트 엔진은 OpenHands(전 OpenDevin)와 OpenCode 두 프로젝트의 아키텍처 패턴을 분석하여, WPF 데스크톱 환경에 맞게 재설계한 결과물입니다.

1.1 OpenHands 반영 사항

MemGPT 스타일 다단계 컨텍스트 압축 ContextCondenser

OpenHands의 AgentController가 수행하는 메모리 관리 전략을 5단계 파이프라인으로 구현. 단계 1~4는 LLM 호출 없이 수행하여 비용을 절감하고, 5단계에서만 LLM 1회 호출.

Plan-and-Solve 분해 전략 TaskDecomposer

OpenHands CodeActAgent의 태스크 분해 패턴 반영. LLM 응답에서 번호 매긴 단계를 추출 (TaskDecomposer.ExtractSteps()), 현재 도구 호출을 계획 단계에 매칭하여 실시간 진행률을 UI에 표시합니다.

도구 병렬 실행 + 프리페치 AgentLoopParallelExecution

읽기 전용 도구를 자동 분류하여 최대 12개까지 병렬 실행. 스트리밍 응답 도중에도 읽기 도구를 선행 실행(Prefetch)하여 대기 시간 최소화.

1.2 OpenCode 반영 사항

실행 엔진 3단계 분리 AxAgentExecutionEngine

OpenCode의 Prepare → Execute → Commit 분리 패턴을 답습합니다.

  • ResolveExecutionMode() — 탭/설정에 따라 에이전트 루프 vs 단순 LLM 호출 결정
  • PrepareExecution() — 시스템 프롬프트 스택 + 메시지 조립
  • ExecutePreparedAsync() — agentLoopRunner 또는 llmRunner로 분기
  • CommitAssistantMessage() — 결과 메시지 영속화
스트리밍 도구 실행 + 자동 복구 StreamingToolExecutionCoordinator

SSE 스트리밍 중 도구 블록 도착 즉시 실행. 컨텍스트 오버플로우 자동 감지 → 강제 압축, 일시적 네트워크 오류 → 지수 백오프 재시도 포함.

💡
설계 철학
OpenHands의 자율적 다단계 태스크 수행 + OpenCode의 경량 실행 분리를 결합하되, WPF 데스크톱 특성(UI 스레드 분리, 로컬 파일 시스템, 시스템 트레이 통합)에 맞춰 재설계.
2

Agentic Loop 동작 구조

2.1 4단계 실행 사이클

에이전트 루프는 Plan → Execute → Observe → Evaluate 사이클을 작업 완료까지 자율 반복합니다.

Phase 1
Planning
LLM이 도구 호출 계획 생성
Phase 2
Execute
읽기 병렬 + 쓰기 순차 실행
Phase 3
Observe
도구 결과 수집 + 이벤트 발행
Phase 4
Evaluate
LLM이 결과 판단 + 다음 행동

AgentLoopService 핵심 기능

2.2 전체 아키텍처 다이어그램

+------------------------------------------------------------------+ | AX Copilot UI Layer | | ChatWindow -- TranscriptHost -- AgentEventProcessor | | | | | | | v v v | | V1 Render V2 Render AgentEvent stream | +----------+----------------------------+---------------------------+ | | +----------v----------------------------v---------------------------+ | AxAgentExecutionEngine | | ResolveMode -> PrepareExecution -> ExecutePrepared -> Commit | +----------+----------------------------+---------------------------+ | | +----------v-----------+ +------------v----------------------------+ | AgentLoopService | | LlmService (Streaming) | | | | Ollama / vLLM / Gemini / Claude | | Plan -> Execute -> | | Override Stack (Push/Pop) | | Observe -> Evaluate | | Token Tracking per call | +-----------+-----------+ +---------------------------------------------+ | +-----------v---------------------------------------------------------+ | ToolRegistry (91+ Tools) | | File Ops | Document | Code/Git | System | MCP Dynamic | | Parallel | Plan+ | Worktree | Notify | JSON-RPC stdio | | Batch | Assemble | Branch | Env | mcp_{srv}_{fn} | +-----------+---------------------------------------------------------+ | +-----------v---------------------------------------------------------+ | Permission / Security Layer | | OperationModePolicy (Internal/External) | | PermissionModeCatalog (Default/AcceptEdits/Plan/Bypass/Deny) | | Tool-level overrides with wildcard/pattern matching | +---------------------------------------------------------------------+

2.3 도구 시스템 (91+ Tools)

91+
내장 도구
3
노출 버킷
12
최대 병렬 실행

도구 카테고리

카테고리주요 도구설명
파일 조작file_read file_write file_edit glob grep파일 읽기/쓰기/검색 + folder_map
문서 생성html_create docx_create xlsx_create pptx_create8가지 Mood 템플릿 + Multi-pass 조립
코드/Gitgit_tool code_search build_run test_loop브랜치 격리, 코드 리뷰, CI 연동
시스템process env_tool clipboard notify프로세스 실행, 환경 변수, 알림
데이터json_tool sql_tool math_tool data_pivot구조화 데이터 처리 + 피벗
워크플로우spawn_agent enter_worktree checkpoint playbook에이전트 분기, 체크포인트, 자동화
MCP 동적mcp_{server}_{fn}JSON-RPC 2.0 over stdio 외부 도구 서버

3

컨텍스트 관리 + 보안

3.1 5단계 압축 파이프라인

모델 입력 한도의 80%에 도달하면 자동으로 트리거. 단계 1~4는 LLM 호출 없이 수행하여 비용 절감.

Stage 1
Tool Result 절삭
LLM 호출 없음. 도구 결과를 1,500자 제한 (head 220자 + tail 140자 보존). 가장 빈번하게 적용.
Stage 2
Session Memory 통합
LLM 호출 없음. 이전 압축 경계의 요약들을 단일 세션 메모리 메시지로 병합.
Stage 3
Microcompact
LLM 호출 없음. 오래된 실행 로그/도구 묶음을 한 줄 요약으로 교체. 단일 결과 480자 제한.
Stage 4
Collapse / Snip
LLM 호출 없음. 남은 긴 로그를 head+tail 스니펫으로 절삭. 증거 보존 + 크기 축소.
Stage 5
LLM 요약 (Historical Summarization)
1회 LLM 호출. 가장 오래된 대화 구간을 LLM으로 요약. 최근 6개 메시지는 원본 유지.

3.2 권한 모드 + 사내/외부 모드

5가지 권한 모드 PermissionModeCatalog
  • Default — 모든 도구 실행 전 사용자 승인 요청
  • AcceptEdits — 쓰기 도구 자동 승인, 위험 도구만 확인
  • Plan — 계획만 표시, 쓰기 도구 차단
  • Bypass — 모든 도구 자동 실행 (완전 자동)
  • Deny — 읽기 전용, 쓰기 완전 차단

도구별 패턴 매칭 오버라이드: tool_name@pattern 구문 지원

운영 모드 OperationModePolicy

사내 모드 (Internal)

  • 외부 LLM (Gemini, Claude) 완전 차단
  • http_tool 차단
  • 워크스페이스 외부 경로 접근 시 강제 승인
  • Ollama / vLLM 로컬 백엔드만 허용
  • API 키 DPAPI+AES 암호화 저장

외부 모드 (External)

  • 모든 서비스/도구 사용 가능

4

코워크 / 코드 탭 특장점

Chat / Cowork / Code 3개 탭으로 분리된 워크스페이스. 각 탭은 고유한 시스템 프롬프트, 도구 집합, 권한 정책을 가집니다.

4.1 Cowork 탭 — 문서 생성 특화

핵심 원칙: "Tools First When Needed" Cowork

응답 시 텍스트보다 도구 호출을 우선. 독립적인 문서 읽기/생성을 병렬 배치 처리합니다.

문서 생성 워크플로우

  • 단일 섹션html_create, docx_create 직접 생성
  • 3페이지 이상document_plan → 섹션별 작성 → document_assemble
  • Multi-pass 모드 — 아웃라인 → LLM 섹션별 집필 → 조립 (최고 품질)

지원 출력 포맷 + HTML Mood 템플릿

HTML DOCX XLSX PPTX CSV Markdown
modern professional creative elegant dark corporate magazine dashboard

4.2 Code 탭 — 코드 개발 특화

핵심 원칙: 코드 검증 게이트 + 브랜치 격리 Code

코드 전용 도구

  • git_tool — Git 전체 워크플로우
  • file_edit — 정밀 라인 기반 코드 편집
  • build_run / test_loop — 빌드 + 테스트 반복
  • enter_worktree / exit_worktree — Git 워크트리 격리
  • code_review — Git diff 기반 자동 코드 리뷰

슬래시 커맨드 (Code 전용)

/review /commit /test /build /diff /branch /structure /doctor

4.3 탭별 비교표

특성ChatCoworkCode
에이전트 루프 단순 LLM 자율 루프 자율 루프
도구 실행 문서 중심 코드 중심
병렬 실행N/A
컨텍스트 압축 5단계 5단계
시스템 프롬프트기본 대화문서 생성 특화코드 개발 특화
워크스페이스 폴더 기반 폴더 기반

5

AX Commander 런처

5.1 글로벌 핫키 + 시스템 통합

Alt+Space 글로벌 런처 LauncherWindow

macOS Spotlight / Raycast 스타일이지만, AI 에이전트와 완전 통합된 시스템 전역 런처.

런처 핵심 기능

  • 파일/폴더/앱 검색 + 실행
  • 클립보드 히스토리 (이미지 포함)
  • 웹 검색 (Google, Naver, DuckDuckGo, Yahoo, Wikipedia)
  • 커스텀 핫키 바인딩
  • 번호 배지 Ctrl+1~9 단축키
  • 즐겨찾기 / 최근 항목
  • 파일 액션 모드 (복사/이동/삭제)
  • 스니펫 자동 확장
  • 대형 텍스트 표시 (Shift+Enter)

시스템 통합

  • WH_KEYBOARD_LL 로우레벨 키보드 후킹
  • 시스템 트레이 아이콘 + 커스텀 메뉴
  • Windows 시작 시 자동 실행 등록
  • 고해상도 DPI 스케일링 대응
  • 포커스 해제 시 자동 닫기
  • 위치 설정: center-top / center / bottom
  • 투명도 조절 (기본 96%)

테마 시스템

System Dark Light OLED Nord Monokai Catppuccin Sepia + Custom

5.2 위젯 및 Quick Actions

위젯 시스템

런처 하단에 선택적으로 표시되는 미니 위젯:

성능 모니터 뽀모도로 퀵 노트 날씨 캘린더 배터리
Quick Actions

입력창이 비어있을 때 최근 사용 파일/폴더 상위 8개를 칩으로 표시. 색상 구분:

  • ■ 폴더 (초록)
  • ■ 실행파일/바로가기 (파랑)
  • ■ 기타 파일 (보라)
슬래시 커맨드 70+ Commands
/clear /model /permissions /theme /summary /translate /explain /fix /review /commit /test /build /structure /doctor /tasks /init /search /diff +50 more

6

모델별 실행 프로파일

LLM 모델마다 다른 특성에 맞춰 4가지 실행 프로파일을 제공. 프로파일에 따라 온도 제한, 재시도 횟수, 병렬 규모, 검증 게이트가 자동 조정됩니다.

6.1 4가지 프로파일 상세

Strict tool_call_strict
IBM Granite, Qwen 등 시스템 프롬프트 무시 경향 모델용
온도 제한
0.2 (매우 낮음)
재시도
4회 (비도구 응답 시)
병렬 읽기
최대 8개
특수 기능
사용자 메시지에 도구 호출 리마인더 주입
Balanced reasoning_first
Claude, GPT-4 등 고성능 추론 모델용
온도 제한
0.45 (균형)
재시도
2회
병렬 읽기
최대 6개
코드 게이트
활성 (품질 검증)
Fast fast_readonly
빠른 조회/분석 작업 특화
온도 제한
0.25 (예측 가능)
재시도
1회 (최소)
병렬 읽기
최대 10개 (최대 공격적)
검증 게이트
비활성 (속도 최우선)
Document document_heavy
보고서/프레젠테이션 생성 집중 모드
온도 제한
0.35
계획 재시도
0 (계획 생략, 생성 집중)
병렬 읽기
최대 6개
메모리 압박
조기 해소 활성

6.2 모델별 컨텍스트 한도

모델 계열모델 한도적용 한도 (90%)압축 트리거
Claude (Opus/Sonnet/Haiku)200K180K144K (80%)
Gemini 2.5 Pro1M900K720K
GPT-4 / GPT-4o128K120K96K
DeepSeek128K128K102K
Qwen / LLaMA32K32K25.6K
vLLM / Ollama (미확인)-32K (보수적)25.6K

6.3 자동 모델 라우팅

현재 비활성 (EnableAutoRouter = false)
사용자 메시지 의도(coding, translation, analysis, creative, document, math)를 분석하여 최적 모델로 자동 전환하는 기능. 신뢰도 임계값 초과 시에만 전환하며, 기존 모델보다 0.1점 이상 높을 때만 적용. 향후 사내 서버 확정 후 활성화 예정.

7

경쟁 서비스 비교

7.1 기능 비교 매트릭스

기능 AX Copilot Claude Code Claude Desktop OpenAI Codex Cursor / Windsurf ChatGPT Desktop
플랫폼 WPF 독립 앱 터미널 CLI Electron 데스크톱 클라우드 샌드박스 VS Code Fork Electron 데스크톱
에이전트 루프 91+ 도구 MCP 기반 샌드박스 편집 특화
멀티 모델 4종 백엔드 Claude 전용 Claude 전용 GPT 전용 GPT 전용
사내 LLM Ollama/vLLM
문서 생성 7종 포맷
런처 (핫키) Alt+Space 기본
권한 세분화 5모드+패턴 3단계 샌드박스 격리
컨텍스트 관리 5단계 압축 기본
MCP 서버
모델별 프로파일 4종
사내/외부 모드
오프라인 동작 로컬 모델
로컬 파일 접근 직접 접근 직접 접근 MCP 경유 클라우드만 프로젝트 내
비용 구조 API 종량제 API 종량제 구독 (Pro/Max) 구독 (Pro) 구독 ($20/mo~) 구독 (Plus)

7.2 핵심 차별화 요약

① 완전 독립 데스크톱 에이전트

IDE 종속 없는 독립 실행형 에이전트. 코드 편집 + 문서 생성 + 시스템 관리 + 워크플로우 자동화를 단일 앱에서 수행. 런처로 어디서든 즉시 접근.

② 사내 인프라 네이티브

Ollama / vLLM 직접 연결. DPAPI+AES 암호화 API 키. 사내 모드에서 외부 완전 차단. 오프라인에서도 에이전트 루프 동작.

③ 모델 불문 최적 실행

4가지 프로파일이 모델 특성에 맞춰 자동 조정. "chatty" 모델에는 도구 호출 강제, 고성능 모델에는 추론 우선. 온도/재시도/병렬 규모 모두 자동 최적화.

④ 문서+코드 통합 워크스페이스

단일 앱에서 보고서/PPTX 자동 생성코드 개발/리뷰/테스트를 동시 수행. 같은 대화 컨텍스트에서 문서와 코드를 넘나드는 작업.


8

기술 스택 요약

.NET 8
런타임
WPF
UI 프레임워크
C#
언어
MCP
확장 프로토콜
레이어기술 / 패턴핵심 파일
UI 렌더링VirtualizingStackPanel + TranscriptVisualItem 가상화, V1/V2 분기 렌더ChatWindow.*.cs (40+ partial files)
실행 엔진Prepare → Execute → Commit 3단계 분리AxAgentExecutionEngine.cs
에이전트 루프Plan → Execute → Observe → Evaluate + Parallel BatchAgentLoopService.cs
LLM 통신SSE Streaming + Override Stack + Token TrackingLlmService.cs
도구 시스템IAgentTool + ToolRegistry + MCP 동적 래핑ToolRegistry.cs, IAgentTool.cs
컨텍스트5단계 MemGPT 스타일 압축 파이프라인ContextCondenser.cs
보안5모드 권한 + Internal/External 운영 + DPAPI 암호화PermissionModeCatalog.cs
런처WH_KEYBOARD_LL 글로벌 핫키 + Spotlight 스타일 UILauncherWindow.xaml.cs