# Модуль agent

## 1. Назначение
Модуль обеспечивает выполнение code-QA пайплайна для pipeline_setup_v3 и интеграцию с chat-слоем через адаптер к контракту `AgentRunner`. Оркестрация основана на **IntentRouterV2** (RAG) и **AgentRuntimeExecutor** (роутинг → retrieval → evidence gate → генерация ответа).

## 2. Состав модуля
- **runtime/** — единственный orchestration-слой. На верхнем уровне содержит только файлы рантайма, а шаги исполнения вынесены в `runtime/steps/*` (`retrieval`, `context`, `gates`, `answer_policy`, `generation`, `finalization`, `explain`). Публичный API: `AgentRuntimeExecutor`, `RuntimeRetrievalAdapter`, `RuntimeRepoContextFactory`, модели `Runtime*`.
- **llm/** — сервис вызова LLM (GigaChat) с загрузкой системных промптов через `PromptLoader`.
- **llm/prompt_loader.py** — загрузка системных промптов из `llm/prompts.yml`.
- **runtime/code_qa_runner_adapter.py** — адаптер `AgentRuntimeExecutor` к протоколу `AgentRunner` для использования из chat (async `run` → sync `execute` в executor).

## 3. Диаграмма зависимостей
```mermaid
classDiagram
    class AgentRuntimeExecutor
    class CodeQaRunnerAdapter
    class AgentLlmService
    class PromptLoader
    class IntentRouterV2
    class RuntimeRetrievalAdapter

    CodeQaRunnerAdapter --> AgentRuntimeExecutor
    AgentRuntimeExecutor --> AgentLlmService
    AgentRuntimeExecutor --> IntentRouterV2
    AgentRuntimeExecutor --> RuntimeRetrievalAdapter
    AgentLlmService --> PromptLoader
```

## 4. Точки входа
- **Тесты pipeline_setup_v3**: `AgentRuntimeAdapter` импортирует `AgentRuntimeExecutor`, `IntentRouterV2`, `RuntimeRepoContextFactory`, `RuntimeRetrievalAdapter`, `AgentLlmService`, `PromptLoader` из `app.modules.agent.runtime` и соответствующих пакетов.
- **Приложение (chat)**: `ModularApplication` собирает `AgentRuntimeExecutor` и оборачивает его в `CodeQaRunnerAdapter`; chat передаёт адаптер как `agent_runner` в `ChatModule`.

## 5. Промпты
Используются только промпты, загружаемые из `llm/prompts.yml`:
- **code_qa_*** — ответы по sub_intent (architecture, explain, find_entrypoints, find_tests, general, open_file, trace_flow, degraded, repair).
- **rag_intent_router_v2** — классификация интента в IntentRouterV2.
- **code_explain_answer_v2** — прямой code-explain в chat (direct_service).
