Закрепить расширенный AGENT-прогон качества 1С-ассистента
This commit is contained in:
@@ -382,7 +382,7 @@ function classifyBankOperationSemanticBucket(row) {
|
||||
}
|
||||
function bankOperationSemanticBucketLabel(bucket) {
|
||||
if (bucket === "commission") {
|
||||
return "комиссии и банковое обслуживание";
|
||||
return "комиссии и банковское обслуживание";
|
||||
}
|
||||
if (bucket === "deposit_or_credit") {
|
||||
return "депозиты, кредиты или проценты";
|
||||
@@ -3886,6 +3886,7 @@ function composeFactualReplyBody(intent, rows, options = {}) {
|
||||
(String(right.period ?? "").localeCompare(String(left.period ?? ""), "ru")))
|
||||
.slice(0, Math.min(rows.length, 5));
|
||||
const semanticSummary = summarizeBankOperationSemantics(rows);
|
||||
const compactRoleAnswer = /(?:клиент|поставщик|финансов|роль|коротко)/iu.test(String(options.userMessage ?? ""));
|
||||
const compactEvidenceRows = visibleRows.map((row, index) => {
|
||||
const direction = bankOperationDirectionLabel(bankOperationDirection(row));
|
||||
const amount = formatMoneyRub(row.amount ?? 0);
|
||||
@@ -3901,13 +3902,13 @@ function composeFactualReplyBody(intent, rows, options = {}) {
|
||||
`Коротко: найдено банковских операций${counterparty ? ` по ${counterparty}` : " по контрагенту"} — ${rows.length}.`,
|
||||
summarizeBankOperationDirections(rows),
|
||||
roleBoundary ?? "Показываю подтвержденные банковские операции из текущего среза.",
|
||||
bankOperationEvidenceLine(rows, preferredBankEvidenceDirection(options.userMessage)),
|
||||
...(semanticSummary ? [semanticSummary] : []),
|
||||
"Примеры строк 1С:",
|
||||
...compactEvidenceRows,
|
||||
"Следующий шаг: могу отдельно разложить назначения платежа, договоры или отделить банковский контур от клиентского/поставщицкого."
|
||||
...(semanticSummary ? [semanticSummary] : [])
|
||||
];
|
||||
if (rows.length > visibleRows.length) {
|
||||
if (!compactRoleAnswer) {
|
||||
lines.push(bankOperationEvidenceLine(rows, preferredBankEvidenceDirection(options.userMessage)), "Примеры строк 1С:", ...compactEvidenceRows);
|
||||
}
|
||||
lines.push("Следующий шаг: могу отдельно разложить назначения платежа, договоры или отделить банковский контур от клиентского/поставщицкого.");
|
||||
if (!compactRoleAnswer && rows.length > visibleRows.length) {
|
||||
lines.push(`Показаны первые ${visibleRows.length} из ${rows.length}; полный список остается в подтвержденном срезе.`);
|
||||
}
|
||||
return {
|
||||
|
||||
+7
-13
@@ -1212,22 +1212,16 @@ function derivedValueFlowConfirmedLine(pilot) {
|
||||
const organization = organizationScope ? ` по организации ${organizationScope}` : "";
|
||||
const counterparty = flow.counterparty ? ` по контрагенту ${flow.counterparty}` : "";
|
||||
const period = flow.period_scope ? ` за период ${flow.period_scope}` : " в проверенном окне";
|
||||
const movementLabel = flow.value_flow_direction === "outgoing_supplier_payout"
|
||||
? "исходящих платежей/списаний"
|
||||
: "входящих денежных поступлений";
|
||||
const totalLabel = flow.value_flow_direction === "outgoing_supplier_payout"
|
||||
? "сумма исходящих платежей/списаний составляет"
|
||||
: "сумма входящих денежных поступлений составляет";
|
||||
? "исходящие платежи/списания"
|
||||
: "входящие денежные поступления";
|
||||
const caveat = flow.value_flow_direction === "outgoing_supplier_payout"
|
||||
? "Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна."
|
||||
: "Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна.";
|
||||
const dates = flow.first_movement_date && flow.latest_movement_date
|
||||
? ` Первая найденная дата движения: ${flow.first_movement_date}; последняя: ${flow.latest_movement_date}.`
|
||||
: "";
|
||||
? "Граница: это проверенный денежный срез по найденным списаниям в 1С, не внешний аудит всех платежей вне этого окна."
|
||||
: "Граница: это проверенный денежный срез по найденным поступлениям в 1С, не внешний аудит всех поступлений вне этого окна.";
|
||||
const limitCaveat = flow.coverage_limited_by_probe_limit
|
||||
? " Лимит строк проверки достигнут; полный запрошенный период может быть покрыт не полностью."
|
||||
? " Проверка уперлась в лимит строк, поэтому полный период может быть покрыт не полностью."
|
||||
: "";
|
||||
return `По найденным строкам ${movementLabel} в 1С${counterparty}${period} ${totalLabel} ${flow.total_amount_human_ru} Учтено строк с суммой: ${flow.rows_with_amount} из ${flow.rows_matched}.${dates}${limitCaveat} ${caveat}`;
|
||||
return `${totalLabel}${counterparty || organization}${period}: ${flow.total_amount_human_ru}.${limitCaveat} ${caveat}`;
|
||||
}
|
||||
function derivedValueFlowMonthlyLines(pilot) {
|
||||
const flow = pilot.derived_value_flow;
|
||||
@@ -1831,7 +1825,7 @@ function buildAssistantMcpDiscoveryAnswerDraft(pilot) {
|
||||
: pilot.derived_ranked_value_flow && derivedValueLine
|
||||
? [derivedValueLine]
|
||||
: derivedValueLine
|
||||
? [...pilot.evidence.confirmed_facts, derivedValueLine, ...monthlyConfirmedLines]
|
||||
? [derivedValueLine, ...monthlyConfirmedLines]
|
||||
: valueFlowZeroResultConfirmedLine(pilot)
|
||||
? [valueFlowZeroResultConfirmedLine(pilot)]
|
||||
: derivedEntityResolutionLine
|
||||
|
||||
+2
-4
@@ -520,14 +520,12 @@ function businessOverviewInventoryLine(overview) {
|
||||
}
|
||||
const amount = moneyText(inventory.total_amount_human_ru);
|
||||
const rows = Number(inventory.rows_matched);
|
||||
const quantity = Number(inventory.total_quantity);
|
||||
if (!amount && !Number.isFinite(rows)) {
|
||||
return null;
|
||||
}
|
||||
const pieces = [
|
||||
Number.isFinite(rows) ? `${rows} позиций` : null,
|
||||
amount ? `на ${sentenceAmount(amount) ?? amount}` : null,
|
||||
Number.isFinite(quantity) && quantity > 0 ? `количество ${quantity}` : null
|
||||
amount ? `на ${sentenceAmount(amount) ?? amount}` : null
|
||||
].filter((item) => Boolean(item));
|
||||
return pieces.length > 0 ? `Склад: ${pieces.join(", ")}.` : null;
|
||||
}
|
||||
@@ -919,7 +917,7 @@ function buildCompactBusinessOverviewReply(entryPoint, draft) {
|
||||
}
|
||||
if (customerName && customerAmount) {
|
||||
lines.push(topCustomerLooksFinancial
|
||||
? `- крупнейший входящий источник: ${customerName} — ${sentenceAmount(customerAmount) ?? customerAmount}; это похоже на финансовый контур, не на обычную клиентскую выручку;`
|
||||
? `- крупнейший входящий источник: ${customerName} — ${sentenceAmount(customerAmount) ?? customerAmount}; это похоже на финансовый контур, не на обычную клиентскую выручку;${nonFinancialCustomer ? ` крупнейший небанковский входящий контрагент: ${nonFinancialCustomer};` : ""}`
|
||||
: `- крупнейший источник денег: ${customerName} — ${sentenceAmount(customerAmount) ?? customerAmount}; это сигнал концентрации на крупном заказчике;`);
|
||||
}
|
||||
if (topSupplier) {
|
||||
|
||||
@@ -549,7 +549,7 @@ function classifyBankOperationSemanticBucket(row: ComposeStageRow): BankOperatio
|
||||
|
||||
function bankOperationSemanticBucketLabel(bucket: BankOperationSemanticBucket): string {
|
||||
if (bucket === "commission") {
|
||||
return "комиссии и банковое обслуживание";
|
||||
return "комиссии и банковское обслуживание";
|
||||
}
|
||||
if (bucket === "deposit_or_credit") {
|
||||
return "депозиты, кредиты или проценты";
|
||||
@@ -4940,6 +4940,7 @@ function composeFactualReplyBody(
|
||||
)
|
||||
.slice(0, Math.min(rows.length, 5));
|
||||
const semanticSummary = summarizeBankOperationSemantics(rows);
|
||||
const compactRoleAnswer = /(?:клиент|поставщик|финансов|роль|коротко)/iu.test(String(options.userMessage ?? ""));
|
||||
const compactEvidenceRows = visibleRows.map((row, index) => {
|
||||
const direction = bankOperationDirectionLabel(bankOperationDirection(row));
|
||||
const amount = formatMoneyRub(row.amount ?? 0);
|
||||
@@ -4955,13 +4956,17 @@ function composeFactualReplyBody(
|
||||
`Коротко: найдено банковских операций${counterparty ? ` по ${counterparty}` : " по контрагенту"} — ${rows.length}.`,
|
||||
summarizeBankOperationDirections(rows),
|
||||
roleBoundary ?? "Показываю подтвержденные банковские операции из текущего среза.",
|
||||
bankOperationEvidenceLine(rows, preferredBankEvidenceDirection(options.userMessage)),
|
||||
...(semanticSummary ? [semanticSummary] : []),
|
||||
"Примеры строк 1С:",
|
||||
...compactEvidenceRows,
|
||||
"Следующий шаг: могу отдельно разложить назначения платежа, договоры или отделить банковский контур от клиентского/поставщицкого."
|
||||
...(semanticSummary ? [semanticSummary] : [])
|
||||
];
|
||||
if (rows.length > visibleRows.length) {
|
||||
if (!compactRoleAnswer) {
|
||||
lines.push(
|
||||
bankOperationEvidenceLine(rows, preferredBankEvidenceDirection(options.userMessage)),
|
||||
"Примеры строк 1С:",
|
||||
...compactEvidenceRows
|
||||
);
|
||||
}
|
||||
lines.push("Следующий шаг: могу отдельно разложить назначения платежа, договоры или отделить банковский контур от клиентского/поставщицкого.");
|
||||
if (!compactRoleAnswer && rows.length > visibleRows.length) {
|
||||
lines.push(`Показаны первые ${visibleRows.length} из ${rows.length}; полный список остается в подтвержденном срезе.`);
|
||||
}
|
||||
return {
|
||||
|
||||
@@ -1392,26 +1392,18 @@ function derivedValueFlowConfirmedLine(pilot: AssistantMcpDiscoveryPilotExecutio
|
||||
const organization = organizationScope ? ` по организации ${organizationScope}` : "";
|
||||
const counterparty = flow.counterparty ? ` по контрагенту ${flow.counterparty}` : "";
|
||||
const period = flow.period_scope ? ` за период ${flow.period_scope}` : " в проверенном окне";
|
||||
const movementLabel =
|
||||
flow.value_flow_direction === "outgoing_supplier_payout"
|
||||
? "исходящих платежей/списаний"
|
||||
: "входящих денежных поступлений";
|
||||
const totalLabel =
|
||||
flow.value_flow_direction === "outgoing_supplier_payout"
|
||||
? "сумма исходящих платежей/списаний составляет"
|
||||
: "сумма входящих денежных поступлений составляет";
|
||||
? "исходящие платежи/списания"
|
||||
: "входящие денежные поступления";
|
||||
const caveat =
|
||||
flow.value_flow_direction === "outgoing_supplier_payout"
|
||||
? "Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна."
|
||||
: "Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна.";
|
||||
const dates =
|
||||
flow.first_movement_date && flow.latest_movement_date
|
||||
? ` Первая найденная дата движения: ${flow.first_movement_date}; последняя: ${flow.latest_movement_date}.`
|
||||
: "";
|
||||
? "Граница: это проверенный денежный срез по найденным списаниям в 1С, не внешний аудит всех платежей вне этого окна."
|
||||
: "Граница: это проверенный денежный срез по найденным поступлениям в 1С, не внешний аудит всех поступлений вне этого окна.";
|
||||
const limitCaveat = flow.coverage_limited_by_probe_limit
|
||||
? " Лимит строк проверки достигнут; полный запрошенный период может быть покрыт не полностью."
|
||||
? " Проверка уперлась в лимит строк, поэтому полный период может быть покрыт не полностью."
|
||||
: "";
|
||||
return `По найденным строкам ${movementLabel} в 1С${counterparty}${period} ${totalLabel} ${flow.total_amount_human_ru} Учтено строк с суммой: ${flow.rows_with_amount} из ${flow.rows_matched}.${dates}${limitCaveat} ${caveat}`;
|
||||
return `${totalLabel}${counterparty || organization}${period}: ${flow.total_amount_human_ru}.${limitCaveat} ${caveat}`;
|
||||
}
|
||||
|
||||
function derivedValueFlowMonthlyLines(pilot: AssistantMcpDiscoveryPilotExecutionContract): string[] {
|
||||
@@ -2109,7 +2101,7 @@ export function buildAssistantMcpDiscoveryAnswerDraft(
|
||||
: pilot.derived_ranked_value_flow && derivedValueLine
|
||||
? [derivedValueLine]
|
||||
: derivedValueLine
|
||||
? [...pilot.evidence.confirmed_facts, derivedValueLine, ...monthlyConfirmedLines]
|
||||
? [derivedValueLine, ...monthlyConfirmedLines]
|
||||
: valueFlowZeroResultConfirmedLine(pilot)
|
||||
? [valueFlowZeroResultConfirmedLine(pilot)!]
|
||||
: derivedEntityResolutionLine
|
||||
|
||||
@@ -602,14 +602,12 @@ function businessOverviewInventoryLine(overview: Record<string, unknown>): strin
|
||||
}
|
||||
const amount = moneyText(inventory.total_amount_human_ru);
|
||||
const rows = Number(inventory.rows_matched);
|
||||
const quantity = Number(inventory.total_quantity);
|
||||
if (!amount && !Number.isFinite(rows)) {
|
||||
return null;
|
||||
}
|
||||
const pieces = [
|
||||
Number.isFinite(rows) ? `${rows} позиций` : null,
|
||||
amount ? `на ${sentenceAmount(amount) ?? amount}` : null,
|
||||
Number.isFinite(quantity) && quantity > 0 ? `количество ${quantity}` : null
|
||||
amount ? `на ${sentenceAmount(amount) ?? amount}` : null
|
||||
].filter((item): item is string => Boolean(item));
|
||||
return pieces.length > 0 ? `Склад: ${pieces.join(", ")}.` : null;
|
||||
}
|
||||
@@ -1098,7 +1096,7 @@ function buildCompactBusinessOverviewReply(
|
||||
if (customerName && customerAmount) {
|
||||
lines.push(
|
||||
topCustomerLooksFinancial
|
||||
? `- крупнейший входящий источник: ${customerName} — ${sentenceAmount(customerAmount) ?? customerAmount}; это похоже на финансовый контур, не на обычную клиентскую выручку;`
|
||||
? `- крупнейший входящий источник: ${customerName} — ${sentenceAmount(customerAmount) ?? customerAmount}; это похоже на финансовый контур, не на обычную клиентскую выручку;${nonFinancialCustomer ? ` крупнейший небанковский входящий контрагент: ${nonFinancialCustomer};` : ""}`
|
||||
: `- крупнейший источник денег: ${customerName} — ${sentenceAmount(customerAmount) ?? customerAmount}; это сигнал концентрации на крупном заказчике;`
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,82 @@
|
||||
[
|
||||
{
|
||||
"generation_id": "gen-ag05230604-098bda",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"mode": "saved_user_sessions",
|
||||
"title": "AGENT | Autonomy business quality pack",
|
||||
"count": 14,
|
||||
"domain": "autonomy_business_quality",
|
||||
"questions": [
|
||||
"Сколько входящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||||
"Сколько исходящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||||
"А всего сколько денег пришло в ООО Альтернатива Плюс за 2020, без топов и без контрагентов?",
|
||||
"Теперь дай взрослый обзор за 2020 по компании: входящие, исходящие, нетто, топы, но банк в топах отдельно объясни как финансовый поток.",
|
||||
"скока денег альтернатива заработала за 20 год?",
|
||||
"а это чистая прибыль?",
|
||||
"А отдельно по СБЕРБАНКУ: он для нас клиент, поставщик или финансовый поток? Дай коротко по подтвержденным строкам.",
|
||||
"какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?",
|
||||
"кому мы должны на конец 2020?",
|
||||
"а нам кто должен на конец 2020?",
|
||||
"сколько НДС надо заплатить в налоговую за декабрь 2019?",
|
||||
"Как ты оценишь деятельность компании?",
|
||||
"Какая номенклатура товара реализована с высокой прибылью какая с низкой?",
|
||||
"май 2020"
|
||||
],
|
||||
"generated_by": "codex_agent",
|
||||
"saved_case_set_file": "assistant_autogen_saved_user_sessions_20260523060440_gen-ag05230604-098bda.json",
|
||||
"context": {
|
||||
"llm_provider": null,
|
||||
"model": null,
|
||||
"assistant_prompt_version": null,
|
||||
"decomposition_prompt_version": null,
|
||||
"prompt_fingerprint": null,
|
||||
"autogen_personality_id": null,
|
||||
"autogen_personality_prompt": null,
|
||||
"source_session_id": null,
|
||||
"saved_session_file": "assistant_saved_session_20260523060440_gen-ag05230604-098bda.json",
|
||||
"saved_case_set_kind": "agent_semantic_scenario",
|
||||
"agent_run": true,
|
||||
"agent_focus": "Expanded targeted AGENT replay for the current autonomy milestone: value-flow hot handoff must survive realistic business questions, while final answers must read like a useful 1C analyst instead of runtime/debug prose.",
|
||||
"architecture_phase": "turnaround_11",
|
||||
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\agent_autonomy_business_quality_20260523.json",
|
||||
"scenario_id": "agent_autonomy_business_quality_20260523",
|
||||
"semantic_tags": [
|
||||
"autonomy_core",
|
||||
"bank_boundary",
|
||||
"bank_classification",
|
||||
"business_answer_quality",
|
||||
"business_evaluation",
|
||||
"business_overview",
|
||||
"cashflow_overview",
|
||||
"cashflow_vs_profit",
|
||||
"clarification",
|
||||
"colloquial_money",
|
||||
"colloquial_total",
|
||||
"counterparty_value_flow",
|
||||
"debt_answer_quality",
|
||||
"domain_purity",
|
||||
"followup_context",
|
||||
"incoming_total",
|
||||
"limit_honesty",
|
||||
"limited_answer",
|
||||
"net_flow",
|
||||
"next_action",
|
||||
"no_profit_substitution",
|
||||
"no_top_guard",
|
||||
"nomenclature_margin",
|
||||
"outgoing_total",
|
||||
"payables",
|
||||
"profit_vs_cashflow",
|
||||
"receivables",
|
||||
"technical_garbage_guard",
|
||||
"value_flow",
|
||||
"vat"
|
||||
],
|
||||
"validation_status": "accepted_live_replay",
|
||||
"validated_run_dir": "artifacts\\domain_runs\\agent_autonomy_business_quality_live4",
|
||||
"saved_after_validated_replay": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"generation_id": "gen-ag05221957-713bbd",
|
||||
"created_at": "2026-05-22T19:57:37+00:00",
|
||||
|
||||
+275
@@ -0,0 +1,275 @@
|
||||
{
|
||||
"saved_at": "2026-05-23T06:04:40+00:00",
|
||||
"generation_id": "gen-ag05230604-098bda",
|
||||
"mode": "saved_user_sessions",
|
||||
"title": "AGENT | Autonomy business quality pack",
|
||||
"agent_run": true,
|
||||
"questions": [
|
||||
"Сколько входящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||||
"Сколько исходящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||||
"А всего сколько денег пришло в ООО Альтернатива Плюс за 2020, без топов и без контрагентов?",
|
||||
"Теперь дай взрослый обзор за 2020 по компании: входящие, исходящие, нетто, топы, но банк в топах отдельно объясни как финансовый поток.",
|
||||
"скока денег альтернатива заработала за 20 год?",
|
||||
"а это чистая прибыль?",
|
||||
"А отдельно по СБЕРБАНКУ: он для нас клиент, поставщик или финансовый поток? Дай коротко по подтвержденным строкам.",
|
||||
"какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?",
|
||||
"кому мы должны на конец 2020?",
|
||||
"а нам кто должен на конец 2020?",
|
||||
"сколько НДС надо заплатить в налоговую за декабрь 2019?",
|
||||
"Как ты оценишь деятельность компании?",
|
||||
"Какая номенклатура товара реализована с высокой прибылью какая с низкой?",
|
||||
"май 2020"
|
||||
],
|
||||
"metadata": {
|
||||
"assistant_prompt_version": null,
|
||||
"decomposition_prompt_version": null,
|
||||
"prompt_fingerprint": null,
|
||||
"agent_focus": "Expanded targeted AGENT replay for the current autonomy milestone: value-flow hot handoff must survive realistic business questions, while final answers must read like a useful 1C analyst instead of runtime/debug prose.",
|
||||
"architecture_phase": "turnaround_11",
|
||||
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\agent_autonomy_business_quality_20260523.json",
|
||||
"scenario_id": "agent_autonomy_business_quality_20260523",
|
||||
"semantic_tags": [
|
||||
"autonomy_core",
|
||||
"bank_boundary",
|
||||
"bank_classification",
|
||||
"business_answer_quality",
|
||||
"business_evaluation",
|
||||
"business_overview",
|
||||
"cashflow_overview",
|
||||
"cashflow_vs_profit",
|
||||
"clarification",
|
||||
"colloquial_money",
|
||||
"colloquial_total",
|
||||
"counterparty_value_flow",
|
||||
"debt_answer_quality",
|
||||
"domain_purity",
|
||||
"followup_context",
|
||||
"incoming_total",
|
||||
"limit_honesty",
|
||||
"limited_answer",
|
||||
"net_flow",
|
||||
"next_action",
|
||||
"no_profit_substitution",
|
||||
"no_top_guard",
|
||||
"nomenclature_margin",
|
||||
"outgoing_total",
|
||||
"payables",
|
||||
"profit_vs_cashflow",
|
||||
"receivables",
|
||||
"technical_garbage_guard",
|
||||
"value_flow",
|
||||
"vat"
|
||||
],
|
||||
"validation_status": "accepted_live_replay",
|
||||
"validated_run_dir": "artifacts\\domain_runs\\agent_autonomy_business_quality_live4",
|
||||
"saved_after_validated_replay": true,
|
||||
"save_gate": {
|
||||
"schema_version": "agent_semantic_save_gate_v1",
|
||||
"validation_status": "accepted_live_replay",
|
||||
"validated_run_dir": "artifacts\\domain_runs\\agent_autonomy_business_quality_live4",
|
||||
"final_status": "accepted",
|
||||
"review_overall_status": "pass",
|
||||
"business_overall_status": "pass",
|
||||
"steps_total": 14,
|
||||
"steps_passed": 14,
|
||||
"steps_failed": 0,
|
||||
"steps_with_business_failures": 0,
|
||||
"steps_with_business_warnings": 0,
|
||||
"acceptance_gate_passed": true,
|
||||
"saved_after_validated_replay": true
|
||||
}
|
||||
},
|
||||
"source_session_id": null,
|
||||
"session": {
|
||||
"session_id": null,
|
||||
"mode": "agent_semantic_run",
|
||||
"items": [
|
||||
{
|
||||
"message_id": "agent-user-001",
|
||||
"role": "user",
|
||||
"text": "Сколько входящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-002",
|
||||
"role": "user",
|
||||
"text": "Сколько исходящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-003",
|
||||
"role": "user",
|
||||
"text": "А всего сколько денег пришло в ООО Альтернатива Плюс за 2020, без топов и без контрагентов?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-004",
|
||||
"role": "user",
|
||||
"text": "Теперь дай взрослый обзор за 2020 по компании: входящие, исходящие, нетто, топы, но банк в топах отдельно объясни как финансовый поток.",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-005",
|
||||
"role": "user",
|
||||
"text": "скока денег альтернатива заработала за 20 год?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-006",
|
||||
"role": "user",
|
||||
"text": "а это чистая прибыль?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-007",
|
||||
"role": "user",
|
||||
"text": "А отдельно по СБЕРБАНКУ: он для нас клиент, поставщик или финансовый поток? Дай коротко по подтвержденным строкам.",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-008",
|
||||
"role": "user",
|
||||
"text": "какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-009",
|
||||
"role": "user",
|
||||
"text": "кому мы должны на конец 2020?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-010",
|
||||
"role": "user",
|
||||
"text": "а нам кто должен на конец 2020?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-011",
|
||||
"role": "user",
|
||||
"text": "сколько НДС надо заплатить в налоговую за декабрь 2019?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-012",
|
||||
"role": "user",
|
||||
"text": "Как ты оценишь деятельность компании?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-013",
|
||||
"role": "user",
|
||||
"text": "Какая номенклатура товара реализована с высокой прибылью какая с низкой?",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
},
|
||||
{
|
||||
"message_id": "agent-user-014",
|
||||
"role": "user",
|
||||
"text": "май 2020",
|
||||
"created_at": "2026-05-23T06:04:40+00:00",
|
||||
"reply_type": null,
|
||||
"trace_id": null,
|
||||
"debug": null
|
||||
}
|
||||
],
|
||||
"agent_run": true,
|
||||
"metadata": {
|
||||
"assistant_prompt_version": null,
|
||||
"decomposition_prompt_version": null,
|
||||
"prompt_fingerprint": null,
|
||||
"agent_focus": "Expanded targeted AGENT replay for the current autonomy milestone: value-flow hot handoff must survive realistic business questions, while final answers must read like a useful 1C analyst instead of runtime/debug prose.",
|
||||
"architecture_phase": "turnaround_11",
|
||||
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\agent_autonomy_business_quality_20260523.json",
|
||||
"scenario_id": "agent_autonomy_business_quality_20260523",
|
||||
"semantic_tags": [
|
||||
"autonomy_core",
|
||||
"bank_boundary",
|
||||
"bank_classification",
|
||||
"business_answer_quality",
|
||||
"business_evaluation",
|
||||
"business_overview",
|
||||
"cashflow_overview",
|
||||
"cashflow_vs_profit",
|
||||
"clarification",
|
||||
"colloquial_money",
|
||||
"colloquial_total",
|
||||
"counterparty_value_flow",
|
||||
"debt_answer_quality",
|
||||
"domain_purity",
|
||||
"followup_context",
|
||||
"incoming_total",
|
||||
"limit_honesty",
|
||||
"limited_answer",
|
||||
"net_flow",
|
||||
"next_action",
|
||||
"no_profit_substitution",
|
||||
"no_top_guard",
|
||||
"nomenclature_margin",
|
||||
"outgoing_total",
|
||||
"payables",
|
||||
"profit_vs_cashflow",
|
||||
"receivables",
|
||||
"technical_garbage_guard",
|
||||
"value_flow",
|
||||
"vat"
|
||||
],
|
||||
"validation_status": "accepted_live_replay",
|
||||
"validated_run_dir": "artifacts\\domain_runs\\agent_autonomy_business_quality_live4",
|
||||
"saved_after_validated_replay": true,
|
||||
"save_gate": {
|
||||
"schema_version": "agent_semantic_save_gate_v1",
|
||||
"validation_status": "accepted_live_replay",
|
||||
"validated_run_dir": "artifacts\\domain_runs\\agent_autonomy_business_quality_live4",
|
||||
"final_status": "accepted",
|
||||
"review_overall_status": "pass",
|
||||
"business_overall_status": "pass",
|
||||
"steps_total": 14,
|
||||
"steps_passed": 14,
|
||||
"steps_failed": 0,
|
||||
"steps_with_business_failures": 0,
|
||||
"steps_with_business_warnings": 0,
|
||||
"acceptance_gate_passed": true,
|
||||
"saved_after_validated_replay": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"suite_id": "assistant_saved_session_gen-ag05230604-098bda",
|
||||
"suite_version": "0.1.0",
|
||||
"schema_version": "assistant_saved_session_suite_v0_1",
|
||||
"generated_at": "2026-05-23T06:04:40+00:00",
|
||||
"generation_id": "gen-ag05230604-098bda",
|
||||
"mode": "saved_user_sessions",
|
||||
"title": "AGENT | Autonomy business quality pack",
|
||||
"domain": "autonomy_business_quality",
|
||||
"scenario_count": 1,
|
||||
"case_ids": [
|
||||
"SAVED-001"
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "SAVED-001",
|
||||
"scenario_tag": "agent_saved_user_sessions",
|
||||
"title": "AGENT | Autonomy business quality pack",
|
||||
"question_type": "followup",
|
||||
"broadness_level": "medium",
|
||||
"turns": [
|
||||
{
|
||||
"user_message": "Сколько входящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?"
|
||||
},
|
||||
{
|
||||
"user_message": "Сколько исходящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?"
|
||||
},
|
||||
{
|
||||
"user_message": "А всего сколько денег пришло в ООО Альтернатива Плюс за 2020, без топов и без контрагентов?"
|
||||
},
|
||||
{
|
||||
"user_message": "Теперь дай взрослый обзор за 2020 по компании: входящие, исходящие, нетто, топы, но банк в топах отдельно объясни как финансовый поток."
|
||||
},
|
||||
{
|
||||
"user_message": "скока денег альтернатива заработала за 20 год?"
|
||||
},
|
||||
{
|
||||
"user_message": "а это чистая прибыль?"
|
||||
},
|
||||
{
|
||||
"user_message": "А отдельно по СБЕРБАНКУ: он для нас клиент, поставщик или финансовый поток? Дай коротко по подтвержденным строкам."
|
||||
},
|
||||
{
|
||||
"user_message": "какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?"
|
||||
},
|
||||
{
|
||||
"user_message": "кому мы должны на конец 2020?"
|
||||
},
|
||||
{
|
||||
"user_message": "а нам кто должен на конец 2020?"
|
||||
},
|
||||
{
|
||||
"user_message": "сколько НДС надо заплатить в налоговую за декабрь 2019?"
|
||||
},
|
||||
{
|
||||
"user_message": "Как ты оценишь деятельность компании?"
|
||||
},
|
||||
{
|
||||
"user_message": "Какая номенклатура товара реализована с высокой прибылью какая с низкой?"
|
||||
},
|
||||
{
|
||||
"user_message": "май 2020"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user