AgentLoop ? ?? ???? no-tool ?? ???? ??

broader AgentLoop E2E?? math_eval? hook ?? ?? ????? Chat ?? ??? ???? ??? ??? ?? ?? ???? ??? ?? Cowork ? ???? ????. AgentToolCatalog ?? math_eval? Cowork,Code ????, ?? ??? Skill Runtime Policy ???? ???-?? ??? ??? ??.

AgentLoopService? activeTools.Count == 0 ??? ????. runtimeOverrides.AllowedToolNames? ??? ?? ???? ?? ?? ?? ??? ????, ? ??? ?? ?? ?? ??? ??? ??? ? ?? ???? ????? ??? ??? ?? ??? ???.

README.md? docs/DEVELOPMENT.md? 2026-04-15 14:18 (KST) ?? ??? ????.

??:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_runtime_policy_alignment_build\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment_build\\ (?? 0 / ?? 0)
- dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopE2ETests|AgentLoopResponseClassificationServiceTests" -p:OutputPath=bin\\verify_runtime_policy_alignment\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment\\ (?? 19)
This commit is contained in:
2026-04-15 14:10:38 +09:00
parent 4403dc3fc3
commit d58cf2c093
4 changed files with 41 additions and 6 deletions

View File

@@ -1336,3 +1336,24 @@ UI ?붿옄???€洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾
### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_empty_workspace_fix2\\ -p:IntermediateOutputPath=obj\\verify_empty_workspace_fix2\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "FullyQualifiedName~RunAsync_EmptyWorkspace_BlocksExternalFallbackAndRecoversToFileWrite|FullyQualifiedName~RunAsync_EmptyWorkspace_DisallowsSkillManagerAndRecoversToFileWrite|FullyQualifiedName~RunAsync_TextEmbeddedToolCall_RecoversAndExecutesFileWrite|FullyQualifiedName~Classify_ShouldRecoverToolCallEmbeddedInText" -p:OutputPath=bin\\verify_empty_workspace_fix2_tests\\ -p:IntermediateOutputPath=obj\\verify_empty_workspace_fix2_tests\\` 통과 4
업데이트: 2026-04-15 14:18 (KST)
### AgentLoop 탭 정책 / broader E2E 정합성 수정
- `AgentLoopE2ETests.cs`
- `RunAsync_ExecutesToolCall_AndCompletesWithFinalText()`
- `RunAsync_UnknownTool_RecoversAndCompletes()`
- `RunAsync_PlanModeAlways_EmitsPlanningThenExecutesTool()`
- `RunAsync_PreHookInputMutation_ChangesToolArguments()`
- 위 4개 시나리오의 `ActiveTab`을 `Chat`에서 `Cowork`로 정리했습니다.
- 근거: [AgentToolCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolCatalog.cs) 기준 `math_eval`은 `Cowork,Code` 도구이며 Chat 기본 노출 대상이 아닙니다. 기존 broader E2E 실패는 런타임 정책 누수라기보다 테스트가 현행 탭 정책보다 오래된 가정을 유지한 영향이었습니다.
### no-tool 상태 메시지 분기 보강
- `AgentLoopService.cs`
- `activeTools.Count == 0`일 때의 오류 반환을 2갈래로 분리했습니다.
- 실제 `runtimeOverrides.AllowedToolNames`가 있을 때만 기존 `현재 스킬 정책에서 허용된 도구가 없어...` 문구를 유지합니다.
- 그 외에는 `현재 {탭} 탭에서 사용 가능한 도구가 없어...` 형식의 탭 기준 메시지를 반환해 원인 안내가 오해를 부르지 않도록 정리했습니다.
### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_runtime_policy_alignment_build\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment_build\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopE2ETests|AgentLoopResponseClassificationServiceTests" -p:OutputPath=bin\\verify_runtime_policy_alignment\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment\\` 통과 19