40 KiB
Архитектура текущего агентного контура NDC_1C
Дата среза: 2026-05-23 Статус документа: рабочая карта текущей реализации, собрана по коду, конфигам и orchestration-файлам репозитория.
1. Коротко
В проекте сейчас есть не один агент, а связка из двух больших контуров:
-
Продуктовый 1С-ассистент. Это backend/runtime, который принимает вопрос пользователя, нормализует смысл, выбирает маршрут, ходит в 1С/MCP, строит ответ и пишет debug/technical payload.
-
Агентный контур разработки и контроля качества. Это repo-native система прогонов, аудита, verdict/handoff и сохранения проверенных сценариев в autoruns. Его цель - снять с человека ручной разбор прогонов: запускать реальные сценарии, читать ответы как бизнес-пользователь, находить P0/P1/P2, формировать ремонтный handoff и не давать сохранять плохие сценарии как "успешные".
Текущая важная мысль: по умолчанию контур уже не является полностью авто-ремонтником. Он автономно запускает, анализирует и формирует handoff, но код обычно чинит Lead Codex в основном контексте. Полностью автономный coder-режим есть, но он выключен по умолчанию и включается только явно через repair_mode=auto-coder.
2. Сколько моделей участвует
Ниже - фактическая карта ролей и моделей.
| Слой | Роль | Модель/провайдер по текущим файлам | Температура | Лимит | Где задано |
|---|---|---|---|---|---|
| Product runtime LLM | LLM-нормализация / pre-decompose пользовательского вопроса | local, unsloth/qwen3-30b-a3b-instruct-2507 |
0.8 |
900 |
llm_normalizer/data/shared_llm_connection.json |
| Domain case loop live runner | Запуск live case/scenario/pack против backend | по умолчанию берет shared config: local, unsloth/qwen3-30b-a3b-instruct-2507 |
0.8 |
900 |
scripts/domain_case_loop.py + shared_llm_connection.json |
| Stage wrapper | Обертка stage-loop, если запускать без override | local, qwen2.5-14b-instruct-1m |
0.0 |
2048 |
scripts/stage_agent_loop.py |
| Codex analyst | Строгий read-only бизнес/технический аналитик | gpt-5.4 |
не через temperature, через reasoning effort | n/a | .codex/agents/domain_analyst.toml, scripts/domain_case_loop.py |
| Codex coder | Implementation agent для минимального патча | gpt-5.4 |
reasoning effort | n/a | .codex/agents/domain_coder.toml, scripts/domain_case_loop.py |
| Codex orchestrator | Координатор доменного цикла | gpt-5.4 |
reasoning effort | n/a | .codex/agents/orchestrator.toml |
| Lead Codex | Основной интерактивный разработчик в текущем чате | модель текущей Codex-сессии, вне repo-конфига | n/a | n/a | не хранится в репозитории |
Итого в текущей практической схеме участвуют минимум 4 модельные роли:
- локальная LLM для runtime-нормализации ассистента;
- Codex analyst;
- Codex coder;
- Lead Codex.
Если считать orchestrator как отдельную роль, получается 5 агентных ролей, но orchestrator сейчас в основном описан как агентная маска/роль для внешнего Codex orchestration, а не как обязательный шаг каждого ручного цикла.
3. Важное расхождение конфигов
Есть два разных default-профиля локальной LLM:
-
scripts/domain_case_loop.pyчитаетllm_normalizer/data/shared_llm_connection.json. Текущий shared config:{ "llmProvider": "local", "model": "unsloth/qwen3-30b-a3b-instruct-2507", "baseUrl": "http://127.0.0.1:1234/v1", "temperature": 0.8, "maxOutputTokens": 900 } -
scripts/stage_agent_loop.pyимеет свои CLI defaults:--llm-provider local --llm-model qwen2.5-14b-instruct-1m --llm-base-url http://127.0.0.1:1234/v1 --temperature 0.0 --max-output-tokens 2048
Практический вывод: если запускать domain_case_loop.py напрямую, он сейчас ориентируется на Qwen3 shared config. Если запускать через stage_agent_loop.py без override, stage wrapper передаст Qwen2.5 defaults. Это нужно помнить при сравнении прогонов.
4. Основные порты и runtime-адреса
| Компонент | Адрес/порт | Где задано |
|---|---|---|
| Backend 1С-ассистента | http://127.0.0.1:8787 |
scripts/domain_case_loop.py, llm_normalizer/backend/src/config.ts |
| Local OpenAI-compatible LLM endpoint | http://127.0.0.1:1234/v1 |
shared_llm_connection.json, CLI defaults |
| MCP proxy к 1С | http://127.0.0.1:6003 |
llm_normalizer/backend/src/config.ts, ASSISTANT_MCP_PROXY_URL |
| MCP channel | default |
llm_normalizer/backend/src/config.ts, ASSISTANT_MCP_CHANNEL |
| MCP timeout | 6000 ms |
ASSISTANT_MCP_TIMEOUT_MS |
| MCP live limit | 128 |
ASSISTANT_MCP_LIVE_LIMIT |
5. Product runtime: как отвечает 1С-ассистент
Продуктовый runtime живет в llm_normalizer/backend.
Грубый путь одного вопроса:
- Пользователь отправляет сообщение в backend.
- Backend собирает prompt bundle / normalizer prompt.
- LLM-нормализация или deterministic resolver определяют intent, filters, date scope, domain family.
- Orchestration решает lane:
- address lane;
- living chat;
- MCP discovery;
- exact capability route;
- bounded/limited answer.
- Address/MCP слой получает данные из 1С через proxy.
- Compose/answer policy строит human-facing answer.
- Параллельно пишется technical debug payload.
- Сессия сохраняется в
llm_normalizer/data/assistant_sessions.
Ключевые runtime-файлы:
llm_normalizer/backend/src/services/assistantService.ts- верхний слой ассистента.llm_normalizer/backend/src/services/addressQueryService.ts- address query / exact route execution.llm_normalizer/backend/src/services/addressIntentResolver.ts- распознавание address intent.llm_normalizer/backend/src/services/addressFilterExtractor.ts- извлечение фильтров.llm_normalizer/backend/src/services/addressCapabilityPolicy.ts- capability policy / feature gates.llm_normalizer/backend/src/services/addressNavigationState.ts- состояние диалога, selected object, carryover.llm_normalizer/backend/src/services/assistantMcpDiscovery*- discovery/bridge/handoff вокруг MCP.llm_normalizer/backend/src/services/address_runtime/*- staged runtime для address lane.llm_normalizer/backend/src/config.ts- флаги, порты, MCP settings.
6. Prompt runtime продукта
Главный backend prompt builder:
llm_normalizer/backend/src/services/promptBuilder.ts
Он знает версии:
normalizer_v1normalizer_v1_1normalizer_v1_1_1normalizer_v1_1_2normalizer_v1_1_2_1normalizer_v2normalizer_v2_0_1normalizer_v2_0_2
Backend default:
DEFAULT_PROMPT_VERSION = normalizer_v2_0_2
Текущий системный prompt-файл:
llm_normalizer/backend/src/prompts/system/default.txt
Суть системной роли:
Ты semantic-normalizer для бухгалтерского ассистента NDC.
Твоя роль: только нормализация запроса пользователя в строгий JSON-контракт.
Не давай бухгалтерский ответ по сути вопроса.
Возвращай только JSON.
Фактическое дерево llm_normalizer/backend/src/prompts сейчас содержит только default.txt в подпапках:
system/default.txtdeveloper/default.txtdomain/default.txtfewshot/default.txt
При этом promptBuilder.ts декларирует version-specific файлы вроде developer/normalizer_v2_0_2.txt, domain/normalizer_domain_v1_1.txt, fewshot/normalizer_v2_0_2.txt. В текущем дереве этих файлов нет. Это отдельная зона аудита: либо runtime использует сохраненные presets из llm_normalizer/data/presets, либо часть built-in preset loader может быть недособрана для прямой загрузки normalizer_v2_0_2.
Сохраненные preset-файлы:
llm_normalizer/data/presets/preset-splJ9OGZ.jsonllm_normalizer/data/presets/preset-rk8wKqPt.jsonllm_normalizer/data/presets/preset-it0w_T10.json
Все найденные preset-файлы относятся к normalizer_v1, а не к normalizer_v2_0_2.
7. Agentic semantic development loop: зачем он нужен
Агентный контур нужен не для того, чтобы "модель сама по себе стала умнее", а чтобы построить повторяемую систему:
- Собрать реалистичный пакет вопросов.
- Прогнать его live против настоящего backend.
- Прочитать user-facing ответы как человек.
- Сравнить с business intent.
- Поставить P0/P1/P2.
- Объяснить root cause layer.
- Сформировать ремонтный handoff.
- После фикса прогнать тот же сценарий.
- Только после принятого live replay сохранить пакет в autoruns.
Главный принцип из AGENTS.md: семантический анализ важнее зеленых unit-тестов и route ids. Route matched не считается успехом, если пользовательский ответ бизнесово неправильный.
8. Главные файлы агентного контура
| Файл | Роль |
|---|---|
scripts/domain_case_loop.py |
Основной движок case/scenario/pack/pack-loop. Запускает backend, пишет artifacts, строит business-first review, repair targets, analyst/coder prompts. |
scripts/domain_truth_harness.py |
Live strict replay по JSON spec. Дает truth_review, business_review, semantic_audit, final status. |
scripts/review_assistant_stage1_run.py |
Анализ уже сохраненных GUI/autorun прогонов. Строит business review, findings, repair targets. |
scripts/stage_agent_loop.py |
Stage-level wrapper над domain_case_loop.py; умеет запускать stage loop, summarise, status, save autorun. |
scripts/agent_semantic_pack_builder.py |
Сборщик целевых AGENT-паков из recipes/source catalog. |
scripts/save_agent_semantic_run.py |
Сохраняет только уже validated replay в UI autoruns. Проверяет accepted artifacts. |
.codex/skills/domain-case-loop/SKILL.md |
Правила работы доменного loop как навыка Codex. |
.codex/agents/domain_analyst.toml |
Ролевая маска строгого аналитика. |
.codex/agents/domain_coder.toml |
Ролевая маска кодера. |
.codex/agents/orchestrator.toml |
Ролевая маска координатора. |
docs/orchestration/active_domain_contract.json |
Текущий mutable domain contract. |
docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json |
Stage manifest для dogfood gate агентного loop. |
9. Роли агентного контура
9.1 Lead Codex
Это основной разработчик в текущем чате. Он:
- читает репозиторий;
- запускает harness;
- делает patch через
apply_patch; - запускает тесты;
- коммитит;
- обновляет Tasker;
- принимает handoff от agent loop.
Важно: Lead Codex не является repo-configured моделью. Его модель/лимиты задаются внешней средой Codex и в этом репозитории не фиксируются.
9.2 Orchestrator
Файл:
.codex/agents/orchestrator.toml
Модель:
gpt-5.4
model_reasoning_effort = high
sandbox_mode = workspace-write
Задача:
- принять case/scenario;
- создать artifact folder;
- захватить baseline;
- вызвать analyst;
- передать coder минимальную задачу;
- rerun;
- запросить before/after verdict;
- завершить статусом
accepted | partial | blocked | needs_exact_capability.
Жесткие ограничения:
- не менять архитектуру;
- не принимать heuristic output как confirmed answer;
- не маскировать fallback;
- принимать scenario tree, а не плоский список вопросов;
- selected-object, pronoun follow-up, date carryover, field truth, answer layering являются обязательными acceptance target.
9.3 Domain analyst
Файл:
.codex/agents/domain_analyst.toml
Модель:
gpt-5.4
model_reasoning_effort = high
sandbox_mode = read-only
Задача:
- читать artifacts, а не гадать по краткому пересказу;
- судить бизнес-смысл ответа;
- выделять P0/P1/P2;
- отличать route gap, capability gap, business utility gap, field mapping gap, object memory gap, temporal honesty gap;
- давать quality score 0-100;
- запрещать acceptance ниже 80 или при unresolved P0.
Ожидаемая структура prose verdict:
- Question meaning
- Primary user path and scenario tree
- Expected direct answer
- What the system actually computed
- Business mismatch
- Route / capability mismatch
- State continuity and selected-object memory
- Field truth and evidence quality
- P0 defects
- P1 defects
- P2 defects
- Minimal patch directions
- Acceptance matrix for rerun
- Acceptance criteria for rerun
- Quality score
- Loop decision
9.4 Domain coder
Файл:
.codex/agents/domain_coder.toml
Модель:
gpt-5.4
model_reasoning_effort = high
sandbox_mode = workspace-write
Задача:
- читать verdict/handoff;
- делать минимальный domain-only patch;
- не менять широкую архитектуру;
- не подменять exact data эвристикой;
- сохранять successful baseline flows.
Разрешенные зоны:
- intents;
- domain-specific routing;
- recipes;
- capability mapping;
- exact/confirmed route handling;
- domain validators;
- evidence/source-ref modeling;
- role modeling;
- follow-up resolution;
- business-readable presentation.
Запрещено:
- broad architecture changes;
- fake data;
- silent heuristic masking;
- large unrelated refactors.
9.5 Deterministic reviewer
Это не LLM-модель, а код.
Главные места:
scripts/domain_case_loop.py::build_business_first_reviewscripts/domain_truth_harness.py::build_business_review_summaryscripts/review_assistant_stage1_run.py::augment_gui_business_review
Что он умеет проверять:
- direct answer first;
- technical garbage;
- top-level scaffolding;
- overly verbose direct answer;
- counterparty net-flow vs company profit misroute;
- bank role misclassification;
- domain leak for nomenclature margin questions;
- missing accounting contract;
- missing next action for limited margin answer.
Последние добавленные issue-коды:
domain_leak_accounting_route- P0;accounting_contract_missing- P1;business_next_step_missing- P2.
10. Режимы запуска agent loop
10.1 Case mode
Команда:
python scripts/domain_case_loop.py run-case --domain <domain> --question "<question>"
Используется для одного конкретного вопроса.
Артефакты:
baseline_output.mdbaseline_debug.jsonbaseline_turn.jsonbaseline_session.jsonbaseline_job.json
10.2 Scenario mode
Команда:
python scripts/domain_case_loop.py run-scenario --manifest <manifest.json>
Используется для одной цепочки вопросов в одной assistant session.
Артефакты:
scenario_manifest.jsonscenario_state.jsonscenario_summary.mdsteps/<step_id>/turn.jsonsteps/<step_id>/debug.jsonsteps/<step_id>/output.mdsteps/<step_id>/step_state.json
10.3 Pack mode
Команда:
python scripts/domain_case_loop.py run-pack --manifest <pack.json>
Используется для нескольких сценариев внутри одного доменного пакета.
Артефакты:
pack_state.jsonpack_summary.mdrepair_targets.jsonscenario_acceptance_matrix.mdscenarios/<scenario_id>/...
10.4 Autonomous pack-loop mode
Команда:
python scripts/domain_case_loop.py run-pack-loop --manifest <pack.json>
Что делает:
- Запускает
run-pack. - Собирает evidence bundle.
- Строит deterministic repair targets.
- Вызывает Codex analyst.
- Пишет
business_audit.md. - Если не accepted:
- при
lead-handoffпишетlead_coder_handoff.mdи останавливается; - при
auto-coderвызывает Codex coder.
- при
- После coder-патча должен быть rerun.
Текущий default repair mode:
lead-handoff
Это принципиально: агент не должен сам бесконтрольно править runtime, пока не доказано, что auto-coder достаточно надежен.
10.5 Truth harness live replay
Команда:
python scripts/domain_truth_harness.py run-live --spec <spec.json> --output-dir artifacts/domain_runs/<run_id>
Артефакты:
final_status.mdtruth_review.md/jsonbusiness_review.md/jsonsemantic_audit.md/jsonpack_state.jsonsteps/<step_id>/turn.jsonsteps/<step_id>/output.md
Это сейчас самый удобный механизм для целевых AGENT-прогонов.
10.6 Save validated AGENT run to autoruns
Команда:
python scripts/save_agent_semantic_run.py --spec <spec.json> --validated-run-dir <accepted_artifact_dir>
Ограничение:
- нельзя сохранять pack в autoruns до live replay;
- save-script проверяет
truth_review.json,business_review.json, accepted/pass status; - unvalidated save возможен только через явный
--allow-unvalidated, но по правилам проекта это invalid intermediate artifact для боевых паков.
11. Stage-level AGENT loop
Stage manifest:
docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json
Ключевые параметры:
{
"stage_id": "agentic_semantic_development_loop",
"module_name": "Agentic Semantic Development Loop",
"target_score": 88,
"max_iterations": 6,
"repair_mode": "lead-handoff",
"save_autorun_on_accept": true,
"manual_confirmation_required_after_accept": true
}
Acceptance invariants:
- status command exposes next action / repair state / validation state;
- run-pack-loop defaults to Lead Codex handoff;
- continue command never runs real coder pass without
--execute-repair; business_audit.mdandlead_coder_handoff.mdare produced before code repair when semantic replay is not accepted;- patched repair cannot close stage without rerun validation;
- business answers remain direct/context-aware/free of debug IDs;
- manual GUI confirmation remains required after accepted semantic replay.
Stage wrapper:
scripts/stage_agent_loop.py
Основные команды:
python scripts/stage_agent_loop.py plan --manifest docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json
python scripts/stage_agent_loop.py run --manifest docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json
python scripts/stage_agent_loop.py status --manifest docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json
python scripts/stage_agent_loop.py summarize --manifest docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json
12. Current active domain contract
Файл:
docs/orchestration/active_domain_contract.json
Текущий domain:
inventory_stock_supplier_provenance
Смысл:
- складские остатки на дату;
- выбранная номенклатура;
- поставщик;
- закупочные документы;
- возраст закупки;
- дальнейшая продажа;
- selected-object continuity;
- pronoun follow-up;
- temporal carryover.
Правило из контракта:
- стабильные слои:
AGENTS.md,.codex/skills/domain-case-loop,.codex/agents/*.toml; - mutable слой:
docs/orchestration/active_domain_contract.json; - при смене домена надо менять active contract, а не переписывать agent canon.
13. Как агент оценивает качество
13.1 Основной порядок анализа
Проектное правило:
- Читать цепочку пользовательских вопросов как человеческий разговор.
- Читать ответы ассистента как их видит пользователь.
- Оценить semantic correctness, context awareness, directness, usefulness.
- Только потом смотреть debug payload, route ids, capability ids, filters.
- Только после этого смотреть unit tests / narrow regressions.
Это зашито в AGENTS.md и поддерживается business_first_review.
13.2 Виды итогового статуса
Используются статусы:
accepted- можно считать сценарий принятым;partial- есть рабочая часть, но качество/coverage недостаточно;blocked- инфраструктурный или реальный hard blocker;needs_exact_capability- запрос валиден для проекта, но не хватает capability/route/контракта.
13.3 Severity
Практическая шкала:
- P0 - смысловая или архитектурная поломка, нельзя принимать;
- P1 - важная проблема качества/контракта, обычно блокирует "хорошую базу";
- P2 - полезная доработка, не всегда blocker;
- warning/info - поддерживающие сигналы.
Примеры P0:
- wrong intent;
- wrong capability;
- wrong recipe;
- wrong date/period;
- missing required filter;
- focus object missing;
- business direct answer missing;
- technical garbage in answer;
- counterparty net-flow misrouted to company profit;
- domain leak accounting route.
Примеры P1:
- answer layering noise;
- business answer too verbose;
- accounting contract missing.
Пример P2:
- limited margin answer without next action.
14. Что считается хорошим ответом
Общие правила:
- direct answer first;
- business meaning first, proof second, service notes last;
- no route/debug/internal ids in user-facing answer;
- no row counts before business answer;
- no
status,what was considered,exact contour,coverage,truth gateabove the answer; - selected-object follow-up must be action-first, not trace-first;
- if exact fact unavailable, answer must say what is confirmed, what is inferred, what remains unknown;
- limited answer must still give useful next action when domain expects it.
Для маржинальности номенклатуры агент теперь ожидает:
- период;
- выручку;
- себестоимость;
- валовую прибыль;
- маржу;
- если данных не хватает - честный отказ плюс следующий шаг.
Запрещенная доменная протечка для маржинальности:
- ОС;
- амортизация;
- банковские списания;
- payment_document;
- unresolved settlement;
- зависшие оплаты;
- закрытие расчетов вместо реализации/себестоимости.
15. Artifact topology
Главные каталоги:
artifacts/domain_runs/
llm_normalizer/data/assistant_sessions/
llm_normalizer/reports/
llm_normalizer/data/autorun_generators/
llm_normalizer/data/eval_cases/
docs/orchestration/
Что где лежит:
- live run artifacts:
artifacts/domain_runs/<run_id>/; - session JSON:
llm_normalizer/data/assistant_sessions/<session_id>.json; - saved autorun sessions:
llm_normalizer/data/autorun_generators/saved_sessions/; - generated eval cases:
llm_normalizer/data/eval_cases/; - autorun history:
llm_normalizer/data/autorun_generators/history.json; - specs/manifests:
docs/orchestration/*.json; - stage loop artifacts:
artifacts/domain_runs/stage_agent_loops/.
16. Как pack попадает в UI autoruns
Правильный порядок:
-
Создать или обновить spec.
-
Выполнить live replay:
python scripts/domain_truth_harness.py run-live --spec docs/orchestration/<spec>.json --output-dir artifacts/domain_runs/<run_id> -
Проверить:
final_status.md;semantic_audit.md/json;truth_review.md/json;- step-level
output.md/turn.json.
-
Если статус accepted и semantic gate pass, сохранить:
python scripts/save_agent_semantic_run.py --spec docs/orchestration/<spec>.json --validated-run-dir artifacts/domain_runs/<run_id> -
В UI pack появится как
AGENT | ....
Если pack сохранен раньше live replay, по правилам проекта это мусорный intermediate artifact, его надо удалить и пересоздать.
17. Текущие сохраненные AGENT-паки
Недавние важные specs:
docs/orchestration/agent_autonomy_business_quality_20260523.jsondocs/orchestration/agent_autonomy_selected_object_mix_20260523.jsondocs/orchestration/agent_inventory_margin_ranking_20260523.jsondocs/orchestration/agent_profit_direct_answer_20260523.jsondocs/orchestration/agent_cashflow_profit_directness_20260523.jsondocs/orchestration/agent_cashflow_no_tops_20260523.jsondocs/orchestration/inventory_margin_ranking_agent_loop_20260522.json
Пример принятого pack:
agent_autonomy_selected_object_mix_20260523- live replay: 15/15;
- status:
accepted; - сохранен в autoruns как
AGENT | selected-object + multi-org context mix.
18. Как анализируется GUI/autorun прогон
Файл:
scripts/review_assistant_stage1_run.py
Назначение:
- взять сохраненные assistant sessions;
- собрать пары user/assistant;
- извлечь user-facing ответ;
- дополнить business review;
- найти issue codes;
- сгруппировать repair targets;
- записать markdown/json отчет.
Особые детекторы:
- technical leaks;
- bank role misclassification;
- counterparty value-flow -> company profit slip;
- margin domain leak;
- direct answer missing;
- top-line scaffolding;
- verbosity.
19. Где находятся ролевые маски и ограничения
Agent masks
.codex/agents/orchestrator.toml.codex/agents/domain_analyst.toml.codex/agents/domain_coder.toml
Skill rules
.codex/skills/domain-case-loop/SKILL.md.codex/skills/domain-case-loop/references/business_first_analyst_rubric.md.codex/skills/domain-case-loop/references/scenario_tree_acceptance_canon.md.codex/skills/domain-case-loop/references/verdict_template.md.codex/skills/domain-case-loop/references/repo_runtime_map.md
Project rules
AGENTS.md
Ключевые ограничения из AGENTS.md:
- UTF-8 without BOM;
- после code changes обновлять graphify;
- acceptance через semantic answer, не только tests;
- valid multi-org clarification не считать bug;
- если multi-company contour требует уточнения, replay должен продолжить с выбором компании;
- не сохранять AGENT pack в autoruns до accepted live replay;
- не принимать domain, если root работает, а selected-object/drilldown edges ломаются;
- no silent heuristic masking.
Runtime feature flags
llm_normalizer/backend/src/config.ts
Примеры включенных флагов:
FEATURE_ASSISTANT_ADDRESS_QUERY_V1 = trueFEATURE_ASSISTANT_ADDRESS_QUERY_LLM_PREDECOMPOSE_V1 = trueFEATURE_ASSISTANT_ADDRESS_QUERY_LIVE_V1 = trueFEATURE_ASSISTANT_ADDRESS_NAVIGATION_STATE_V1 = trueFEATURE_ASSISTANT_CAPABILITY_ROUTE_GUARD_V1 = trueFEATURE_ASSISTANT_ROUTE_EXPECTATION_AUDIT_V1 = trueFEATURE_ASSISTANT_LIVING_CHAT_ROUTER_V1 = true
Примеры выключенных/опасных:
FEATURE_ASSISTANT_MCP_RUNTIME_V1 = falseFEATURE_ASSISTANT_ROUTE_EXPECTATION_HARD_GUARD_V1 = falseFEATURE_ASSISTANT_STAGE2_EVAL_V1 = false
20. Что автоматизировано, а что нет
Автоматизировано:
- capture baseline/rerun;
- live scenario replay;
- semantic audit artifact generation;
- deterministic issue detection;
- repair target grouping;
- Codex analyst verdict;
- Lead Codex handoff;
- validated autorun save;
- stage status/summary.
Частично автоматизировано:
- code repair через Codex coder.
Почему частично:
auto-coderсуществует, но выключен по умолчанию;- default
repair_mode = lead-handoff; - агент пишет handoff, а Lead Codex применяет патч в основном контексте;
- это сделано осознанно, чтобы не получить слабый авто-патч с architecture drift.
Не автоматизировано полностью:
- финальное продуктово-бухгалтерское решение спорных бизнес-рамок;
- опасные architecture forks;
- выбор между разными учетными моделями, если данных/политики не хватает;
- гарантированная 100% оценка всех доменов без целевых packs.
21. Текущий уровень зрелости агента
Что уже хорошо:
- умеет запускать real backend replay;
- умеет сохранять step-level artifacts;
- умеет semantic gate;
- умеет selected-object continuity checks;
- умеет multi-org clarification continuation;
- умеет сохранять validated packs в UI autoruns;
- умеет ловить техмусор и несколько бизнесовых P0;
- умеет формировать repair handoff.
Что еще надо качать:
- сильный analyst verdict уровня ручного аудита на каждый новый домен;
- больше domain-specific semantic detectors;
- auto-coder пока не default;
- prompt/preset registry требует отдельной ревизии;
- stage wrapper defaults и shared LLM defaults надо унифицировать или явно документировать в CLI;
- больше целевых packs по бухгалтерским доменам: маржинальность, себестоимость, прибыль, НДС, долги, склад, взаиморасчеты.
22. Текущие риски
22.1 Разные defaults моделей
domain_case_loop.py и stage_agent_loop.py могут запускать разные local LLM defaults.
Риск:
- один и тот же pack может вести себя по-разному при прямом и stage-запуске.
Что сделать:
- унифицировать stage wrapper с shared LLM config или явно писать effective model в каждый artifact.
22.2 Prompt preset registry не полностью прозрачен
promptBuilder.ts декларирует version-specific files, но в prompt-директории сейчас видны только default files.
Риск:
- прямой built-in load для
normalizer_v2_0_2может зависеть от отсутствующих файлов или от сохраненных presets неочевидным образом.
Что сделать:
- отдельный audit prompt registry;
- документировать active prompt source in runtime;
- добавить health check на prompt file presence.
22.3 Semantic gate еще не равен бухгалтеру
Deterministic review уже ловит часть P0/P1, но не все.
Риск:
- новый домен может пройти route-level checks, но быть бизнесово слабым.
Что сделать:
- добавлять domain-specific detectors по мере появления ручных аудитов;
- сохранять плохие и хорошие примеры как unit tests review layer.
22.4 Auto-coder выключен
Это скорее плюс по безопасности, но минус по автономности.
Риск:
- агент не закрывает цикл полностью сам.
Что сделать:
- сначала довести analyst/handoff до стабильно высокого качества;
- затем включать auto-coder только на низкорисковых scoped domains.
23. Быстрая карта "кто за что отвечает"
| Вопрос | Ответ |
|---|---|
| Кто отвечает пользователю в UI? | Product runtime в llm_normalizer/backend. |
| Кто нормализует вопрос? | Local LLM + deterministic resolvers. |
| Какая локальная модель сейчас в shared config? | unsloth/qwen3-30b-a3b-instruct-2507. |
| Кто запускает live replay? | domain_truth_harness.py или domain_case_loop.py. |
| Кто пишет semantic audit? | domain_truth_harness.py + domain_case_loop.py::business_first_review. |
| Кто анализирует GUI-прогоны? | review_assistant_stage1_run.py. |
| Кто делает строгий LLM-verdict? | domain_analyst на gpt-5.4. |
| Кто должен чинить код в auto режиме? | domain_coder на gpt-5.4, но auto-coder не default. |
| Кто чинит код сейчас обычно? | Lead Codex по handoff. |
| Где текущий активный домен? | docs/orchestration/active_domain_contract.json. |
| Где сохраненные AGENT autoruns? | llm_normalizer/data/autorun_generators/saved_sessions/. |
| Где история autorun генерации? | llm_normalizer/data/autorun_generators/history.json. |
| Где stage manifest агентного loop? | docs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json. |
24. Минимальная команда для текущего целевого AGENT-прогона
Пример live replay:
python scripts/domain_truth_harness.py run-live `
--spec docs/orchestration/agent_autonomy_selected_object_mix_20260523.json `
--output-dir artifacts/domain_runs/agent_autonomy_selected_object_mix_live_manual
Проверить:
Get-Content artifacts/domain_runs/agent_autonomy_selected_object_mix_live_manual/final_status.md
Get-Content artifacts/domain_runs/agent_autonomy_selected_object_mix_live_manual/semantic_audit.md
Get-Content artifacts/domain_runs/agent_autonomy_selected_object_mix_live_manual/truth_review.md
Сохранить в autoruns только если accepted:
python scripts/save_agent_semantic_run.py `
--spec docs/orchestration/agent_autonomy_selected_object_mix_20260523.json `
--validated-run-dir artifacts/domain_runs/agent_autonomy_selected_object_mix_live_manual
25. Как читать результаты агента
Правильный порядок:
final_status.mdsemantic_audit.mdtruth_review.mdpack_state.jsonsteps/<step_id>/output.mdsteps/<step_id>/turn.json
Не надо начинать с route ids. Сначала читается human-facing answer.
26. Что значит "качать агента дальше"
В текущей архитектуре "качать агента" означает:
- Улучшать business-first review.
- Добавлять domain-specific semantic detectors.
- Строить целевые AGENT packs по свежим больным темам.
- Требовать live replay до autorun save.
- Делать accepted gate не по route/pass, а по human answer quality.
- Расширять analyst verdict/handoff так, чтобы Lead Codex получал почти готовый repair plan.
- Постепенно приближать auto-coder к безопасному default, но не раньше, чем analyst gate станет надежным.
Ближайший правильный домен для прокачки:
- маржинальность / прибыльность номенклатуры;
- выручка без НДС;
- себестоимость реализации;
- валовая прибыль;
- маржа;
- честный отказ, если данных мало;
- next action, если рейтинг нельзя построить.
27. Источники для этого документа
Ключевые источники:
AGENTS.mdgraphify-out/GRAPH_REPORT.md.codex/skills/domain-case-loop/SKILL.md.codex/skills/domain-case-loop/references/repo_runtime_map.md.codex/skills/domain-case-loop/references/business_first_analyst_rubric.md.codex/agents/orchestrator.toml.codex/agents/domain_analyst.toml.codex/agents/domain_coder.tomlscripts/domain_case_loop.pyscripts/domain_truth_harness.pyscripts/review_assistant_stage1_run.pyscripts/stage_agent_loop.pyscripts/save_agent_semantic_run.pyscripts/agent_semantic_pack_builder.pyllm_normalizer/data/shared_llm_connection.jsonllm_normalizer/backend/src/config.tsllm_normalizer/backend/src/services/promptBuilder.tsdocs/orchestration/active_domain_contract.jsondocs/orchestration/stage_agent_loop_agentic_semantic_development_loop.json