Просмотр исходного кода

治理(静态质量): 清理未使用符号与宽泛异常

移除 CLI、Memory、Skill、Subagent、Resource 和 ToolHub 中未使用的导入与局部变量,收窄可预期异常捕获,并用日志替代静默失败,不改变对外调用接口。
SamLee 19 часов назад
Родитель
Сommit
11aed0d87f

+ 1 - 1
agent/agent/cli/extraction_review.py

@@ -32,7 +32,7 @@ import asyncio
 import json
 import sys
 from pathlib import Path
-from typing import List, Optional
+from typing import Optional
 
 from agent.trace.store import FileSystemTraceStore
 from agent.trace.extraction_review import (

+ 9 - 7
agent/agent/cli/interactive.py

@@ -4,8 +4,8 @@
 提供暂停/继续、交互式菜单、经验总结等功能。
 """
 
+import logging
 import sys
-import asyncio
 from typing import Optional, Dict, Any
 from pathlib import Path
 
@@ -13,6 +13,8 @@ from agent.core.runner import AgentRunner
 from agent.trace import TraceStore
 from agent.trace.models import Message, Trace
 
+logger = logging.getLogger(__name__)
+
 
 # ===== 非阻塞 stdin 检测 =====
 
@@ -43,8 +45,8 @@ def check_stdin() -> Optional[str]:
                 return 'pause'
             if cmd in ('q', 'quit'):
                 return 'quit'
-        except Exception:
-            pass
+        except (OSError, UnicodeError) as exc:
+            logger.debug("Failed to read agent control file: %s", exc)
 
     # 2. 检查终端/管道输入
     if sys.platform == 'win32':
@@ -68,8 +70,8 @@ def check_stdin() -> Optional[str]:
                         return 'pause'
                     if line in ('q', 'quit'):
                         return 'quit'
-            except Exception:
-                pass
+            except (OSError, ValueError) as exc:
+                logger.debug("Failed to poll stdin: %s", exc)
         return None
     else:
         # Unix/Mac: 使用 select(支持终端和管道)
@@ -191,7 +193,7 @@ class InteractiveController:
                     print("未输入任何内容,取消操作")
                     continue
 
-                print(f"\n将插入干预消息并继续执行...")
+                print("\n将插入干预消息并继续执行...")
                 # 从 store 读取实际的 last_sequence
                 live_trace = await self.store.get_trace(trace_id)
                 actual_sequence = live_trace.last_sequence if live_trace and live_trace.last_sequence else current_sequence
@@ -431,7 +433,7 @@ class InteractiveController:
             messages_to_add = []
             if intervention_msg:
                 messages_to_add.append({"role": "user", "content": intervention_msg})
-                print(f"\n✓ 将插入干预消息")
+                print("\n✓ 将插入干预消息")
 
             # 调用 runner.run() 续跑
             print("\n开始执行...")

+ 0 - 2
agent/agent/core/dream.py

@@ -229,8 +229,6 @@ async def cross_trace_integrate(
 
     # 读当前记忆文件
     existing_files = load_memory_files(memory_config)
-    existing_by_path = {rel: (purpose, content) for rel, purpose, content in existing_files}
-
     user_content = _build_dream_input(reflections, existing_files, memory_config)
     prompt = memory_config.dream_prompt or DEFAULT_DREAM_PROMPT
 

+ 1 - 1
agent/agent/core/memory.py

@@ -13,7 +13,7 @@ from __future__ import annotations
 
 import glob as _glob
 import logging
-from dataclasses import dataclass, field
+from dataclasses import dataclass
 from pathlib import Path
 from typing import Dict, List, Optional, Tuple
 

+ 0 - 2
agent/agent/skill/skill_loader.py

@@ -33,8 +33,6 @@ parent: parent-id
 ...
 """
 
-import os
-import re
 from pathlib import Path
 from typing import List, Dict, Optional
 import logging

+ 1 - 1
agent/agent/tools/builtin/resource.py

@@ -4,7 +4,7 @@
 
 import os
 import httpx
-from typing import List, Dict, Optional, Any
+from typing import Optional
 from agent.tools import tool, ToolResult
 
 KNOWHUB_API = os.getenv("KNOWHUB_API", "http://43.106.118.91:9999").rstrip("/")

+ 1 - 2
agent/agent/tools/builtin/skill.py

@@ -5,7 +5,6 @@ Agent 可以调用此工具来加载特定的 skill 文档
 """
 
 import os
-import subprocess
 from pathlib import Path
 from typing import Optional
 
@@ -154,7 +153,7 @@ async def skill(
             output += setup_warning
 
         if skill_obj.guidelines:
-            output += f"## Guidelines\n\n"
+            output += "## Guidelines\n\n"
             for i, guideline in enumerate(skill_obj.guidelines, 1):
                 output += f"{i}. {guideline}\n"
             output += "\n"

+ 1 - 1
agent/agent/tools/builtin/subagent.py

@@ -794,7 +794,7 @@ async def agent(
                 parsed_task = json.loads(task_str)
                 if isinstance(parsed_task, list):
                     task = parsed_task
-            except:
+            except (json.JSONDecodeError, TypeError):
                 pass
 
     single = isinstance(task, str)

+ 0 - 5
agent/agent/tools/builtin/toolhub.py

@@ -485,16 +485,11 @@ async def toolhub_call(
             if isinstance(result, dict):
                 # 收集所有图片(单张 image 字段 + images 列表字段)
                 raw_images = []
-                has_single_image = False
-                has_images_list = False
-
                 if result.get("image") and isinstance(result["image"], str):
                     raw_images.append(result["image"])
-                    has_single_image = True
 
                 if result.get("images") and isinstance(result["images"], list):
                     raw_images.extend(result["images"])
-                    has_images_list = True
 
                 if raw_images:
                     images, cdn_urls, saved_paths = await _process_images(raw_images, tool_id)