18 KiB
ТЗ для Codex — Validation Run по Accounting Analytics Layer, Orchestration и LLM-like Benchmark
1. Назначение документа
Документ фиксирует следующий этап работ после успешного подтверждения runtime semantic bridge к 1С.
Цель этапа:
- довести жирный monthly slice до полноценно посаженного аналитического слоя;
- провести жёсткую верификацию онтологии и mapping-слоя;
- формализовать оркестрацию источников данных;
- подготовить и выполнить контролируемый benchmark-run по набору бухгалтерских вопросов;
- выполнить этот benchmark не на реальной 4o mini, а через Codex в режиме максимально близкой эмуляции её поведения;
- получить подробный инженерный отчёт о качестве маршрутизации, скорости и полноте ответов.
2. Контекст
На предыдущих этапах подтверждено:
- runtime semantic bridge работает;
- read-only режим подтверждён;
- критические цепочки
document -> posting -> account,posting -> subconto[1..3],saldo -> movementsдоказаны; 1c-mcp-toolkitпринят со статусомadopt with restrictions;- общая архитектура analytics layer спроектирована, но orchestration-service и насыщение store ещё не доведены до production-ready уровня.
Сейчас задача не в том, чтобы искать новый мост, а в том, чтобы:
- проверить, что analytics-layer действительно сел на реальный жирный срез;
- проверить, что ontology и mapping не врут;
- задать правила оркестрации;
- провести честный тест пользовательских вопросов.
3. Главная цель этапа
Этап должен ответить на четыре вопроса:
Вопрос 1
Насколько качественно и полно жирный месячный snapshot садится в canonical/feature/risk слои?
Вопрос 2
Насколько онтология и mapping-layer действительно покрывают:
- сущности 1С;
- взаимосвязи между ними;
- типизацию связей;
- критические бухгалтерские цепочки?
Вопрос 3
Можно ли формализовать orchestration так, чтобы система:
- не делала лишних тяжёлых live-вызовов;
- не слала LLM в неправильные источники;
- умела различать простые, сложные, batch-heavy и drill-down сценарии?
Вопрос 4
Как система ведёт себя на реальном наборе бухгалтерских вопросов по времени, маршруту и качеству ответа, если прогон имитирует поведение 4o mini без фактического расхода дорогих токенов?
4. Общая задача для Codex
Codex должен выполнить полный цикл:
- взять один жирный monthly slice как эталонный тестовый срез;
- довести его до корректной посадки в canonical/feature/risk store;
- провести жёсткий ontology + mapping audit;
- формализовать orchestration policy;
- подготовить benchmark-runner под список бухгалтерских вопросов;
- выполнить benchmark-run в режиме LLM-like simulation, максимально приближенном к
4o mini; - вернуть детальный инженерный отчёт.
5. Жирный slice — обязательный эталон
Требование
Взять один жирный месячный snapshot как основной тестовый срез.
Текущий приоритет:
- июнь 2020, если именно он уже зафиксирован как наиболее объёмный и показательный.
Что требуется по slice
- посадить его в canonical store полностью;
- посадить в feature store;
- прогнать через risk/anomaly слой;
- убедиться, что slice даёт не просто хранение, а реальный материал для аналитики.
Что проверить
- количество сущностей;
- количество связей;
- количество типизированных связей;
- количество
Unknownи иных деградированных target/source entity; - сколько объектов попало в canonical;
- сколько признаков/feature записано;
- сколько anomaly/risk сигналов получилось;
- какие классы сущностей реально покрыты.
6. Жёсткая проверка онтологии и mapping
6.1. Цель
Провести взрослую верификацию ontology/mapping-слоя.
Нельзя ограничиться:
- “сущности вообще есть”;
- “связи вообще есть”.
Нужно проверить:
- корректна ли типизация сущностей;
- корректна ли типизация связей;
- насколько стабильно ложатся документы, проводки, счета, субконто, контрагенты, договоры, склады, номенклатура, регистры;
- насколько корректно разрешаются ссылки;
- нет ли систематических ложных сопоставлений;
- где ontology/mapping врёт.
6.2. Обязательные метрики ontology audit
Codex должен посчитать и отдать:
- общее число entity classes;
- число covered entity classes;
- число uncovered entity classes;
- число relation types;
- число корректно типизированных relations;
- число
Unknownи аналогичных деградированных маппингов; - число конфликтных mappings;
- процент link coverage;
- процент semantic coverage;
- список самых проблемных типов сущностей и связей.
6.3. Жёсткая цель
Онтология должна быть:
- переносимой;
- не привязанной к одной компании;
- пригодной для других 1С-контуров, как минимум того же класса;
- не собранной “под один snapshot вручную”.
7. Формализация оркестрации
7.1. Цель
Сформировать правила orchestration layer:
- что считается простым запросом;
- что считается drill-down запросом;
- что считается heavy analytical запросом;
- когда идти в OData;
- когда идти в MCP/runtime bridge;
- когда работать по snapshot/canonical store;
- когда использовать feature/risk/anomaly store;
- когда запускать batch refresh/analysis.
7.2. Источники, которые надо развести
Нужно развести по ролям:
A. OData
Использовать как:
- discovery layer;
- быстрый широкий обзор структуры;
- fallback для типовых сущностей, если это быстрее и дешевле;
- лёгкий слой навигации.
B. MCP / Runtime Bridge
Использовать как:
- live semantic bridge;
- drill-down;
- доступ к документу, проводке, счёту, subconto, saldo;
- точечные запросы;
- ситуации, когда нужен актуальный runtime truth.
C. Snapshots / Canonical Store
Использовать как:
- основной слой для already-loaded истории;
- источник для быстрых аналитических ответов;
- источник для cross-period анализа;
- источник для вопросов, где не нужна свежесть в секунду.
D. Feature / Risk / Anomaly Store
Использовать как:
- быстрый источник готовых аналитических выводов;
- anomaly-first ответы;
- risk-based маршрутизацию;
- summarized insight layer.
7.3. Обязательный результат
Codex должен оформить:
- decision tree оркестрации;
- список правил маршрутизации;
- источники по приоритету;
- fallback logic;
- timeout budget;
- max retrieval budget;
- политика retry/replan;
- политика отказа от неадекватно тяжёлых live-запросов.
8. LLM-like benchmark без реальной 4o mini
8.1. Главная идея
Нужно выполнить benchmark-run так, чтобы Codex приблизил своё поведение к профилю 4o mini, но без реального расхода токенов OpenAI.
8.2. Важно
Это не “настоящая 4o mini”. Это controlled emulation / simulation.
8.3. Требование к Codex
Codex должен надеть на себя ограничения и поведенческие правила, максимально похожие на рабочий режим дешёвой быстрой модели:
Ограничения по мышлению и маршрутизации
- не уходить в бесконечную глубину;
- делать компактную декомпозицию вопроса;
- не генерировать чрезмерно сложные планы, если вопрос можно решить проще;
- отдавать предпочтение уже существующим store-layer ответам, если они достаточны;
- использовать live bridge только по необходимости;
- минимизировать число round-trips;
- минимизировать контекст;
- не строить “идеальную академическую” стратегию, если хватит практичной.
Ограничения по ответу
- отвечать короче и практичнее;
- не делать длинных философских объяснений;
- давать инженерно полезный ответ;
- явно помечать, когда ответ построен на store, а когда на live data.
Ограничения по стоимости / latency simulation
Codex должен действовать так, как будто:
- запрос дорогой;
- шаги надо экономить;
- retrieval budget ограничен;
- слишком тяжёлые запросы надо сворачивать или бить на этапы.
8.4. Что нужно получить
Не “магически стать 4o mini”, а:
- получить benchmark в сравнимом дешёвом профиле рассуждения.
9. Набор бухгалтерских вопросов
Codex должен прогнать набор 35 тестовых бухгалтерских вопросов.
Требования к набору
Вопросы должны быть:
- разношёрстные;
- от простых к тяжёлым;
- от конкретных к общим;
- от точечных к аналитическим;
- от single-object к whole-slice;
- покрывать разные маршруты системы.
Классы вопросов
Нужно включить:
-
Простые factual
- по документу;
- по счёту;
- по проводке;
- по контрагенту;
- по договору.
-
Explain / drill-down
- объяснить saldo;
- объяснить движение;
- показать цепочку документа;
- показать, почему запись попала туда.
-
Cross-entity
- связать документ и проводки;
- контрагента и договор;
- номенклатуру и склад;
- регистр и первичный документ.
-
Period / trend
- изменения за месяц;
- сравнение с предыдущим периодом;
- необычные движения;
- всплески активности.
-
Anomaly / control
- найти аномалии;
- найти нетипичные корреспонденции;
- найти незакрытые хвосты;
- найти коллизии.
-
Heavy analytical
- анализ всего среза;
- анализ всех счетов;
- анализ компаний/контрагентов;
- поиск отклонений от baseline.
-
Ambiguous / fuzzy
- криво сформулированные вопросы;
- вопросы с недостатком контекста;
- вопросы, где нужна маршрутизация и уточнение.
10. Что должен вернуть benchmark
Для каждого вопроса Codex должен вернуть запись со следующими полями:
question_idquestion_textquestion_classexpected_routeactual_routesources_usedrefresh_neededlatency_msplanning_time_msretrieval_time_msresponse_generation_time_mscontext_sizeanswer_textanswer_quality_assessmentroute_quality_assessmentissues_detectedrecommended_fix
11. Отчёт по итогам benchmark-run
Codex должен собрать максимально подробный отчёт, где будут:
11.1. Общая статистика
- число вопросов;
- среднее время ответа;
- медиана;
- p90;
- p95;
- средний размер контекста;
- число live-route вопросов;
- число store-route вопросов;
- число неправильных маршрутизаций;
- число деградированных ответов.
11.2. Анализ качества оркестрации
- где маршрутизация сработала правильно;
- где OData использован правильно;
- где MCP использован правильно;
- где snapshot/store было бы лучше;
- где система дёрнула не тот источник;
- где слишком дорого / долго.
11.3. Анализ онтологии и мэппинга
- где ontology помогла;
- где mapping сломал ответ;
- какие типы сущностей и связей проблемны;
- какие relation patterns надо чинить.
11.4. Итоговые рекомендации
- что надо чинить первым;
- что можно отложить;
- какие маршруты уже production-usable;
- какие маршруты нельзя пока давать живому пользователю.
12. Deliverables
Codex должен вернуть:
slice_ingestion_report.mdontology_mapping_audit.mdorchestration_policy_spec.mdllm_like_simulation_profile.mdbenchmark_questions_35.mdbenchmark_run_results.jsonbenchmark_run_report.mdbenchmark_route_analysis.mdbenchmark_final_verdict.md
13. Критерии приёмки
Этап считается успешным, если:
- жирный slice полноценно посажен в canonical/feature/risk store;
- ontology + mapping прошли жёсткий аудит;
- orchestration policy формализована;
- Codex выполнил benchmark-run в LLM-like профиле;
- по каждому вопросу есть route trace, timing и quality trace;
- можно честно сказать:
- какие маршруты уже хорошие;
- какие требуют доработки;
- где bottleneck;
- где слабое место онтологии;
- где слабое место оркестрации.
14. Резюме
Это не этап “подключили LLM и надеемся на чудо”.
Это этап:
- доведения жирного среза;
- взрослой проверки ontology/mapping;
- формализации orchestration;
- controlled benchmark-run с модель-подобным профилем;
- инженерной оценки готовности системы к реальному пользовательскому контуру.
Главная задача: получить честную, измеримую и трассируемую картину того, насколько система готова к следующему шагу.