feat(agent): 增加 LLM 路由与诊断日志

This commit is contained in:
2026-06-06 17:56:41 +08:00
parent 47b5ad1054
commit fa77c68d77
21 changed files with 832 additions and 17 deletions

View File

@@ -1,8 +1,13 @@
from __future__ import annotations
import logging
from .base import BaseSkill, SkillResult, WorkflowContext
logger = logging.getLogger("review_agent.file_summary.skills")
class SkillRegistry:
def __init__(self):
self._skills: dict[str, BaseSkill] = {}
@@ -11,6 +16,7 @@ class SkillRegistry:
if not skill.name:
raise ValueError("Skill 必须声明 name。")
self._skills[skill.name] = skill
logger.info("Skill registered: %s", skill.name, extra={"skill_name": skill.name})
def get(self, name: str) -> BaseSkill:
try:
@@ -19,4 +25,20 @@ class SkillRegistry:
raise KeyError(f"Skill 未注册:{name}") from exc
def execute(self, name: str, context: WorkflowContext) -> SkillResult:
return self.get(name).run(context)
logger.info("Skill started: %s", name, extra={"skill_name": name, "batch_id": context.batch.pk})
try:
result = self.get(name).run(context)
except Exception:
logger.exception("Skill crashed: %s", name, extra={"skill_name": name, "batch_id": context.batch.pk})
raise
logger.info(
"Skill finished: %s",
name,
extra={
"skill_name": name,
"batch_id": context.batch.pk,
"success": result.success,
"result_message": result.message,
},
)
return result