Главная / Статьи

Триаж страховых требований с участием нескольких агентов в Microsoft Foundry

Триаж страховых требований в Microsoft Foundry: координатор, отвечающий за страховое покрытие, агенты по борьбе с мошенничеством и урегулированию споров, контрольные точки, сервис App Insights и хостинг Container Apps.

Издатель: REACTAPP.TOP13 мин чтения2993 слов

Источники: AZURE AI: Multi-agent claims triage on Microsoft Foundry

Представьте, что страховая компания ежедневно получает тысячи новых заявлений через веб-формы и телефонные линии. Перед выплатой важны три фактора: сумма страхового покрытия на дату происшествия, сигналы мошенничества, отслеживаемые командой SIU, и диапазон компенсации на основе оценки ущерба. Ручной последовательный анализ слишком медленен. Модель триажа с участием нескольких агентов, размещенная на Foundry, позволяет одновременно обрабатывать заявления специалистами, оставляя людей для решения исключительных случаев.

Используемые инструменты

Развертывание моделей Azure AI Foundry, фреймворк агентов/оркестрации с передачей задач, функция сохранения состояния для непрерывной работы, Application Insights для отслеживания процессов и Container Apps с управляемой идентичностью для хостинга.

Предварительные требования

Подписка на Azure с доступом к Foundry, возможность развертывания контейнерных приложений, рабочее пространство App Insights и примеры данных заявлений для тестирования.

Архитектура проекта

Координирующий агент распределяет задачи между тремя специалистами (обслуживание клиентов, борьба с мошенничеством, урегулирование споров). Инструменты обеспечивают поиск информации о полисах, проверку списков подозрительных операций и применение правил группировки. Точки контроля сохраняют состояние заявки на протяжении всего процесса. Телеметрия отслеживает каждую передачу задач.

Шаг 1. Создание ресурса Foundry и развертывание моделей

Подготовьте проект и разверните модели чата, которые будут использоваться агентами. Тщательно запишите имена развертываний.

Шаг 2. Установка фреймворка и настройка клиента чата под Foundry

az group create \
  --name rg-claims-prod-uks \
  --location uksouth

az cognitiveservices account create \
  --name fdy-claims-prod-uks \
  --resource-group rg-claims-prod-uks \
  --location uksouth \
  --kind AIServices \
  --sku S0 \
  --assign-identity

az cognitiveservices account deployment create \
  --name fdy-claims-prod-uks \
  --resource-group rg-claims-prod-uks \
  --deployment-name gpt-4o \
  --model-name gpt-4o \
  --model-version 2024-08-06 \
  --model-format OpenAI \
  --sku-capacity 200 \
  --sku-name GlobalStandard

az cognitiveservices account deployment create \
  --name fdy-claims-prod-uks \
  --resource-group rg-claims-prod-uks \
  --deployment-name gpt-4o-mini \
  --model-name gpt-4o-mini \
  --model-version 2024-07-18 \
  --model-format OpenAI \
  --sku-capacity 400 \
  --sku-name GlobalStandard
python -m venv .venv
source .venv/bin/activate
pip install agent-framework azure-monitor-opentelemetry azure-identity azure-cosmos
# claims/clients.py
import os
from azure.identity import DefaultAzureCredential
from agent_framework.azure import AzureOpenAIChatClient

credential = DefaultAzureCredential()

coordinator_client = AzureOpenAIChatClient(
    endpoint=os.environ["FOUNDRY_ENDPOINT"],
    deployment_name="gpt-4o",
    credential=credential,
)

specialist_client = AzureOpenAIChatClient(
    endpoint=os.environ["FOUNDRY_ENDPOINT"],
    deployment_name="gpt-4o-mini",
    credential=credential,
)
# claims/agents.py
from claims.clients import coordinator_client, specialist_client

coordinator = coordinator_client.create_agent(
    name="triage",
    instructions=(
        "You are the first-line claims triage officer for a UK motor insurer. "
        "Read the claim and decide which specialist should handle it next. "
        "Route to 'policy_agent' when cover or policy dates are in question. "
        "Route to 'fraud_agent' when the description contains any indicator of "
        "staged loss, late notification, or inconsistent detail. "
        "Route to 'settlement_agent' when cover is confirmed and only the payout "
        "figure remains. Call the matching handoff tool, for example "
        "handoff_to_fraud_agent. Never state a settlement figure yourself."
    ),
)

