3.8 KiB
3.8 KiB
Address Runtime Contracts V1 (M2.3c)
Дата: 2026-03-29
Runtime Policy
- Runtime lane is
data-agnostic: no hardcoded counterparties/contracts/accounts from one concrete base. - Acceptance lane is
data-aware: positive cases are curated after exploratory live pass. - Address lane remains MCP/live-first, whitelist-only, read-only.
Input Contract
question_mode:address_query | deep_analysis | unsupportedaddress_intent: nullable enumresolved_filters: objectmissing_filters: string[]
Debug Contract
detected_modequery_shapedetected_intentruntime_readinessis_compound_querysubqueries_countresolved_entitiesresolved_filtersmissing_filtersselected_recipe_idsselected_recipeaccount_scope_modeaccount_scope_fallback_applied- resolver block:
anchor_typeanchor_value_rawanchor_value_resolvedresolver_confidenceambiguity_count
- MCP/evidence flow block:
mcp_call_statusmcp_call_status_legacymatch_failure_stagematch_failure_reasonrows_fetchedraw_rows_receivedrows_after_account_scoperows_materializedrows_after_recipe_filterrows_matchedraw_row_keys_samplematerialization_drop_reason
- account-scope audit block:
account_token_rawaccount_token_normalizedaccount_scope_fields_checkedaccount_scope_match_strategyaccount_scope_drop_reason
response_typelimited_reason_categoryfallback_reason
Output Contract
FACTUAL_LIST
- short summary
- rows[]
- totals
FACTUAL_SUMMARY
- aggregate summary
- top rows
- optional drilldown hints
LIMITED_WITH_REASON
- explicit reason code
- missing filters / data availability note
Limited Reason Taxonomy
empty_match- live-запрос выполнен, но по фильтру нет строк.missing_anchor- не хватает обязательного якоря (контрагент/договор/счет/период).recipe_visibility_gap- текущий recipe не материализует нужную аналитику.execution_error- ошибка MCP/инфраструктуры/feature-flag.unsupported- вопрос не покрыт address-intent V1.
Runtime Readiness Status
LIVE_QUERYABLELIVE_QUERYABLE_WITH_LIMITSREQUIRES_SPECIALIZED_RECIPEDEEP_ONLYUNKNOWN
MCP Stage Status Taxonomy (M2.3c)
skippederrorno_raw_rowsraw_rows_received_but_not_materializedmaterialized_but_not_anchor_matchedmaterialized_but_filtered_out_by_recipematched_non_empty
Legacy compatibility:
mcp_call_status_legacymay still reportmaterialized_but_not_matchedfor backward-compatible analytics.
Materialization Drop Reasons (M2.3c)
nonedropped_by_account_scope_filtermissing_period_and_registrator_fieldsmissing_period_fieldmissing_registrator_fieldunknown_row_shape
Account Scope Strategy (M2.3c)
strict- account scope is mandatory and applied as a hard filter.preferred- account scope is applied first; if it yields zero rows while raw rows exist, runtime falls back to raw rows and continues matching.
M2.3c Runtime Snapshot
- Counterparty intents now have confirmed
matched_non_emptycases in curated live suite. - Account intents still mostly stop at
raw_rows_received_but_not_materialized. - Guardrails remain unchanged: no free query generation, no false factual outputs.
Compound Query Note
COMPOUND_FACTUAL_QUERYcurrently remains detection-only.- Multi-intent decomposition execution is planned for the next increment.
Guardrails
- whitelist recipes only
- read-only MCP
- no free-form query generation
- no silent source substitution