- 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)
6.0 KiB
6.0 KiB
AX Agent 실행 개선 계획
업데이트: 2026-04-15 18:20 (KST)
1. 목적
- AX Agent의 실행 신뢰성, 권한 처리 일관성, 세션 복원 품질을 높입니다.
- 외부 제품명 비교 대신 실제 참조 모듈 경로와 AX 적용 위치만 기준으로 관리합니다.
- UI 보정만으로 가리는 수정은 지양하고
상태 -> 실행 -> 렌더순서로 정리합니다.
2. 현재 판단
- 실행 엔진과 루프 품질은 안정 구간에 들어왔지만, 장기 세션 복원과 이벤트 정규화는 계속 다듬을 여지가 있습니다.
- 설정이 런타임 경로를 바꾸는 지점은 사용자 설정과 개발자용 실험 설정을 더 분리할 필요가 있습니다.
- transcript, status line, queue 표시는 충분히 가벼워졌지만 상태 계산 소스는 더 단일화해야 합니다.
3. 참조 흐름
| 참조 모듈 | AX 적용 위치 | 완료 조건 | 품질 판정 기준 |
|---|---|---|---|
src/bootstrap/state.ts |
src/AxCopilot/Views/ChatWindow.xaml.cs, src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs, src/AxCopilot/Services/ChatStorageService.cs |
현재 턴, queue, retry, 실행 이벤트, 저장 스냅샷이 하나의 런타임 상태 모델로 정리 | reopen/retry/queue 후 중복 assistant 카드나 빈 카드가 생기지 않음 |
src/bridge/initReplBridge.ts |
src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs, src/AxCopilot/Services/LlmService.cs |
send/regenerate/retry/queued follow-up/slash가 하나의 실행 준비 경로를 통과 | 같은 입력과 설정에서 진입점이 달라도 실행 경로가 흔들리지 않음 |
src/bridge/sessionRunner.ts |
src/AxCopilot/Services/Agent/AgentLoopService.cs, src/AxCopilot/Services/Agent/AgentLoopTransitions.cs, src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs |
tool start/result/error/progress가 루프 계층에서 한 번만 정규화 | Cowork/Code 장기 실행 중 상태 문구가 과도하게 흔들리지 않음 |
src/bridge/bridgeMessaging.ts |
src/AxCopilot/Views/ChatWindow.xaml.cs, src/AxCopilot/Services/Agent/AgentLoopService.cs |
실행 이벤트와 표시 전용 이벤트를 렌더 이전에 분리 | replay 후 visible banner 중복이 발생하지 않음 |
src/screens/REPL.tsx, src/components/Messages.tsx, src/components/StatusLine.tsx |
src/AxCopilot/Views/ChatWindow.xaml, src/AxCopilot/Views/ChatWindow.xaml.cs |
timeline, composer, status strip이 공통 런타임 상태를 사용 | 리사이즈, queue 연속 실행, retry 후에도 UI가 패치식으로 흔들리지 않음 |
4. 실행 단계
A. 런타임 상태 단일화
- 적용 위치:
ChatWindow.xaml.cs,AxAgentExecutionEngine.cs,ChatStorageService.cs - 완료 조건:
Chat,Cowork,Code가 같은 런타임 상태 모델을 갱신- queue, retry, compact 이후 상태가 재오픈 후에도 동일하게 복원
- 품질 기준:
- 같은 대화를 다시 열었을 때 보이는 timeline과 저장 상태가 일치
- queue badge와 최근 실행 이력이 어긋나지 않음
B. 실행 준비 경로 일원화
- 적용 위치:
AxAgentExecutionEngine.cs,LlmService.cs - 완료 조건:
- prompt stack assembly, execution mode choice, final commit이 엔진 기준으로 통합
- send/regenerate/retry/slash가 동일 API를 사용
- 품질 기준:
- 같은 탭과 같은 설정에서 실행 경로가 예측 가능
- UI에서 별도 prompt stack을 만들지 않음
C. 루프 이벤트 정규화
- 적용 위치:
AgentLoopService.cs,AgentLoopTransitions.cs,AgentLoopTransitions.Execution.cs - 완료 조건:
- 권한 요청, 실패, 재시도, 완료 이벤트가 안정적인 스키마를 사용
- bounded activity/event record 기준이 문서화
- 품질 기준:
- 장기 도구 실행 중 상태 flash가 줄고 debug payload 노출이 최소화
D. timeline 유도 모델 고정
- 적용 위치:
ChatWindow.xaml,ChatWindow.xaml.cs - 완료 조건:
- assistant/user message, 실행 로그, compact boundary, queue summary가 하나의 derived timeline에서 생성
- 직접 bubble injection 경로 제거
- 품질 기준:
- blank assistant card 0건
- token-only completion 0건
- re-render 뒤 duplicate banner 0건
E. composer와 status strip 정리
- 적용 위치:
ChatWindow.xaml,ChatWindow.xaml.cs - 완료 조건:
- composer height는 명시적 줄바꿈 중심으로만 증가
- status strip, queue summary, runtime activity가 debounce된 업데이트를 사용
- 품질 기준:
- resize 이후 입력창이 과하게 커지지 않음
- metadata가 메시지 본문보다 앞서 보이지 않음
F. 복구/재개/검증 마감
- 적용 위치:
ChatWindow.xaml.cs,AxAgentExecutionEngine.cs,ChatStorageService.cs - 완료 조건:
- reopen after interruption, retry-last, regenerate, manual compact, manual stop, manual resume 시나리오를 모두 통과
- 최신 assistant state와 저장 conversation이 일치
- 품질 기준:
- 복원 후 마지막 상태가 실제 종료 시점과 같음
- 세션 재개 후 추가 오류 전파가 없음
5. 검증 기준
dotnet build경고 0 / 오류 0- 고위험 변경마다 최소 1개 이상 회귀 테스트 추가
internal/external운영 모드 정책 위반 0건- reopen, retry, regenerate, queue follow-up, permission, compact 시나리오 수동 점검 유지
6. 최신 메모
- 2026-04-05 15:34 (KST): 실행 개선 계획을 실제 참조 모듈 흐름 기준으로 재정리했습니다.
- 2026-04-05 16:55 (KST): 엔진, 채팅 UI, 상태 UX, 설정 연동의 구조적 갭을 분리해 정리했습니다.
- 2026-04-06 09:36 (KST): 상태 strip 표현을 전용 카탈로그로 분리하고 permission/tool-result 설명을 정형화했습니다.
- 2026-04-06 10:07 (KST): topic preset과 사용자 상호작용 렌더 책임을 presentation 파일로 계속 분리했습니다.
- 2026-04-06 11:52 (KST): permission, tool-result, skill gallery 설명층을 더 구체적인 운영 정보 중심으로 보강했습니다.