policy_agent = specialist_client.create_agent(
    name="policy_agent",
    instructions=(
        "You verify whether the policy was in force on the incident date and "
        "whether the peril is covered. Use the lookup_policy tool. State the "
        "cover position plainly and cite the policy section. If cover is void, "
        "say so and stop; do not speculate on settlement."
    ),
)

fraud_agent = specialist_client.create_agent(
    name="fraud_agent",
    instructions=(
        "You score claims against the SIU signal list using the score_fraud_signals "
        "tool. Report each signal that fired and the aggregate score. Any score at "
        "or above 0.6 must be handed to policy_agent for a cover check before it "
        "goes anywhere near settlement."
    ),
)

settlement_agent = specialist_client.create_agent(
    name="settlement_agent",
    instructions=(
        "You band the damage estimate and propose a settlement using the "
        "band_settlement tool. Anything above 15000 GBP must be flagged for human "
        "authorisation in your response. Never approve a payment."
    ),
)
# claims/workflow.py
from agent_framework import HandoffBuilder
from claims.agents import coordinator, policy_agent, fraud_agent, settlement_agent

def build_triage_workflow():
    return (
        HandoffBuilder(
            name="claims_triage",
            description="Motor claims triage: cover, fraud signals, settlement banding.",
            participants=[coordinator, policy_agent, fraud_agent, settlement_agent],
        )
        .set_coordinator(coordinator)
        .add_handoff(coordinator, [policy_agent, fraud_agent, settlement_agent])
        .add_handoff(fraud_agent, policy_agent)
        .add_handoff(policy_agent, settlement_agent)
        .with_interaction_mode("autonomous", autonomous_turn_limit=12)
        .with_termination_condition(
            lambda conv: any(
                "AUTHORISATION REQUIRED" in (msg.text or "")
                for msg in conv[-2:]
            )
        )
        .build()
    )
# claims/tools.py
from typing import Annotated
from datetime import date
import httpx

POLICY_API = "https://pas.internal.claims-leeds.co.uk/v2"

async def lookup_policy(
    policy_number: Annotated[str, "The policy number, format MOT-00000000"],
    incident_date: Annotated[str, "Incident date as YYYY-MM-DD"],
) -> dict:
    """Return cover status and policy sections in force on the incident date."""
    async with httpx.AsyncClient(timeout=10.0) as client:
        r = await client.get(
            f"{POLICY_API}/policies/{policy_number}/cover",
            params={"as_at": incident_date},
        )
        r.raise_for_status()
        return r.json()

SIU_SIGNALS = {
    "late_notification_days": 14,
    "no_police_reference": True,
    "prior_claims_12m": 2,
}

def score_fraud_signals(
    description: Annotated[str, "Free-text claim description"],
    notified_after_days: Annotated[int, "Days between incident and notification"],
    prior_claims_12m: Annotated[int, "Claims by this policyholder in last 12 months"],
) -> dict:
    """Score a claim against the SIU signal list. Returns fired signals and aggregate."""
    fired = []
    if notified_after_days > SIU_SIGNALS["late_notification_days"]:
        fired.append("late_notification")
    if prior_claims_12m >= SIU_SIGNALS["prior_claims_12m"]:
        fired.append("claim_frequency")
    if "no witnesses" in description.lower():
        fired.append("no_independent_witness")
    return {"signals_fired": fired, "score": round(len(fired) / 3, 2)}

def band_settlement(
    estimate_gbp: Annotated[float, "Repair or replacement estimate in GBP"],
) -> dict:
    """Band an estimate and return the proposed settlement and authorisation route."""
    if estimate_gbp <= 2500:
        return {"band": "A", "proposed_gbp": estimate_gbp, "route": "auto"}
    if estimate_gbp <= 15000:
        return {"band": "B", "proposed_gbp": estimate_gbp, "route": "team_leader"}
    return {"band": "C", "proposed_gbp": estimate_gbp, "route": "AUTHORISATION REQUIRED"}
policy_agent = specialist_client.create_agent(
    name="policy_agent",
    instructions="...",
    tools=[lookup_policy],
)

fraud_agent = specialist_client.create_agent(
    name="fraud_agent",
    instructions="...",
    tools=[score_fraud_signals],
)

settlement_agent = specialist_client.create_agent(
    name="settlement_agent",
    instructions="...",
    tools=[band_settlement],
)
# claims/checkpoints.py
from agent_framework import InMemoryCheckpointStorage

