Files
AX-Copilot-Codex/docs/AX_AGENT_EXECUTION_IMPROVEMENT_PLAN.md
lacvet 9344cf83d6 개발 문서를 AX 기준 계획 중심으로 정리하고 비교성 표현을 제거
- 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)
2026-04-15 17:05:30 +09:00

93 lines
6.0 KiB
Markdown

# 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 설명층을 더 구체적인 운영 정보 중심으로 보강했습니다.