public static class AiDiagnosisReads a recorded log and says what is wrong with the agents in it.
Remarks
Doc 37 § P7's exit criterion, as a type. "An agent misbehaving in a headless test is diagnosed from the recorded log alone" is only a criterion if something can do the diagnosing without the world — so this takes an AgentDebugRecorder and nothing else. No World, no AiSystem, no template. Which means it works against a log that arrived over doc 13's channel from a dedicated server, or out of a crash dump, exactly as well as against one in the same process.
⚠ It reports symptoms and never causes. "This agent changed action nine times in forty ticks" is a fact; "its danger consideration is mis-tuned" is a guess, and a debugger that guesses is one people learn to disbelieve. Every finding carries the count it is built from and the ticks it spans, so the next question — why — is asked of the records themselves.
Methods (3)
public static int Read(AgentDebugRecorder recorder, Entity entity, List<AgentDebugRecord> into)Reads everything an agent recorded, oldest first.
public static int Analyse(AgentDebugRecorder recorder, List<AiFinding> into, AiDiagnosisSettings settings = default(AiDiagnosisSettings))Finds what is wrong with every agent in a log.
public static string Describe(AgentDebugRecorder recorder, Entity entity = default(Entity))The whole log as text, oldest first — what a failing headless test prints.
Used by (4)
- AiDiagnosisExitCriteriaTestsVixen.Ai.Tests
- AiGameplayDebuggerVixen.Ai.Diagnostics
- VillageSampleTestsVixen.Ai.Nodes.Tests
- AgentDebugModelVixen.Editor.Ai