guantao 5 дней назад
Родитель
Сommit
d40fb2be55
1 измененных файлов с 11 добавлено и 11 удалено
  1. 11 11
      agent/trace/store.py

+ 11 - 11
agent/trace/store.py

@@ -78,7 +78,7 @@ class FileSystemTraceStore:
 
         # 写入 meta.json
         meta_file = self._get_meta_file(trace.trace_id)
-        meta_file.write_text(json.dumps(trace.to_dict(), indent=2, ensure_ascii=False))
+        meta_file.write_text(json.dumps(trace.to_dict(), indent=2, ensure_ascii=False), encoding="utf-8")
 
         # 创建空的 events.jsonl
         events_file = self._get_events_file(trace.trace_id)
@@ -92,7 +92,7 @@ class FileSystemTraceStore:
         if not meta_file.exists():
             return None
 
-        data = json.loads(meta_file.read_text())
+        data = json.loads(meta_file.read_text(encoding="utf-8"))
 
         # 解析 datetime 字段
         if data.get("created_at"):
@@ -115,7 +115,7 @@ class FileSystemTraceStore:
 
         # 写回文件
         meta_file = self._get_meta_file(trace_id)
-        meta_file.write_text(json.dumps(trace.to_dict(), indent=2, ensure_ascii=False))
+        meta_file.write_text(json.dumps(trace.to_dict(), indent=2, ensure_ascii=False), encoding="utf-8")
 
     async def list_traces(
         self,
@@ -140,7 +140,7 @@ class FileSystemTraceStore:
                 continue
 
             try:
-                data = json.loads(meta_file.read_text())
+                data = json.loads(meta_file.read_text(encoding="utf-8"))
 
                 # 过滤
                 if mode and data.get("mode") != mode:
@@ -176,7 +176,7 @@ class FileSystemTraceStore:
             return None
 
         try:
-            data = json.loads(goal_file.read_text())
+            data = json.loads(goal_file.read_text(encoding="utf-8"))
             return GoalTree.from_dict(data)
         except Exception:
             return None
@@ -184,7 +184,7 @@ class FileSystemTraceStore:
     async def update_goal_tree(self, trace_id: str, tree: GoalTree) -> None:
         """更新完整 GoalTree"""
         goal_file = self._get_goal_file(trace_id)
-        goal_file.write_text(json.dumps(tree.to_dict(), indent=2, ensure_ascii=False))
+        goal_file.write_text(json.dumps(tree.to_dict(), indent=2, ensure_ascii=False), encoding="utf-8")
 
     async def add_goal(self, trace_id: str, goal: Goal) -> None:
         """添加 Goal 到 GoalTree"""
@@ -463,7 +463,7 @@ class FileSystemTraceStore:
             message_file = trace_dir / "messages" / f"{message_id}.json"
             if message_file.exists():
                 try:
-                    data = json.loads(message_file.read_text())
+                    data = json.loads(message_file.read_text(encoding="utf-8"))
                     return Message.from_dict(data)
                 except Exception:
                     pass
@@ -483,7 +483,7 @@ class FileSystemTraceStore:
         messages = []
         for message_file in messages_dir.glob("*.json"):
             try:
-                data = json.loads(message_file.read_text())
+                data = json.loads(message_file.read_text(encoding="utf-8"))
                 msg = Message.from_dict(data)
                 messages.append(msg)
             except Exception:
@@ -545,7 +545,7 @@ class FileSystemTraceStore:
         # 确定文件路径
         messages_dir = self._get_messages_dir(message.trace_id)
         message_file = messages_dir / f"{message_id}.json"
-        message_file.write_text(json.dumps(message.to_dict(), indent=2, ensure_ascii=False))
+        message_file.write_text(json.dumps(message.to_dict(), indent=2, ensure_ascii=False), encoding="utf-8")
 
     async def abandon_messages_after(self, trace_id: str, cutoff_sequence: int) -> List[str]:
         """
@@ -600,7 +600,7 @@ class FileSystemTraceStore:
 
         # 读取现有数据
         if usage_file.exists():
-            data = json.loads(usage_file.read_text())
+            data = json.loads(usage_file.read_text(encoding="utf-8"))
         else:
             data = {
                 "summary": {
@@ -666,7 +666,7 @@ class FileSystemTraceStore:
         data["timeline"].append(timeline_entry)
 
         # 写回文件
-        usage_file.write_text(json.dumps(data, indent=2, ensure_ascii=False))
+        usage_file.write_text(json.dumps(data, indent=2, ensure_ascii=False), encoding="utf-8")
 
     # ===== 事件流操作(用于 WebSocket 断线续传)=====