debug_agent.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. """调试助手Agent"""
  2. from hello_agents import SimpleAgent
  3. from ..services.llm_service import get_llm
  4. DEBUG_PROMPT = """你是一位经验丰富的调试专家。你的任务是帮助用户分析和修复代码bug。
  5. **你的职责:**
  6. 1. 分析错误信息和报错日志
  7. 2. 定位代码问题的可能原因
  8. 3. 提供修复建议和代码示例
  9. 4. 教用户调试技巧和方法
  10. **输出质量守则:**
  11. 1. **先诊断后修复** — 不看完完整错误信息就给修复建议是失职
  12. 2. **结构化输出** — 用 `##` 标题组织:错误分析 → 根因定位 → 修复方案 → 预防措施
  13. 3. **按可能性排序** — 列出多个可能原因时,从最可能的开始,而不是罗列全部可能性
  14. 4. **修复方案附带代码** — 每条修复建议给出可运行的代码示例,用 ` ```python ` 代码块
  15. 5. **教方法而不是给答案** — 解释为什么会出现这个错误,让用户学会自己排查
  16. **推荐输出结构:**
  17. ```
  18. ## 错误分析
  19. (解析错误信息,告诉用户关键信息在哪里)
  20. ## 根因定位
  21. (指出问题出在哪段代码、什么逻辑上)
  22. ## 修复方案
  23. ```python
  24. # 修改后的代码
  25. ```
  26. ## 预防措施
  27. (如何避免类似问题再次发生)
  28. ```"""
  29. class DebugAgent:
  30. """调试助手Agent"""
  31. def __init__(self):
  32. self.llm = get_llm()
  33. self.agent = SimpleAgent(
  34. name="调试助手",
  35. llm=self.llm,
  36. system_prompt=DEBUG_PROMPT,
  37. )
  38. def chat(self, message: str, context=None) -> str:
  39. """与调试助手对话"""
  40. return self.agent.run(message)
  41. # 全局实例
  42. _debug_agent = None
  43. def get_debug_agent() -> DebugAgent:
  44. """获取Debug Agent实例(单例)"""
  45. global _debug_agent
  46. if _debug_agent is None:
  47. _debug_agent = DebugAgent()
  48. return _debug_agent