코드탭 LLM 디스패치 단계를 별도 서비스로 분리
AgentLoopLlmDispatchStageService를 추가해 query_context와 llm_request 로그, 스트리밍 미리보기, read-only prefetch 연결, recovery-capable tool dispatch를 한 단계로 분리했다. AgentLoopService는 pre-LLM stage 이후 dispatch stage를 호출하는 오케스트레이터 형태로 정리했고 function-calling 미지원 fallback도 staged request를 재사용하도록 보정했다. StreamingToolExecutionCoordinator와 AgentLoopPreLlmStageService의 깨진 문자열을 영어로 정리하고 AgentLoopLlmDispatchStageServiceTests를 추가했다. 검증: Release build 경고 0 오류 0, 관련 AgentLoop 회귀 테스트 43개 통과
This commit is contained in:
@@ -1,5 +1,18 @@
|
||||
# Code Context Reliability Plan
|
||||
|
||||
Update: 2026-04-16 06:41 (KST)
|
||||
|
||||
- Added `src/AxCopilot/Services/Agent/AgentLoopLlmDispatchStageService.cs` so the LLM dispatch path is now split into:
|
||||
- history/query assembly
|
||||
- pre-LLM stage planning
|
||||
- dispatch/stream stage execution
|
||||
- tool execution and recovery
|
||||
- `AgentLoopService` no longer owns the inline stream preview callback or the direct `SendWithToolsWithRecoveryAsync(...)` setup for the primary loop.
|
||||
- `StreamingToolExecutionCoordinator.cs` was also normalized to English-only active-path status strings so the staged dispatch path no longer reintroduces mojibake text during wait/retry handling.
|
||||
- Remaining structural gap versus the target `claw-code` shape:
|
||||
- the `NotSupportedException` / `ToolCallNotSupportedException` fallback branch still lives in `AgentLoopService`
|
||||
- the next extraction target should be a narrower fallback policy stage so the main loop keeps shrinking toward a pure orchestrator
|
||||
|
||||
Update: 2026-04-16 01:37 (KST)
|
||||
|
||||
## Background
|
||||
|
||||
Reference in New Issue
Block a user