모델 프로파일 기반 Cowork/Code 루프와 진행 UX 고도화 반영
- 등록 모델 실행 프로파일을 검증 게이트, 문서 fallback, post-tool verification까지 확장 적용 - Cowork/Code 진행 카드에 계획/도구/검증/압축/폴백/재시도 단계 메타를 추가해 대기 상태 가시성 강화 - OpenAI/vLLM tool 요청에 병렬 도구 호출 힌트를 추가하고 회귀 프롬프트 문서를 프로파일 기준으로 전면 정리 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
This commit is contained in:
@@ -1,128 +1,145 @@
|
||||
# AX Agent Regression Prompts
|
||||
|
||||
업데이트: 2026-04-06 09:58 (KST)
|
||||
업데이트: 2026-04-08 10:38 (KST)
|
||||
|
||||
`claw-code`와 AX Agent를 같은 기준으로 비교하기 위한 공통 회귀 프롬프트 세트입니다.
|
||||
|
||||
## 사용 규칙
|
||||
|
||||
- 런타임 동작, transcript 렌더, 권한/계획/질문 UX, queue/compact/reopen 흐름에 영향을 주는 변경 뒤에는 이 문서를 기준으로 최소 1회 점검합니다.
|
||||
- 모든 항목을 매번 수동 실행할 필요는 없지만, 관련 축이 바뀌었으면 해당 묶음은 반드시 확인합니다.
|
||||
- 결과는 “문장이 똑같은가”가 아니라 “실행 경로와 사용자 체감 결과가 같은가”를 봅니다.
|
||||
- 루프 정책, transcript 렌더, 권한/계획/진행 UX, queue/compact/reopen 흐름에 영향을 주는 변경 뒤에는 이 문서를 기준으로 최소 1회 점검합니다.
|
||||
- 모든 항목을 매번 전부 돌릴 필요는 없지만, 바뀐 영역과 맞닿은 묶음은 반드시 확인합니다.
|
||||
- 결과는 “모양이 똑같은가”보다 “사용자 체감 흐름과 완료 품질이 같은가”를 기준으로 봅니다.
|
||||
|
||||
## 실패 분류
|
||||
|
||||
- `blank-reply`: 토큰은 소비됐는데 본문이 비어 있거나 assistant 카드가 비어 있음
|
||||
- `blank-reply`: 토큰은 쓰였는데 본문이 비거나 assistant 카드가 비어 있음
|
||||
- `duplicate-banner`: 같은 실행 이벤트가 transcript에 중복 표시됨
|
||||
- `bad-approval-flow`: 권한/계획/질문 요청이 inline으로 안 닫히고 popup 의존이 커짐
|
||||
- `queue-drift`: 후속 요청, retry, regenerate가 다른 실행 경로를 타거나 순서가 어긋남
|
||||
- `restore-drift`: reopen 후 상태선, queue, 최신 메시지 상태가 달라짐
|
||||
- `status-noise`: Cowork/Code 기본 상태선이 과하게 흔들리거나 debug 정보가 과노출됨
|
||||
- `bad-approval-flow`: 권한/계획/질문 요청이 inline으로 닫히지 않고 popup 의존이 큼
|
||||
- `queue-drift`: 연속 요청, retry, regenerate가 다른 실행 경로를 타거나 순서가 꼬임
|
||||
- `restore-drift`: reopen 후 queue, 최신 메시지, 진행 상태가 어긋남
|
||||
- `status-noise`: Cowork/Code 기본 상태선에 debug 느낌 정보가 과하게 노출됨
|
||||
- `no-tool-loop`: 도구 미호출 보정이 길게 반복되고 실제 tool call로 이어지지 않음
|
||||
- `slow-doc-fallback`: 문서 작업에서 `document_plan` 후 산출물 없이 오래 루프를 탐
|
||||
- `profile-drift`: 등록 모델 프로파일을 바꿨는데 실제 loop/fallback/verification 성향이 달라지지 않음
|
||||
|
||||
## Chat
|
||||
|
||||
1. 기본 응답
|
||||
- 프롬프트: `회의 일정 조정 메일을 정중한 한국어로 써줘`
|
||||
- 프롬프트: `회의 일정 조정 메일을 정중한 톤으로 써줘`
|
||||
- 확인:
|
||||
- `blank-reply`
|
||||
- `restore-drift`
|
||||
- SSE/타이핑형 출력이 실제로 보이는지
|
||||
|
||||
2. 장문 설명
|
||||
- 프롬프트: `RAG와 fine-tuning 차이를 실무 관점으로 7가지로 설명해줘`
|
||||
- 확인:
|
||||
- 장문 렌더 안정성
|
||||
- compact 이후 다음 턴 문맥 유지
|
||||
- 장문 markdown 렌더 안정성
|
||||
- compact 이후 다음 턴 유지
|
||||
- `blank-reply`
|
||||
|
||||
## Cowork
|
||||
|
||||
3. 문서형 작업
|
||||
3. 문서 생성
|
||||
- 프롬프트: `신규 ERP 도입 제안서 초안을 작성해줘. 목적, 범위, 기대효과, 추진일정 포함`
|
||||
- 확인:
|
||||
- 작업 유형 반영
|
||||
- 계획 이후 실제 문서형 결과 흐름
|
||||
- 기본 로그 과노출 없음
|
||||
- `bad-approval-flow`
|
||||
- `document_plan -> 산출물 생성` 흐름이 실제로 닫히는지
|
||||
- `slow-doc-fallback`
|
||||
- 진행 줄에 `처리 중 / 문서 결과 생성 중 / 검증 중`이 보이는지
|
||||
|
||||
4. 데이터형 작업
|
||||
- 프롬프트: `매출 CSV를 분석해서 월별 추세와 이상치를 요약해줘`
|
||||
4. 데이터 분석
|
||||
- 프롬프트: `매출 CSV를 분석해서 분기 추세와 이상치를 요약해줘`
|
||||
- 확인:
|
||||
- 데이터 분석 도구 선택
|
||||
- 결과 요약 일관성
|
||||
- runtime 노이즈 최소화
|
||||
- 데이터 분석 프리셋/도구 선택
|
||||
- read-only 도구 배치가 빠르게 붙는지
|
||||
- `status-noise`
|
||||
|
||||
5. 긴 대기/압축
|
||||
- 프롬프트: `지금까지 논의한 내용을 5줄로 이어서 정리하고 다음 작업을 제안해줘`
|
||||
- 확인:
|
||||
- `컨텍스트 압축 중...` 라이브 표시
|
||||
- elapsed/token meta가 비정상값 없이 보이는지
|
||||
- `blank-reply`
|
||||
|
||||
## Code
|
||||
|
||||
5. 버그 수정
|
||||
- 프롬프트: `현재 프로젝트에서 설정 저장 버그 원인 찾고 수정해줘`
|
||||
6. 버그 수정
|
||||
- 프롬프트: `현재 프로젝트에서 설정 저장 관련 버그 원인 찾고 수정해줘`
|
||||
- 확인:
|
||||
- 읽기/검색/수정 흐름 일관성
|
||||
- diff/저장/재오픈 시 transcript 보존
|
||||
- 읽기/검색/수정 흐름
|
||||
- diff 근거와 검증 근거 유도
|
||||
- `restore-drift`
|
||||
|
||||
6. 빌드/테스트
|
||||
7. 빌드/테스트
|
||||
- 프롬프트: `빌드 오류를 재현하고 수정한 뒤 다시 빌드해줘`
|
||||
- 확인:
|
||||
- build/test 루프
|
||||
- 실패 후 재시도
|
||||
- 완료 메시지 일관성
|
||||
- build/test loop
|
||||
- 실패 시 원인 표시
|
||||
- `queue-drift`
|
||||
|
||||
## Cross-tab
|
||||
|
||||
7. 후속 요청
|
||||
- 프롬프트 순서:
|
||||
- `이 창 레이아웃 문제 원인 찾아줘`
|
||||
- `끝나면 README도 같이 갱신해줘`
|
||||
8. 코드 검토
|
||||
- 프롬프트: `현재 변경사항을 리뷰해서 위험한 점을 먼저 알려줘`
|
||||
- 확인:
|
||||
- queue chaining
|
||||
- 입력창 직접 변경 없이 다음 턴 실행
|
||||
- `queue-drift`
|
||||
- 리뷰 출력 형식
|
||||
- verification/report gate
|
||||
- `status-noise`
|
||||
|
||||
8. compact 이후 연속성
|
||||
- 프롬프트: `지금까지 논의한 내용을 5줄로 이어서 정리하고 다음 작업 제안해줘`
|
||||
- 확인:
|
||||
- token-only completion 없음
|
||||
- compact 후 문맥 유지
|
||||
- `queue-drift`
|
||||
## 프로파일
|
||||
|
||||
9. 권한 승인
|
||||
- 프롬프트: `이 파일을 수정해서 저장해줘`
|
||||
9. `tool_call_strict`
|
||||
- 등록 모델 프로파일: `도구 호출 우선`
|
||||
- 프롬프트: `src 폴더에서 설정 저장 버그 찾아서 고쳐줘`
|
||||
- 확인:
|
||||
- 권한 요청 transcript 표시
|
||||
- 승인/거부 결과 일관성
|
||||
- 첫 1~2턴 내 tool call 발생
|
||||
- `no-tool-loop` 감소
|
||||
- verification gate가 과도하지 않은지
|
||||
|
||||
10. `fast_readonly`
|
||||
- 등록 모델 프로파일: `읽기 속도 우선`
|
||||
- 프롬프트: `프로젝트 구조와 핵심 진입 파일을 빠르게 파악해줘`
|
||||
- 확인:
|
||||
- 읽기 도구 병렬 배치
|
||||
- 불필요한 verification gate 없음
|
||||
- 답변이 빨리 시작되는지
|
||||
|
||||
11. `document_heavy`
|
||||
- 등록 모델 프로파일: `문서 생성 우선`
|
||||
- 프롬프트: `영업 전략 보고서 초안을 HTML 문서로 작성해줘`
|
||||
- 확인:
|
||||
- `document_plan` 후 장기 재시도보다 fallback이 빨리 타는지
|
||||
- 실제 산출물 생성까지 닫히는지
|
||||
- `slow-doc-fallback` 없음
|
||||
|
||||
12. `reasoning_first`
|
||||
- 등록 모델 프로파일: `추론 우선`
|
||||
- 프롬프트: `현재 아키텍처에서 병목 원인을 설명하고 개선안을 비교해줘`
|
||||
- 확인:
|
||||
- 초반 즉시 tool call을 강요하지 않는지
|
||||
- reasoning 후 필요한 tool call로 이어지는지
|
||||
- `profile-drift` 없음
|
||||
|
||||
## 권한 / 결과
|
||||
|
||||
13. 권한 거부 후 재시도
|
||||
- 프롬프트: `설정 파일을 수정해서 저장해줘`
|
||||
- 흐름:
|
||||
- 첫 권한 요청은 거부
|
||||
- 같은 작업 다시 요청
|
||||
- 확인:
|
||||
- `reject`와 `approval_required`가 다르게 보이는지
|
||||
- `bad-approval-flow`
|
||||
|
||||
10. slash / skill
|
||||
- 프롬프트: `/bug-hunt src 폴더 잠재 버그 찾아줘`
|
||||
14. 부분 성공
|
||||
- 프롬프트: `여러 문서를 찾아 읽고 핵심만 요약해줘`
|
||||
- 확인:
|
||||
- slash 진입과 일반 send 경로 동일성
|
||||
- skill 실행 이유/결과 표기
|
||||
- `queue-drift`
|
||||
- 일부 실패가 `partial` 성격으로 읽히는지
|
||||
- 후속 권장 작업 표시가 있는지
|
||||
|
||||
## 개발 루틴 고정
|
||||
|
||||
- transcript, permission, tool-result, queue, compact, reopen에 영향을 주는 변경은 커밋 전 아래를 기준으로 셀프 체크합니다.
|
||||
- Chat 변경: 1, 2, 8
|
||||
- Cowork 변경: 3, 4, 7, 8
|
||||
- Code 변경: 5, 6, 7, 9, 10
|
||||
- 체크 후 문서 이력에는 “어떤 묶음을 확인했는지”를 간단히 남깁니다.
|
||||
## Tool / Permission Follow-up
|
||||
|
||||
11. 권한 거부 후 재시도
|
||||
- 프롬프트 순서:
|
||||
- `src 폴더에서 설정 파일을 수정해줘`
|
||||
- 첫 권한 요청은 거부
|
||||
- 같은 작업을 다시 요청
|
||||
- 확인:
|
||||
- `reject`와 `approval_required`가 같은 결과 카드처럼 보이지 않음
|
||||
- 재시도 시 권한 메시지와 도구 결과가 중복되지 않음
|
||||
- `bad-approval-flow`
|
||||
|
||||
12. 부분 성공 / 후속 안내
|
||||
- 프롬프트: `여러 문서 파일을 한 번에 읽고 요약해줘`
|
||||
- 확인:
|
||||
- 일부 실패가 있으면 `partial` 계열 안내가 보이는지
|
||||
- 후속 안내 문구가 단순 실패와 다르게 보이는지
|
||||
- `status-noise`
|
||||
- Chat 변경: 1, 2
|
||||
- Cowork 변경: 3, 4, 5, 9, 11
|
||||
- Code 변경: 6, 7, 8, 9, 10
|
||||
- 권한/도구 결과 변경: 13, 14
|
||||
- 모델 프로파일/루프 정책 변경: 9, 10, 11, 12
|
||||
|
||||
@@ -5337,3 +5337,52 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎.
|
||||
- Document update: 2026-04-07 09:19 (KST) - Restored the AX Agent footer/status total token aggregate so it no longer disappears after runs return to idle. The status strip now rehydrates totals from the current conversation message token sums when live loop counters are empty.
|
||||
- Document update: 2026-04-07 09:19 (KST) - Corrected context-compaction popup accuracy by switching its detail copy to the last real compaction metrics (`before -> after`, automatic/manual kind, cumulative compaction count, cumulative saved tokens) instead of only the generic trigger-threshold text.
|
||||
- Document update: 2026-04-07 09:19 (KST) - Prevented `total_stats` loop events from being swallowed into the generic process-feed path. AX Agent now routes those events back through the dedicated total-stats presentation so transcript summaries and footer token totals stay aligned.
|
||||
|
||||
## 2026-04-08 10:12 (KST)
|
||||
|
||||
- [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs)
|
||||
- `RegisteredModel.ExecutionProfile`과 `LlmSettings.UseAutomaticProfileTemperature`를 추가했다.
|
||||
- 등록 모델은 실행 성향을 저장하고, AX Agent 내부 설정은 프로파일 기반 temperature 자동 적용 여부를 따로 제어한다.
|
||||
- [ModelExecutionProfileCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ModelExecutionProfileCatalog.cs)
|
||||
- `balanced`, `tool_call_strict`, `reasoning_first`, `fast_readonly`, `document_heavy` 실행 프로파일 카탈로그를 추가했다.
|
||||
- 프로파일별로 초기 도구 강제, no-tool 임계값, 문서 재시도, 병렬 읽기 배치 수, terminal evidence gate, tool temperature cap을 함께 관리한다.
|
||||
- [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs)
|
||||
- 등록 모델 로드/저장 시 실행 프로파일을 함께 유지하고, 모델 행에도 프로파일 레이블을 보관하도록 확장했다.
|
||||
- [ModelRegistrationDialog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ModelRegistrationDialog.cs)
|
||||
- 등록 모델 추가/편집 다이얼로그에 `실행 프로파일` 선택 UI를 추가했다.
|
||||
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs)
|
||||
- 일반 설정의 등록 모델 추가/편집 흐름에서 실행 프로파일 값을 저장/수정하도록 연결했다.
|
||||
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)
|
||||
- AX Agent 내부 설정의 등록 모델 추가/편집 흐름도 실행 프로파일을 저장하도록 맞췄다.
|
||||
- 내부 설정 Temperature row에 `자동 / 사용자 지정` 선택을 추가하고, 자동일 때는 슬라이더를 읽기 전용처럼 비활성화해 프로파일 기반 정책이 우선되도록 했다.
|
||||
- [LlmService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LlmService.cs)
|
||||
- 현재 활성 모델의 실행 프로파일을 조회하는 헬퍼와 프로파일 기반 tool temperature 계산을 추가했다.
|
||||
- `UseAutomaticProfileTemperature=false`면 기존 사용자가 지정한 temperature를 그대로 사용한다.
|
||||
- [LlmService.ToolUse.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LlmService.ToolUse.cs)
|
||||
- tool calling 경로의 temperature를 일반 값 대신 프로파일 기반 `ResolveToolTemperature()`로 통일했다.
|
||||
- [AgentLoopTransitions.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.cs)
|
||||
- 읽기 도구 병렬 배치 계획에 `maxParallelBatch` 상한을 추가해 프로파일별 최대 동시 읽기 수를 제어할 수 있게 했다.
|
||||
- [AgentLoopTransitions.Execution.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs)
|
||||
- terminal evidence gate 재시도 횟수를 외부에서 주입받도록 바꿔 프로파일 기반 제어를 가능하게 했다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)
|
||||
- Cowork/Code 루프 시작 시 현재 모델의 실행 프로파일을 읽어 no-tool 감지, 도구 미호출 재시도, 문서 생성 재시도, terminal evidence gate, 읽기 병렬 실행, 초기 compaction/memory pressure 정책을 함께 적용하도록 변경했다.
|
||||
- `tool_call_strict`/`fast_readonly` 같은 프로파일은 초기 memory guidance와 aggressive compaction을 더 늦게 적용해, vLLM 계열에서 불필요한 프롬프트 팽창을 줄이는 방향으로 조정했다.
|
||||
|
||||
## 2026-04-08 10:38 (KST)
|
||||
|
||||
- [ModelExecutionProfileCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ModelExecutionProfileCatalog.cs)
|
||||
- 실행 프로파일 정책을 확장해 `post-tool verification`, `코드 품질 게이트`, `문서 검증 게이트`, `diff/실행 증거 게이트`, `final report gate`의 강도까지 함께 관리하도록 바꿨다.
|
||||
- `fast_readonly`와 `document_heavy`는 속도/산출물 우선으로 검증 게이트를 더 공격적으로 줄이고, `reasoning_first`와 `balanced`는 기존 품질 게이트를 유지하도록 정리했다.
|
||||
- [AgentLoopTransitions.Execution.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs)
|
||||
- 코드 품질 게이트, high-impact build/test 게이트, final report 게이트, diff/실행 성공 게이트, 문서 검증 게이트를 모두 프로파일 기반 재시도 횟수로 바꿨다.
|
||||
- 문서 검증 관련 깨진 문자열을 정상 한국어로 복구하고, document verification gate가 실제 최대 재시도 수를 기준으로 동작하도록 수정했다.
|
||||
- terminal document completion/post-tool verification 경로도 `EnablePostToolVerification` 정책을 읽어 profile별로 verification을 생략할 수 있게 했다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)
|
||||
- `document_heavy`/`tool_call_strict` 프로파일에서는 `document_plan` 이후 장기 재시도보다 fallback 생성으로 더 빨리 전환되도록 조정했다.
|
||||
- 후속 게이트 호출 시 현재 실행 프로파일을 함께 넘겨, Cowork/Code loop가 모델 성향에 맞는 검증 강도를 실제로 적용하도록 연결했다.
|
||||
- [LlmService.ToolUse.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LlmService.ToolUse.cs)
|
||||
- OpenAI/vLLM tool-use request body에 `parallel_tool_calls` 힌트를 추가해 읽기 도구 병렬 실행 성향이 모델 요청 단계에도 반영되도록 보강했다.
|
||||
- [ChatWindow.AgentEventRendering.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs)
|
||||
- Cowork/Code 진행 카드에 `계획 / 도구 / 검증 / 압축 / 폴백 / 재시도` 단계 메타를 더 직접적으로 붙여, 오래 걸리는 작업도 어느 단계인지 읽기 쉽게 정리했다.
|
||||
- [AX_AGENT_REGRESSION_PROMPTS.md](/E:/AX%20Copilot%20-%20Codex/docs/AX_AGENT_REGRESSION_PROMPTS.md)
|
||||
- 회귀 프롬프트 문서를 전면 교체하고, `tool_call_strict`, `fast_readonly`, `document_heavy`, `reasoning_first` 프로파일별 검증 시나리오를 추가했다.
|
||||
|
||||
Reference in New Issue
Block a user