# Tests and local runs
storage = InMemoryCheckpointStorage()
workflow = build_triage_workflow_with_storage(storage)

async for event in workflow.run_stream(claim_text, session_id=claim_id):
    handle(event)
# claims/telemetry.py
import os
from azure.monitor.opentelemetry import configure_azure_monitor
from agent_framework.observability import enable_instrumentation

def init_telemetry() -> None:
    configure_azure_monitor(
        connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"],
    )
    enable_instrumentation()
dependencies
| where timestamp > ago(24h)
| where name startswith "invoke_agent"
| extend agent = tostring(customDimensions["gen_ai.agent.name"])
| extend claim = tostring(customDimensions["session.id"])
| summarize
    hops = count(),
    total_ms = sum(duration),
    p95_ms = percentile(duration, 95)
    by agent
| order by total_ms desc
# claims/run.py
import asyncio
from agent_framework import RequestInfoEvent
from claims.telemetry import init_telemetry
from claims.workflow import build_triage_workflow

CLAIM = """
Claim MOT-40118822. Policy MOT-00318844, incident 2026-07-29, notified 2026-08-19.
Insured reports offside wing and door damage in a supermarket car park, no witnesses,
no police reference. Third party details not supplied. Estimate 3,180 GBP.
"""

async def main() -> None:
    init_telemetry()
    workflow = build_triage_workflow()

    async for event in workflow.run_stream(CLAIM, session_id="MOT-40118822"):
        if isinstance(event, RequestInfoEvent):
            # Autonomous mode only surfaces this on escalation
            print(f"HUMAN NEEDED: {event.data.prompt}")
            break
        print(event)

asyncio.run(main())
az identity create \
  --name umi-claims-triage \
  --resource-group rg-claims-prod-uks

PRINCIPAL=$(az identity show -n umi-claims-triage -g rg-claims-prod-uks --query principalId -o tsv)
CLIENT=$(az identity show -n umi-claims-triage -g rg-claims-prod-uks --query clientId -o tsv)
FOUNDRY=$(az cognitiveservices account show -n fdy-claims-prod-uks -g rg-claims-prod-uks --query id -o tsv)

az role assignment create \
  --role "Azure AI User" \
  --assignee-object-id $PRINCIPAL \
  --assignee-principal-type ServicePrincipal \
  --scope $FOUNDRY

az containerapp create \
  --name ca-claims-triage \
  --resource-group rg-claims-prod-uks \
  --environment cae-claims-prod-uks \
  --image acrclaimsproduks.azurecr.io/claims-triage:1.0.0 \
  --user-assigned umi-claims-triage \
  --min-replicas 1 \
  --max-replicas 8 \
  --cpu 1.0 \
  --memory 2.0Gi \
  --env-vars \
    FOUNDRY_ENDPOINT=https://fdy-claims-prod-uks.openai.azure.com/ \
    AZURE_CLIENT_ID=$CLIENT \
    ENABLE_INSTRUMENTATION=true \
    OTEL_SERVICE_NAME=claims-triage \
    APPLICATIONINSIGHTS_CONNECTION_STRING=secretref:appi-conn
az group delete \
  --name rg-claims-prod-uks \
  --yes \
  --no-wait
az containerapp delete \
  --name ca-claims-triage \
  --resource-group rg-claims-prod-uks \
  --yes

az cognitiveservices account deployment delete \
  --name fdy-claims-prod-uks \
  --resource-group rg-claims-prod-uks \
  --deployment-name gpt-4o-mini

Настройте конечную точку, процесс развертывания и авторизацию через Entra/управляемую идентичность — избегайте включения API-ключей в образы контейнеров.

Шаг 3. Определите координатора и трех специалистов

Дайте каждому специалисту узкоспециализированные инструкции и набор инструментов. Координатор лишь направляет задачи и объединяет результаты; он не должен повторно реализовывать логику специалистов.

Шаг 4. Составьте диаграмму передачи задач

Четко определенные пути передачи задач лучше, чем хаотичное использование инструментов. Логика «Обработка → Выявление мошенничества → Урегулирование» является разумным стандартом; при резком повышении показателя мошенничества следует разрешить переход к SIU.

Шаг 5. Обеспечьте специалистов реальными инструментами

