-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
49 lines (37 loc) · 1.41 KB
/
Copy pathmain.py
File metadata and controls
49 lines (37 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from tracer import TraceLogger
from replay import ReplayEngine
from detector import FailureDetector
from analyzer import FailureAnalyzer
from metrics import TraceMetrics
import json
logger = TraceLogger()
# Simulated AI agent execution trace
logger.log_step("retrieve_context", {"query": "Fix API timeout issue"})
logger.log_step("generate_fix", {"code_patch": "Increase retry timeout to 5s"})
logger.log_step("run_tests", {"tests_passed": False})
logger.log_step("retry_fix", {"attempt": 2})
logger.log_step("generate_fix", {"code_patch": "Maybe increase timeout and adjust retry logic"})
logger.log_step("run_tests", {"tests_passed": False})
logger.log_step("retry_fix", {"attempt": 3})
logger.log_step("final_answer", {"status": "incomplete"})
logger.save()
with open("trace.json", "r") as f:
trace = json.load(f)
replay = ReplayEngine()
replay.replay()
detector = FailureDetector()
failures = detector.detect(trace)
analyzer = FailureAnalyzer()
report = analyzer.analyze(failures)
metrics = TraceMetrics()
score = metrics.score(trace, failures)
clusters = metrics.cluster_failures(failures)
print("\n=== Failure Report ===")
for failure in failures:
print(f"- Step {failure['step']}: {failure['type']} -> {failure['message']}")
print("\n=== Analysis Summary ===")
print(report["summary"])
print("Clusters:", report["clusters"])
print("\n=== Trace Score ===")
print(f"Score: {score}/100")
metrics.render_clusters(clusters)