- README와 DEVELOPMENT, 로드맵 문서에서 비교·모사 뉘앙스가 강한 문구를 AX 기준 설명으로 정리함 - 비교/패리티 성격의 문서를 AX Agent 구조 리뷰, 실행 개선 계획, 품질 계획, 런타임 품질 계획, 도구 커버리지 문서로 재구성함 - 회귀 프롬프트와 보조 개발 문서의 용어를 공통 핵심 명령과 운영 기준 중심으로 정리함 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_docs_cleanup\\ -p:IntermediateOutputPath=obj\\verify_docs_cleanup\\ (경고 0 / 오류 0)
4.5 KiB
4.5 KiB
AX Agent 구조 리뷰
업데이트: 2026-04-15 18:20 (KST)
1. 목적
- AX Agent의 현재 구조를 실행 엔진, 루프 정책, 세션 저장, transcript 렌더 관점에서 정리합니다.
- 외부 제품 비교 대신 AX 내부 구조와 참조 모듈 흐름만 문서화합니다.
2. 현재 구조
실행 계층
src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cssrc/AxCopilot/Services/Agent/AgentLoopService.cssrc/AxCopilot/Services/Agent/StreamingToolExecutionCoordinator.cs
루프 정책 계층
src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cssrc/AxCopilot/Services/Agent/AgentLoopTransitions.Verification.cssrc/AxCopilot/Services/Agent/AgentLoopTransitions.Documents.cssrc/AxCopilot/Services/Agent/AgentLoopCompactionPolicy.cssrc/AxCopilot/Services/Agent/AgentLoopRuntimeThresholds.cs
세션/상태 계층
src/AxCopilot/Services/ChatSessionStateService.cssrc/AxCopilot/Services/ChatStorageService.cssrc/AxCopilot/Services/AppStateService.cssrc/AxCopilot/Models/ChatModels.cs
transcript/UI 계층
src/AxCopilot/Views/ChatWindow.xamlsrc/AxCopilot/Views/ChatWindow.xaml.cssrc/AxCopilot/Views/ChatWindow.TranscriptHost.cssrc/AxCopilot/Views/ChatWindow.TranscriptRendering.cssrc/AxCopilot/Views/ChatWindow.TranscriptRenderPlanner.cssrc/AxCopilot/Views/ChatWindow.TranscriptRenderExecution.cssrc/AxCopilot/Views/ChatWindow.TranscriptVirtualization.cs
3. 강점
- Chat / Cowork / Code를 하나의 창과 정책 체계 안에서 운영
- 등록 모델별 실행 프로파일과 verification gate 지원
- 문서 생성 계열 fallback과 품질 리뷰가 루프에 결합되어 있음
- 메모리, slash, permissions, queue가 한 세션 상태에 연결되어 있음
4. 구조 리스크
ChatWindow.xaml.cs책임이 여전히 크고, UI 이벤트와 런타임 상태 조립이 섞여 있습니다.- transcript와 status line이 더 단일한 런타임 상태를 기준으로 계산되면 유지보수가 쉬워질 여지가 있습니다.
- replay/reopen 경로는 안정화가 많이 진행됐지만, 장기 세션에서는 이벤트 정규화 규칙이 더 중요합니다.
- 설정이 실행 경로를 바꾸는 지점은 사용자용과 개발용 노출 범위를 더 구분할 필요가 있습니다.
5. 개선 우선순위
A. 런타임 상태 단일화
- 참조 모듈:
src/bootstrap/state.ts,src/bridge/initReplBridge.ts - AX 적용 위치:
ChatWindow.xaml.cs,AxAgentExecutionEngine.cs,ChatStorageService.cs - 완료 조건:
- 현재 턴, queue, retry, 실행 이벤트, 저장 스냅샷이 같은 런타임 상태 모델을 사용
- reopen 뒤 저장 상태와 렌더 결과가 어긋나지 않음
B. 이벤트 정규화
- 참조 모듈:
src/bridge/sessionRunner.ts,src/bridge/bridgeMessaging.ts - AX 적용 위치:
AgentLoopService.cs,AgentLoopTransitions.cs,AppStateService.cs - 완료 조건:
- tool start/result/error/progress, permission, retry, complete 이벤트가 안정적인 스키마를 공유
- replay 시 visible banner 중복 0건
C. timeline 유도 모델 고정
- 참조 모듈:
src/screens/REPL.tsx,src/components/Messages.tsx - AX 적용 위치:
ChatWindow.xaml,ChatWindow.xaml.cs - 완료 조건:
- assistant/user message, execution log, compact boundary, queue summary를 하나의 derived timeline에서 생성
- direct imperative bubble injection 제거
D. status/composer 정리
- 참조 모듈:
src/components/StatusLine.tsx - AX 적용 위치:
ChatWindow.xaml,ChatWindow.AgentStatusPresentation.cs - 완료 조건:
- status strip, queue summary, runtime activity가 debounce된 같은 상태 소스를 사용
- composer는 명시적 줄바꿈 중심으로만 성장
6. 검증 기준
- reopen 후 최신 assistant state가 저장 상태와 동일
- retry/regenerate/queue follow-up이 서로 다른 실행 경로로 분기되지 않음
- permission popup, inline ask, plan approval이 transcript 기준으로 닫힘
dotnet build경고 0 / 오류 0
7. 최근 메모
- 2026-04-06 09:36 (KST): 상태 strip 표현과 permission/tool-result 설명 카탈로그를 분리
- 2026-04-06 09:44 (KST): mixed inline interaction rendering을 presentation 파일로 분리
- 2026-04-06 09:58 (KST): Git branch popup과 footer 보조 요약 helper를 분리
- 2026-04-06 10:07 (KST): topic preset 렌더와 선택 흐름을 전용 presentation 파일로 이동
- 2026-04-06 11:52 (KST): permission, tool-result, skill gallery 설명층을 고도화