Инструменты должны взаимодействовать с реальными системами или их точными копиями с соответствующими схемами. Фиктивные инструменты, которые всегда «одобряют» запросы, ничему не учат.

Шаг 6. Создайте точку контроля, чтобы при перезапуске не терять в процессе обработки заявку

Сохраняйте состояние задачи/заявки после работы каждого специалиста. При перезапуске контейнера в процессе обработки заявки она должна продолжиться, а не привести к двойной оплате.

Шаг 7. Отправляйте логи и метрики в Application Insights

Выпускайте пользовательские события для отслеживания передачи данных, задержек в работе инструментов и окончательного результата. На панелях управления должен отображаться медианный времени обработки по сравнению с ручным эталоном.

Шаг 8. Обработайте заявку и прочитайте результат

Используйте эталонную заявку с известными параметрами страхового покрытия и результатами проверки на мошенничество. Убедитесь, что окончательный пакет от координатора содержит результаты всех трех специалистов.

Шаг 9. Разверните приложение с использованием Container Apps и управляемой идентичности

Предоставьте права этой идентичности для развертываний в Foundry и для всех бэкенд-API, к которым обращаются инструменты. Ограничьте доступ к системе.

Устранение неполадок

Пустой результат работы специалистов обычно означает неверное имя развертывания или урезанный JSON-данных инструмента. Повторяющиеся циклы часто свидетельствуют об отсутствии условий завершения передачи данных. Ошибки аутентификации связаны с механизмом RBAC, а не с отказом модели.

Стоимость эксплуатации

Модельные токены доминируют; хранилище чекпоинтов и App Insights занимают относительно небольшое пространство. Установите лимит на максимальное количество ходов за заявку и запросов к политике кэширования.

Очистка

Удалите контейнерные приложения, идентичности и развертывания, созданные вами для демонстрации, чтобы ресурсы не оставались в счете.

Заключение

Система сортировки заявок с участием нескольких агентов эффективна, когда специалисты имеют узкую сферу компетенции, инструменты реальны, чекпоинты стабильны, а телеметрия подтверждает преимущество низкой задержки. Foundry обеспечивает базу для моделей; графы и правила управления операциями формируют конечный продукт.

Добавьте этап человеческого утверждения для сумм, превышающих определенный порог. Агенты должны ускорять процесс сортировки, а не молча разрешать крупные выплаты.

Правила борьбы с мошенничеством в версиях должны быть отдельными от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их обработки — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча разрешать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча авторизовать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча авторизовать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча авторизовать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча авторизовать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча разрешать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке данных не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструментов — использование ключей идемпотентности при записи данных является обязательным.

Добавьте этап человеческого утверждения для случаев, когда сумма выплат превышает установленный порог. Агенты должны ускорять процедуру сортировки запросов, а не молча авторизовать крупные выплаты.

Правила борьбы с мошенничеством должны храниться отдельно от параметров моделей. Когда SIU обновляет список сигналов, не должно требоваться изменение параметров модели для их учета — инструменты должны считывать актуальный список.

Проведите тест на нагрузку для проверки одновременных запросов с учетом ограничений по частоте в реализации Foundry. Необходимо определить поведение при переполнении очереди: отклонять запросы, задерживать их обработку или переводить на ручной режим.

Конфиденциальность: текст запросов является конфиденциальной информацией. Убедитесь, что в логах скрываются данные типа PAN/SSN, а инструмент App Insights при выборке не сохраняет сырые персональные данные в пользовательских измерениях.

Создайте тест на сбои, при котором контейнер останавливается в процессе обработки запроса, и проверьте возможность его возобновления с использования точки контроля без появления дублирующих эффектов от инструмента — использование ключей идемпотентности при записи данных является обязательным.

Инструкции для специалистов должны запрещать изобретение новых пунктов политик. Если инструмент анализа покрытия возвращает результат «пусто», специалист обязан передать задачу на более высокий уровень, а не предполагать, что запрос, вероятно, покрыт.

Внедрите проверку схемы для аргументов инструмента. Ошибка в указании идентификатора запроса должна приводить к сбою вызова инструмента до того, как это приведет к ошибочному формированию отчета об расследовании.

Разделяйте инструменты для чтения и инструменты для записи. Агенты трейджинга по умолчанию работают в режиме только чтения; операции записи требуют утверждения соответствующего узла и ключа идемпотентности.

