Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beheben Sie Fehler und verfeinern Sie Ihre Richtlinie für automatisiertes Denken
Wenn ein Richtlinientest für automatisiertes Denken fehlschlägt und das tatsächliche Ergebnis nicht mit dem erwarteten Ergebnis übereinstimmt, liegt das Problem entweder an der Übersetzung (natürliche Sprache wurde den falschen Variablen oder Werten zugeordnet) oder an den Regeln (die Richtlinienlogik entspricht nicht Ihrer Domäne). Diese Seite bietet einen systematischen Ansatz zur Diagnose und Behebung beider Arten von Problemen.
Bevor Sie mit der Problembehandlung beginnen, stellen Sie sicher, dass Sie den unter beschriebenen zweistufigen Validierungsprozess (übersetzen, dann validieren) verstanden haben. Übersetzung: von der natürlichen Sprache zur formalen Logik Diese Unterscheidung ist der Schlüssel zu effizientem Debugging.
Anmerkung
Tutorial-Video: Eine step-by-step Anleitung zur Verfeinerung und Problembehebung einer Richtlinie für automatisiertes Denken finden Sie im folgenden Tutorial:
Tutorial-Demo 3 – Verfeinern der Automated-Reasoning-Richtlinie
Arbeitsablauf beim Debuggen
Wenn ein Test fehlschlägt, verwenden Sie das tatsächliche Ergebnis, um die Art des Problems zu identifizieren, und springen Sie zum entsprechenden Abschnitt.
| Tatsächliches Ergebnis | Wahrscheinliche Ursache | Wo soll ich suchen |
|---|---|---|
TRANSLATION_AMBIGUOUS |
Die Übersetzungsmodelle waren sich nicht einig, wie die Eingabe zu interpretieren sei. Dies wird normalerweise durch überlappende Variablen, vage Beschreibungen oder mehrdeutigen Eingabetext verursacht. | Übersetzungsprobleme beheben |
NO_TRANSLATIONS |
Die Eingabe konnte keinen Richtlinienvariablen zugeordnet werden. Entweder handelt es sich bei der Eingabe nicht um ein Thema, oder in der Richtlinie fehlen Variablen für die genannten Konzepte. | Übersetzungsprobleme beheben |
TOO_COMPLEX |
Die Eingabe oder Richtlinie überschreitet die Verarbeitungsgrenzen. Wird häufig durch nichtlineare Arithmetik oder Richtlinien mit zu vielen interagierenden Regeln verursacht. | Einschränkungen und Überlegungen |
IMPOSSIBLE |
Die Prämissen widersprechen einander, oder die Richtlinie selbst enthält widersprüchliche Regeln. | Korrigieren Sie unmögliche Ergebnisse |
VALID,INVALID, oder SATISFIABLE (aber nicht das, was Sie erwartet haben) |
Überprüfe zuerst die Übersetzung im Ergebnis. Wenn den richtigen Variablen die richtigen Werte zugewiesen werden, liegt das Problem in Ihren Regeln. Wenn die Übersetzung falsch ist, liegt das Problem in Ihren Variablenbeschreibungen. | Falsche Übersetzung:Übersetzungsprobleme beheben. Falsche Regeln:Regelprobleme beheben. |
Tipp
Überprüfen Sie immer zuerst die Übersetzung. In den meisten Fällen ist die mathematische Validierung (Schritt 2) korrekt — das Problem liegt darin, wie die natürliche Sprache in die formale Logik übersetzt wurde (Schritt 1). Das Korrigieren von Variablenbeschreibungen ist schneller und weniger riskant als das Ändern von Regeln.
Übersetzungsprobleme beheben
Übersetzungsprobleme treten auf, wenn automatische Argumentationsprüfungen den Variablen Ihrer Richtlinie nicht zuverlässig natürliche Sprache zuordnen können. Das sichtbarste Symptom ist ein TRANSLATION_AMBIGUOUS Ergebnis, aber Übersetzungsprobleme können auch zu falschen oder SATISFIABLE Ergebnissen führen VALIDINVALID, wenn die falschen Variablen oder Werte zugewiesen werden.
Diagnostizieren Sie Ergebnisse mit TRANSLATION_AMBIGULAR
Ein TRANSLATION_AMBIGUOUS Ergebnis umfasst zwei wichtige Felder, anhand derer Sie die Meinungsverschiedenheit besser verstehen können:
-
options— Die konkurrierenden logischen Interpretationen (bis zu 2). Jede Option enthält ihre eigene Übersetzung mit Prämissen, Behauptungen und Vertrauen. Vergleichen Sie die Optionen, um festzustellen, wo die Übersetzungsmodelle nicht übereinstimmten. -
differenceScenarios— Szenarien (bis zu 2), die veranschaulichen, wie sich die verschiedenen Interpretationen in ihrer Bedeutung unterscheiden, wobei die Variablenzuweisungen die praktischen Auswirkungen der Mehrdeutigkeit hervorheben.
Untersuchen Sie diese Felder, um die spezifische Ursache der Mehrdeutigkeit zu ermitteln, und wenden Sie dann die entsprechende Lösung aus der folgenden Liste an.
Überlappende Variablendefinitionen
Wenn mehrere Variablen dasselbe Konzept vernünftigerweise repräsentieren könnten, sind sich die Übersetzungsmodelle nicht einig, welches verwendet werden soll.
Symptom: Die options Ergebnisse zeigenTRANSLATION_AMBIGUOUS, dass dasselbe Konzept verschiedenen Variablen zugewiesen wurde. Bei einer Option wird beispielsweise „2 Jahre Betriebszugehörigkeit“ zugewiesen, tenureMonths = 24 während bei der anderen Option der Wert zugewiesen wird. monthsOfService = 24
Lösung: Führen Sie die überlappenden Variablen zu einer einzigen Variablen mit einer umfassenden Beschreibung zusammen. Aktualisieren Sie alle Regeln, die auf die gelöschte Variable verweisen, um die verbleibende zu verwenden.
Beispiel:
| Vorher (überlappend) | Danach (zusammengeführt) |
|---|---|
|
|
(Regeln löschen |
Unvollständige Variablenbeschreibungen
Variablenbeschreibungen, denen es an Einzelheiten darüber mangelt, wie sich Benutzer auf Konzepte in der Alltagssprache beziehen, erschweren es, Eingaben der richtigen Variablen zuzuordnen.
Symptom: Sie options zeigen die richtige Variable, aber mit unterschiedlichen Werten, oder die Übersetzung weist einen Wert zu, der nicht mit den Angaben des Benutzers übereinstimmt. Beispielsweise wird „2 Jahre“ tenureMonths = 2 anstelle von tenureMonths = 24 in übersetzt.
Lösung: Aktualisieren Sie die Variablenbeschreibung, sodass sie Regeln für die Umrechnung von Einheiten, Synonyme und alternative Formulierungen enthält. Eine ausführliche Anleitung Verfassen Sie umfassende Variablenbeschreibungen finden Sie unter.
Beispiel:
| Vorher (unvollständig) | Nachher (umfassend) |
|---|---|
isFullTime: „Vollzeitstatus.“ |
isFullTime: „Ob der Mitarbeiter Vollzeit (richtig) oder Teilzeit (falsch) arbeitet. Wird auf „true“ gesetzt, wenn Benutzer angeben, „Vollzeit“ zu arbeiten, „volle Stunden“ zu arbeiten oder mehr als 40 Stunden pro Woche zu arbeiten. Wird auf „Falsch“ gesetzt, wenn Benutzer angeben, dass sie „Teilzeit“, „reduzierte Arbeitszeiten“ oder weniger als 40 Stunden pro Woche arbeiten.“ |
Inkonsistente Wertformatierung
Eine mehrdeutige Übersetzung kann auftreten, wenn das System sich nicht sicher ist, wie Werte wie Zahlen, Datumsangaben oder Prozentsätze formatiert werden sollen.
Symptom: Sie options zeigen dieselbe Variable, jedoch mit unterschiedlichen Wertformaten. Eine Option übersetzt beispielsweise "5%" in, die interestRate = 5 andere wiederum in. interestRate = 0.05
Lösung: Aktualisieren Sie die Variablenbeschreibung, um das erwartete Format anzugeben und Konvertierungsregeln einzubeziehen. Siehe Geben Sie Einheiten und Formate in Variablenbeschreibungen an.
Mehrdeutiger Eingabetext
Manchmal ist die Eingabe selbst wirklich mehrdeutig — sie enthält vage Pronomen, unklare Verweise oder Aussagen, die auf unterschiedliche Weise interpretiert werden können.
Symptom: Sie options zeigen grundlegend unterschiedliche Interpretationen desselben Textes. Zum Beispiel: „Können sie Urlaub nehmen?“ könnte sich auf jeden Mitarbeitertyp beziehen.
Behebung: Wenn es sich um einen Test handelt, schreiben Sie die Eingabe um, sodass sie spezifischer ist. Zur Laufzeit sollte Ihre Anwendung den Benutzer um eine Klarstellung bitten, wenn sie ein TRANSLATION_AMBIGUOUS Ergebnis erhält. Informationen zu Integrationsmustern finden Sie unterIntegrieren Sie automatisierte Argumentationsprüfungen in Ihre Anwendung.
Passen Sie den Vertrauensschwellenwert an
Wenn Sie TRANSLATION_AMBIGUOUS Ergebnisse für Eingaben sehen, die nahezu mehrdeutig sind, können Sie den Konfidenzschwellenwert anpassen. Durch eine Senkung des Schwellenwerts können Übersetzungen mit weniger Mustervereinbarung validiert werden, wodurch die TRANSLATION_AMBIGUOUS Ergebnisse reduziert werden, aber das Risiko falscher Übersetzungen steigt.
Wichtig
Eine Anpassung des Schwellenwerts sollte das letzte Mittel sein. In den meisten Fällen ist es besser, die Variablenbeschreibungen zu verbessern oder sich überschneidende Variablen zu entfernen, da so die eigentliche Ursache behoben wird. Weitere Informationen zur Funktionsweise von Schwellenwerten finden Sie unter. Vertrauensschwellen
Regelprobleme beheben
Regelprobleme treten auf, wenn die Übersetzung korrekt ist, die Richtlinienlogik jedoch nicht mit Ihrer Domain übereinstimmt. Sie haben bestätigt, dass den richtigen Variablen die richtigen Werte zugewiesen wurden, aber das Überprüfungsergebnis ist immer noch falsch.
Sie erhalten VALID, obwohl Sie UNGÜLTIG erwartet haben
Die Richtlinie enthält keine Regel, die den Anspruch verbietet. Die Antwort widerspricht Ihrem Fachwissen, aber die Richtlinie erlaubt es.
Diagnose: Schauen Sie sich das supportingRules im Befund an. Dies sind die Regeln, die belegen, dass der Anspruch gültig ist. Prüfen Sie, ob diese Regeln korrekt sind oder ob eine Regel fehlt.
Häufige Ursachen und Lösungen:
-
Fehlende Regel. In Ihrer Police gibt es keine Regel, die diese Bedingung abdeckt. Fügen Sie eine neue Regel hinzu, die die Einschränkung erfasst. Wenn die Versicherungspolice beispielsweise Elternzeit für alle Vollzeitbeschäftigten vorsieht, aber eine Anstellung von 12 Monaten vorsehen sollte, fügen Sie hinzu:
(=> (and isFullTime (<= tenureMonths 12)) (not eligibleForParentalLeave)) -
Die Regel ist zu freizügig. Eine bestehende Regel erlaubt mehr als sie sollte. Bearbeiten Sie die Regel, um die fehlende Bedingung hinzuzufügen. Ändern Sie beispielsweise
(=> isFullTime eligibleForParentalLeave)zu(=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave) -
Fehlende Variable. Die Richtlinie hat keine Variable, um ein relevantes Konzept zu erfassen. Fügen Sie die Variable hinzu, schreiben Sie eine klare Beschreibung und erstellen Sie Regeln, die darauf verweisen.
Wird UNGÜLTIG angezeigt, obwohl Sie VALID erwartet hatten
Die Richtlinie enthält eine Regel, die fälschlicherweise den Anspruch verbietet.
Diagnose: Schauen Sie sich das contradictingRules im Befund an. Dies sind die Regeln, die die Behauptung widerlegen. Prüfen Sie, ob diese Regeln korrekt sind.
Häufige Ursachen und Lösungen:
-
Die Regel ist zu restriktiv. Eine bestehende Regel blockiert ein gültiges Szenario. Bearbeiten Sie die Regel, um die Bedingung zu lockern oder eine Ausnahme hinzuzufügen. Wenn die Regel beispielsweise eine Laufzeit von 24 Monaten vorsieht, die Richtlinie jedoch nur 12 Monate vorsehen sollte, aktualisieren Sie den Schwellenwert.
-
Die Regel wurde falsch extrahiert. Automatisierte Prüfungen zur Argumentation haben Ihr Quelldokument falsch interpretiert. Bearbeiten Sie die Regel so, dass sie der beabsichtigten Logik entspricht, oder löschen Sie sie und fügen Sie manuell eine korrekte Regel hinzu.
Befriedigend, obwohl Sie es erwartet hatten, dass es GÜLTIG ist
Die Antwort ist unter einigen Bedingungen korrekt, aber nicht unter allen. Die Richtlinie enthält zusätzliche Regeln, auf die in der Antwort nicht eingegangen wird.
Diagnose: Vergleichen Sie das claimsTrueScenario und claimsFalseScenario im Befund. Der Unterschied zwischen ihnen zeigt die Bedingungen, die in der Antwort nicht erwähnt werden.
Häufige Ursachen und Lösungen:
-
Die Antwort ist unvollständig. In der Testausgabe werden nicht alle von der Richtlinie geforderten Bedingungen erwähnt. Aktualisieren Sie die Testausgabe, sodass sie die fehlenden Bedingungen enthält, oder ändern Sie das erwartete Ergebnis dahingehend,
SATISFIABLEob unvollständige Antworten für Ihren Anwendungsfall akzeptabel sind. -
Die Richtlinie enthält unnötige Regeln. Die Richtlinie erfordert Bedingungen, die für dieses Szenario nicht relevant sind. Prüfen Sie, ob die zusätzlichen Regeln gelten sollten, und entfernen Sie sie, falls dies nicht der Fall ist.
Korrigieren Sie unmögliche Ergebnisse
Das bedeutetIMPOSSIBLE, dass automatische Argumentationsprüfungen die Ansprüche nicht bewerten können, weil die Prämissen widersprüchlich sind oder die Richtlinie selbst widersprüchliche Regeln enthält. Es gibt zwei unterschiedliche Ursachen.
Widersprüche in der Eingabe
Die Testeingabe enthält Aussagen, die sich widersprechen. Zum Beispiel wird „Ich bin ein Vollzeitbeschäftigter und auch Teilzeit“ festgelegt isFullTime = true und isFullTime = false gleichzeitig, was logischerweise unmöglich ist.
Diagnose: Untersuchen Sie die translation Räumlichkeiten im Befund. Suchen Sie nach Variablen, denen widersprüchliche Werte zugewiesen sind.
Behebung: Wenn es sich um einen Test handelt, schreiben Sie die Eingabe neu, um den Widerspruch zu beseitigen. Zur Laufzeit sollte Ihre Anwendung die IMPOSSIBLE Ergebnisse verarbeiten, indem sie den Benutzer auffordert, seine Eingabe zu klären.
Konflikte in der Richtlinie
Die Richtlinie enthält Regeln, die sich gegenseitig widersprechen, sodass automatische Argumentationsprüfungen keine Schlussfolgerungen für Eingaben ziehen können, die widersprüchliche Regeln beinhalten.
Diagnose: Wenn die Eingabe gültig ist (keine widersprüchlichen Prämissen), liegt das Problem in der Richtlinie. Überprüfen Sie das contradictingRules Feld im Ergebnis, um festzustellen, welche Regeln miteinander in Konflikt stehen. Prüfen Sie auch den Qualitätsbericht (sieheVerwenden Sie den Qualitätsbericht) — er kennzeichnet automatisch widersprüchliche Regeln.
Häufige Ursachen und Lösungen:
-
Widersprüchliche Regeln. Zwei Regeln führen für dieselben Bedingungen zu entgegengesetzten Ergebnissen. Eine Regel besagt beispielsweise, dass Vollzeitbeschäftigte Anspruch auf Urlaub haben, während eine andere besagt, dass Arbeitnehmer im ersten Jahr keinen Anspruch darauf haben, ohne zu spezifizieren, was mit Vollzeitbeschäftigten im ersten Jahr passiert. Führen Sie die Regeln zu einer einzigen Regel mit ausdrücklichen Bedingungen zusammen:
(=> (and isFullTime (> tenureMonths 12)) eligibleForLeave) -
Bloße Behauptungen. Eine bloße Behauptung wie
(= eligibleForLeave true)macht es unmöglich, zu behaupten, dass der Benutzer nicht berechtigt ist. Schreiben Sie bloße Behauptungen als Implikationen um. Siehe Verwenden Sie Implikationen (=>), um Regeln zu strukturieren. -
Zirkuläre Abhängigkeiten. Regeln, die so voneinander abhängen, dass logische Schleifen entstehen. Vereinfachen Sie die Regeln, um den Kreislauf zu durchbrechen, oder verwenden Sie Zwischenvariablen, um die Logik explizit zu machen.
Verwenden Sie Anmerkungen, um Ihre Richtlinie zu reparieren
Anmerkungen sind gezielte Korrekturen, die Sie an Ihrer Richtlinie vornehmen, wenn Tests fehlschlagen. Anstatt Regeln und Variablen manuell zu bearbeiten, können Sie Anmerkungen verwenden, um die gewünschte Änderung zu beschreiben und sie von Automated Reasoning überprüfen zu lassen. Anmerkungen sind sowohl über die Konsole als auch über die API verfügbar.
Fügen Sie Anmerkungen in der Konsole hinzu
-
Öffnen Sie den fehlgeschlagenen Test und überprüfen Sie die Ergebnisse, um das Problem zu verstehen.
-
Ändern Sie die Testbedingungen (fügen Sie beispielsweise eine Prämisse hinzu oder ändern Sie das erwartete Ergebnis) und führen Sie den Test erneut aus. Wenn der modifizierte Test das erwartete Ergebnis liefert, können Sie diese Änderung als Anmerkung übernehmen.
-
Wählen Sie Anmerkungen anwenden aus. Automatisierte Prüfungen zur Argumentation starten einen Build-Workflow, um die Änderungen auf der Grundlage Ihres Feedbacks auf Ihre Richtlinie anzuwenden.
-
Prüfen Sie auf dem Bildschirm „Richtlinienänderungen überprüfen“ die vorgeschlagenen Änderungen an den Regeln, Variablen und Typen Ihrer Richtlinie. Wählen Sie dann Änderungen akzeptieren aus.
Fügen Sie Anmerkungen mithilfe der API hinzu
Verwenden Sie die StartAutomatedReasoningPolicyBuildWorkflow API mitREFINE_POLICY, um Anmerkungen programmgesteuert anzuwenden. Übergeben Sie die vollständige aktuelle Richtliniendefinition zusammen mit den Anmerkungen.
Zu den Arten von Anmerkungen gehören:
-
Anmerkungen zu Variablen:
addVariable,updateVariable,deleteVariable— Fügen Sie fehlende Variablen hinzu, verbessern Sie Beschreibungen oder entfernen Sie Duplikate. -
Regelanmerkungen:
addRule,,updateRuledeleteRule,addRuleFromNaturalLanguage— Korrigieren Sie falsche Regeln, fügen Sie fehlende Regeln hinzu oder entfernen Sie widersprüchliche Regeln. Wird verwendetaddRuleFromNaturalLanguage, um eine Regel in einfachem Englisch zu beschreiben und sie mithilfe von automatisierten Argumentationsprüfungen in formale Logik umwandeln zu lassen. -
Geben Sie Anmerkungen ein:
addType,updateType,deleteType— Verwaltet benutzerdefinierte Typen (Enums). -
Feedback-Anmerkungen:
updateFromRulesFeedback,updateFromScenarioFeedback— Geben Sie Feedback in natürlicher Sprache zu bestimmten Regeln oder Szenarien und lassen Sie sich von Automated Reasoning die notwendigen Änderungen ableiten.
Beispiel: Fügen Sie mithilfe von Anmerkungen eine fehlende Variable und Regel hinzu
aws bedrock start-automated-reasoning-policy-build-workflow \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --build-workflow-type REFINE_POLICY \ --source-content "{ \"policyDefinition\":EXISTING_POLICY_DEFINITION_JSON, \"workflowContent\": { \"policyRepairAssets\": { \"annotations\": [ { \"addVariable\": { \"name\": \"tenureMonths\", \"type\": \"int\", \"description\": \"The number of complete months the employee has been continuously employed. When users mention years of service, convert to months (for example, 2 years = 24 months).\" } }, { \"addRuleFromNaturalLanguage\": { \"naturalLanguage\": \"If an employee is full-time and has more than 12 months of tenure, then they are eligible for parental leave.\" } } ] } } }"
Beispiele für Anmerkungen
Beispiel 1: Korrigieren Sie ein fehlendes Beschäftigungsverhältnis
Problem: Die Richtlinie genehmigt Elternzeit für alle Vollzeitbeschäftigten, aber das Ausgangsdokument sieht eine Anstellung von mehr als 12 Monaten vor.
| Vor | Nach der Anmerkung |
|---|---|
|
Regel: Keine |
Neue Variable: Aktualisierte Regel: |
Beispiel 2: Korrigieren Sie überlappende Variablen, die TRANSLATION_AMBIGUOUS verursachen
Problem: Zwei Variablen (tenureMonthsundmonthsOfService) stehen für dasselbe Konzept, was zu inkonsistenten Übersetzungen führt.
Anmerkungen:
-
deleteVariablefürmonthsOfService. -
updateVariablefürtenureMonthsmit einer verbesserten Beschreibung, die alle Arten abdeckt, wie Benutzer die Beschäftigungsdauer bezeichnen könnten. -
updateRulefür alle Regeln, auf die verwiesenmonthsOfServicewurde, und deren Verwendung zu änderntenureMonths.
Beispiel 3: Korrigieren Sie eine bloße Behauptung, die zu UNMÖGLICHEN Ergebnissen führt
Problem: Bei der Regel (= eligibleForParentalLeave true) handelt es sich um eine bloße Behauptung, die es unmöglich macht, zu behaupten, dass der Benutzer nicht berechtigt ist.
Anmerkungen:
-
deleteRulefür die bloße Behauptung. -
addRuleFromNaturalLanguage: „Wenn ein Arbeitnehmer Vollzeit arbeitet und mehr als 12 Monate angestellt ist, hat er Anspruch auf Elternurlaub.“
Verwenden Sie den Qualitätsbericht
Der Qualitätsbericht wird nach jedem Build-Workflow generiert und identifiziert strukturelle Probleme in Ihrer Richtlinie, die zu Testfehlern führen können. In der Konsole werden Probleme mit Qualitätsberichten als Warnungen auf der Definitionsseite angezeigt. Verwenden Sie über die API GetAutomatedReasoningPolicyBuildWorkflowResultAssets mit--asset-type QUALITY_REPORT.
Der Qualitätsbericht weist auf die folgenden Probleme hin:
Widersprüchliche Regeln
Zwei oder mehr Regeln führen zu widersprüchlichen Schlussfolgerungen für dieselben Bedingungen. Widersprüchliche Regeln führen dazu, dass Ihre Richtlinie IMPOSSIBLE für alle Überprüfungsanfragen, die die widersprüchlichen Regeln beinhalten, zurückgegeben wird.
Beispiel: Regel A sagt (=> isFullTime eligibleForLeave) und Regel B sagt. (=> (<= tenureMonths 6) (not eligibleForLeave)) Für einen Vollzeitbeschäftigten mit einer Betriebszugehörigkeit von 3 Monaten heißt es in Regel A „förderfähig“ und in Regel B „nicht förderfähig“ — ein Widerspruch.
Lösung: Führen Sie die Regeln zu einer einzigen Regel mit expliziten Bedingungen zusammen:. (=> (and isFullTime (> tenureMonths 6)) eligibleForLeave) Oder löschen Sie eine der widersprüchlichen Regeln, wenn sie falsch extrahiert wurde.
Unbenutzte Variablen
Variablen, auf die keine Regeln verweisen. Unbenutzte Variablen stören den Übersetzungsprozess und können zu TRANSLATION_AMBIGUOUS Ergebnissen führen, wenn sie mit ähnlichen aktiven Variablen um dasselbe Konzept konkurrieren.
Behebung: Löschen Sie unbenutzte Variablen, es sei denn, Sie planen, in einer future Iteration Regeln hinzuzufügen, die auf sie verweisen.
Unbenutzte Typwerte
Werte in einem benutzerdefinierten Typ (Enum), auf die keine Regeln verweisen. Wenn Ihre LeaveType Enumeration beispielsweise die Werte PARENTAL, MEDICAL, BEREAVEMENT und PERSONAL hat, aber keine Regel auf PERSONAL verweist, wird sie als unbenutzt gekennzeichnet.
Lösung: Fügen Sie entweder Regeln hinzu, die auf den ungenutzten Wert verweisen, oder entfernen Sie ihn aus der Aufzählung. Unbenutzte Werte können zu Übersetzungsproblemen führen, wenn in der Eingabe das Konzept erwähnt wird, aber keine Regel es behandelt.
Unzusammenhängende Regelsätze
Gruppen von Regeln, die keine gemeinsamen Variablen haben. Unzusammenhängende Regelsätze sind nicht unbedingt ein Problem — Ihre Police deckt möglicherweise bewusst unabhängige Themen ab (z. B. Urlaubsberechtigung und Kostenerstattung). Sie können jedoch darauf hinweisen, dass bei Variablen Verbindungen zwischen verwandten Regeln fehlen.
Wann zu handeln ist: Wenn die unzusammenhängenden Regelsätze miteinander verknüpft sein sollen (z. B. beziehen sich beide auf Leistungen an Arbeitnehmer, verwenden aber unterschiedliche Variablennamen für dasselbe Konzept), führen Sie die sich überschneidenden Variablen zusammen, um sie miteinander zu verbinden. Wenn die Regelsätze wirklich unabhängig sind, sind keine Maßnahmen erforderlich.
Verwenden Sie Kiro CLI zur Verfeinerung von Richtlinien
Kiro CLI bietet eine interaktive Chat-Oberfläche zur Diagnose und Behebung von Richtlinienproblemen. Es kann Ihre Richtliniendefinition und Ihren Qualitätsbericht laden, erklären, warum Tests fehlschlagen, Änderungen vorschlagen und Anmerkungen hinzufügen — alles in natürlicher Sprache.
Kiro CLI ist besonders nützlich für:
-
Fehler verstehen. Bitten Sie Kiro CLI, einen fehlgeschlagenen Test zu laden und zu erklären, warum er nicht das erwartete Ergebnis zurückgibt. Kiro CLI analysiert die Richtliniendefinition, die Testergebnisse und den Qualitätsbericht, um die Grundursache zu ermitteln.
-
Lösung von Problemen mit dem Qualitätsbericht. Bitten Sie Kiro CLI, den Qualitätsbericht zusammenzufassen und Lösungen für widersprüchliche Regeln, unbenutzte Variablen und sich überschneidende Variablenbeschreibungen vorzuschlagen.
-
Regeländerungen vorschlagen. Beschreiben Sie das erwartete Verhalten und bitten Sie Kiro CLI, die erforderlichen Variablen- und Regeländerungen vorzuschlagen. Prüfen Sie die Vorschläge und weisen Sie Kiro CLI an, sie als Anmerkungen zu verwenden.
Beispiel für einen Arbeitsablauf:
You: The test with ID test-12345 is not returning the expected result. Can you load the test definition and findings, look at the policy definition, and explain why this test is failing? Kiro: [analyzes the test and policy] The test expects VALID but gets INVALID because rule R3 requires 24 months of tenure, while the test input specifies 18 months. The source document says 12 months. Rule R3 appears to have been misextracted. You: Can you suggest changes to fix this? Kiro: I suggest updating rule R3 to change the tenure threshold from 24 to 12 months. Here's the updated rule: ... You: Looks good. Can you use the annotation APIs to submit these changes? Kiro: [applies annotations via the API]
Vollständige Anweisungen zur Einrichtung und Verwendung von Kiro CLI with Automated Reasoning-Richtlinien finden Sie unter. Verwenden Sie Kiro CLI mit einer Automated Reasoning-Richtlinie