Связывайте сбои в Application Insights с конкретными действиями: резкий рост количества случаев просрочки тайм-аутов инструментов борьбы с мошенничеством должны обрабатываться в первую очередь ответственными за интеграцию SIU, а не командой платформы LLM.

Храните синтетические заявки в наборе тестовых данных, включающем крайние случаи: просроченные полисы, сомнительные показатели мошенничества и аварии с участием нескольких транспортных средств, создающие нагрузку на систему маршрутизации.

При демонстрации для руководства покажите диаграмму трейса для одной заявки. Главное — это оркестрация процессов и механизмы контроля, а не названия моделей.

В промптах для специалистов должно быть запрещено изобретать новые положения полисов. Если инструмент определения страхового покрытия возвращает пустой результат, специалист обязан передать задачу на более высокий уровень, а не предполагать, что покрытие возможно.

Включите проверку схемы для аргументов инструмента. Ошибка в указании идентификатора заявки должна привести к сбою вызова инструмента до того, как это превратится в ложную информацию в отчете об расследовании.

Разделяйте инструменты для чтения и инструменты для записи. Агенты по сортировке задач по умолчанию имеют режим только чтения; операции записи требуют утверждения соответствующего узла и ключа идемпотентности.

Связывайте сбои в Application Insights с конкретными действиями: резкий рост количества случаев превышения времени ответа инструмента борьбы с мошенничеством должен направлять на ответственных за интеграцию SIU, а не на команду платформы LLM по умолчанию.

Храните синтетические заявки в наборе тестовых данных, включающем крайние случаи: истекшие полисы, заявки с близким к порогу значением риска мошенничества, а также инциденты с участием нескольких транспортных средств, создающие нагрузку на систему маршрутизации.

При демонстрации для руководства покажите диаграмму трассировки для одной заявки. Главное — это процессы оркестрации и механизмы контроля, а не названия моделей.

Специалисты должны запрещать создание новых положений страхового полиса. Если инструмент анализа покрытия возвращает пустой результат, специалист обязан передать задачу на более высокий уровень — а не предполагать, что страховка, вероятно, действует.

Необходимо внедрить проверку схемы для аргументов инструмента. Ошибочно введенный идентификатор требования должен привести к отклонению запроса к инструменту, прежде чем это приведет к вымышленному описанию процесса расследования.

Необходимо разделять инструменты для чтения и записи. Агенты, занимающиеся сортировкой задач, по умолчанию имеют только права на чтение; операции записи требуют одобрения соответствующего узла и ключа идемпотентности.

Необходимо связывать сбои в Application Insights с конкретными действиями: резкий рост количества сбоев инструмента обнаружения мошенничества должен направлять на ответственных за интеграцию SIU, а не на команду платформы LLM по умолчанию.

Синтетические требования следует хранить в наборе тестовых данных, включающем крайние случаи: истекший страховой полис, граничные показатели риска мошенничества, а также инциденты с участием нескольких транспортных средств, создающие нагрузку на систему маршрутизации.

При демонстрации руководству покажите диаграмму выполнения процесса для одного заявления. Речь идет об организации работы и механизмах контроля, а не о названиях моделей.

Инструкции специалистов должны запрещать выдумывание положений страхового полиса. Если инструмент анализа покрытия возвращает пустой результат, специалист обязан передать задачу на более высокий уровень, а не предполагать, что страховка, вероятно, предусмотрена.

Внедрите проверку структуры данных для аргументов инструмента. Ошибка в вводе идентификатора заявления должна привести к отклонению запроса до того, как возникнет ложная информация в отчете об расследовании.

Разделяйте инструменты для чтения и записи. Сотрудники, занимающиеся сортировкой заявлений, по умолчанию имеют только право на чтение; операции записи требуют одобрения и использования ключа идемпотентности.

Свяжите сбои в Application Insights с конкретными действиями: резкий прирост количества страниц с ошибками тайм-аутов инструмента для борьбы с мошенничеством должны быть переданы в отделы, ответственные за интеграцию SIU, а не в команду платформы LLM по умолчанию.

Храните синтетические заявки в пакете тестовых случаев, включающем крайние ситуации: просроченные полисы, сомнительные показатели мошенничества и аварии с участием нескольких транспортных средств, создающие сложности с маршрутизацией.

При демонстрации руководству покажите диаграмму трассировки для одной заявки. Важны аспекты организации процессов и механизмов контроля, а не названия моделей.